理解语音识别中的CER和WER
在评估语音识别系统性能时,CER和WER是两个非常重要的指标。本文介绍了这两个指标的定义、计算方式以及局限性,在评估语音识别引擎的性能时需要结合其他指标综合评判。

语音识别(Speech to Text)已经成为我们日常生活中不可或缺的一部分。从手机上的语音助手到智能家居设备,这些系统都依赖于将语音转换为文字的能力。在评估语音识别系统性能时,CER和WER是两个非常重要的指标。那么,它们分别代表什么,又有什么区别呢?
什么是WER?
WER,全称Word Error Rate,即词错误率,是评估语音识别系统性能的一种常用指标。WER主要用于衡量语音识别系统在识别单词时的准确程度,其计算公式为:
其中:
-
S(Substitutions)是替换错误的数量,即系统将一个正确的单词识别为错误的单词。
-
D(Deletions)是删除错误的数量,即系统漏掉了某个应该识别的单词。
-
I(Insertions)是插入错误的数量,即系统错误地识别出了文本中并不存在的单词。
-
N是参考文本(标准答案)中总的单词数量。
WER的值越低,表明识别错误率越低,也就表示准确性越高。
什么是CER?
CER,全称Character Error Rate,即字符错误率,是类似于WER的指标,但它是基于字符而非单词来计算错误率的。这一指标在某些情况下(例如处理拼音、没有明显单词边界的语言,或是字符为基础的语言模型)更加有效。CER的公式为:
公式中的符号代表的意义与WER相同,只不过这里的 S、D、I、N 都是基于字符级别而不是单词级别的数量。
CER和WER的应用场景
对于以单词为单位的语言,比如英语或其他以字母构成单词的语言,WER是一个常用而直观的衡量标准。然而,在处理如日文、中文等字形构成的语言时,通常使用CER作为衡量标准,因为这些语言的单个字符通常可以代表一个语义单元。
此外,在某些应用场景中,比如拼写的准确识别、字符级别的校正任务中,CER也可能比WER更能反映系统性能。
计算示例
让我们通过一个简单的日语示例来理解如何计算。假设有以下日语文本:
-
参考文本(Reference,即标准答案):
今日は天気がいいね -
识别文本(Hypothesis,即语音识别的结果):
今日天気はいいよね
在这个示例中,由于文本语言是日文,更适合用CER作为衡量标准。因此,接下来,我们计算CER。
手动计算CER
| Reference | 今 | 日 | は | 天 | 気 | が | い | い | ね | |
|---|---|---|---|---|---|---|---|---|---|---|
| Hypothesis | 今 | 日 | 天 | 気 | は | い | い | よ | ね | |
| 错误类型 | D | S | I |
-
替换错误(S):
- 字符
が被错误地识别为は。因此,替换错误数 S=1。
- 字符
-
删除错误(D):
- 字符
は被漏识别。因此,删除错误数 D=1。
- 字符
-
插入错误(I):
- 字符
よ被额外插入。因此,插入错误数 I=1。
- 字符
-
总字符数(N):
- 参考文本中有9个字符。因此,N=9。
将这些数值代入CER公式:
因此,此示例中的CER大约为0.333,即33.3%。
用Python计算CER
通过上述的简单计算示例,我们可以清楚地了解CER的计算方法。WER的计算同理,在此不再赘述。但手工计算毕竟繁琐,好在有很多工具可以帮助我们完成这些计算。以下我们用JiWER 这个Python库举例:
准备环境
需要 Python >=3.8
pip install jiwer计算CER
import jiwer
reference = "今日は天気がいいね"
hypothesis = "今日天気はいいよね"
# Calculate CER
out = jiwer.process_characters(reference, hypothesis)
# Print CER only
print(f"CER={out.cer}\n-------")
# Print detailed infomation
print(jiwer.visualize_alignment(out))执行以上代码后,将输出以下信息:
CER=0.3333333333333333
--------
=== SENTENCE 1 ===
REF: 今日は天気がいい*ね
HYP: 今日*天気はいいよね
D S I
=== SUMMARY ===
number of sentences: 1
substitutions=1 deletions=1 insertions=1 hits=7
cer=33.33%JiWER同样也支持WER的计算,可以访问使用文档 来探索更多功能。
CER和WER计算前的额外处理
在计算CER和WER时,我们通常只关注文字本身的错误,因此在计算之前需要对参考文本和识别结果做一些预处理工作:
-
展开缩写词:将文本中的缩写词展开为实际的读法,例如“IEEE”展开为“I triple E”
-
统一大小写:对于英语等区分大小写字母的文字,一般全部统一成小写字母
-
去除标点符号:将参考文本和识别结果中的标点符号全部去除,只保留文字
-
处理ITN变换:多数的语音识别系统内置ITN功能,可以将日期、数字等对象以惯用格式展示,如下表所示:
| 未开启ITN的结果 | 开启ITN的结果 |
|---|---|
| 百分之二十 | 20% |
| 一千二百三十四元 | 1234元 |
| 四月三日 | 4月3日 |
在进行CER或WER计算前,我们需要将参考文本和识别结果统一成“未开启ITN”的样式,即所有文本都使用该语言自有的文字表示,且与语音的发音内容完全一致,文本不包含任何的阿拉伯数字、符号等内容。如果您使用DolphinVoice语音识别API,您可以通过设置参数 enable_inverse_text_normalization = false来关闭ITN功能,从而使语音识别结果满足上述的要求。关于ITN的更多信息,请参考文章:浅谈语音识别中的ITN技术 。
CER和WER的应用注意事项
虽然CER和WER是评估语音识别系统性能的重要指标,但它也有其局限性。比如,CER和WER指标计算无法涵盖许多影响文本可读性的因素。例如,标点符号的位置和种类、数字和符号(如日期、时间)的格式化,以及文本流畅性的处理,都是影响用户体验的重要因素,但这些都不在CER和WER的评估范围之内。
此外,对于日语,同一个词汇可能会有多种书写形式,比如,参考文本为 全て ,语音识别的结果为 すべて ,这两种写法其实都是正确的,但在CER计算中会被视为1个替换错误和1个插入错误,从而影响CER计算结果。这一问题虽然对可读性和实际理解几乎没有影响,但却会导致CER降低。
因此,在评估语音识别引擎的性能时,不能仅仅依赖于CER或WER。我们需要综合分析包括CER/WER、可读性和用户体验在内的多项指标,将其作为性能评估的参考依据,以全面了解系统的真正能力和用户实际体验。
株式会社DolphinAI已通过SOC 2 Type 1认证和ISMS(ISO/IEC 27001)认证,可在安全环境中提供高精度语音识别服务,平均每日实际场景使用约7,000小时。在呼叫中心行业,DolphinVoice的服务已被Cloopen株式会社的SimpleConnect平台正式集成商用;与株式会社三通电信服务(株式会社三通テレコムサービス)合作开发推出AI通话纪要服务 。
如需咨询语音识别系统的接入或相关问题,请随时联系我们。
立即开始
- 登录DolphinVoice - 开始免费试用
- 查看API文档 - 技术规格与实施指南
- 访问官网 - 服务详情与集成案例
作者简介
朝仓 匡广 / Andy Yan
- 株式会社DolphinAI 首席执行官
- 株式会社Advanced Media(任职8年) 前海外事业部部长
- 语音AI实施经验:12年
- 业绩:30多家企业的语音AI集成支持
- 领域:语音识别、语音合成、呼叫中心AI、AI会议记录、语音对话设备
- 市场:日本、中国大陆、台湾、香港
- 撰文:100篇以上
公开报告
- “AI新势力·产品开放日” by Tokyo Generative AI Development Community(2025年10月25日)
- “TOPAI国际AI前沿·生态系统邀请限定活动” by TOPAI & Inspireland Incubator(2025年7月29日)
- "Global AI Conference & Hackathon" by WaytoAGI(2025年6月7日)
联系方式
Email: mh.asakura@dolphin-ai.jp
LinkedIn: https://www.linkedin.com/in/14a9b882/
关于株式会社DolphinAI
专注于日语等语言的语音识别、语音合成、语音对话技术开发与服务的AI企业。
提供服务:DolphinVoice(语音交互SaaS平台)
主要功能:语音识别(日语、汉语、英语、中英混说、日英混说)、语音合成(日语、汉语、英语)
实际应用:在呼叫中心和AI会议记录行业中,平均每日累计商用时长约7,000小时
■ 安全体系
- 通过 ISMS(ISO/IEC 27001) 认证
- 取得 SOC 2 Type 1 报告
- 了解更多 ️
■ 咨询联系
️ (+81) 03-6161-7298


