语音转文本基准测试方法论

Artificial Analysis 在准确性、速度与价格方面对语音转文本(STT)模型(也称为自动语音识别(ASR)模型)进行评测。我们对非流式(也称为离线/批量)转写和流式转写都进行基准测试。准确性(WER)、归一化、数据集以及模型收录标准在两者之间是共通的;下文各部分先定义这些共通基础,再分别介绍批量评测与流式评测各自特有的指标。

关键指标

词错误率(WER)

词错误率(WER)通过将模型输出与参考转写文本(经过核验的人工转写)进行比较来衡量转写准确性。

公式:

WER =(替换数 + 插入数 + 删除数)÷ 参考文本词数

示例:

  • 参考文本:the cat sat on the mat
  • 假设文本:cat is on the big mat
  • 错误:删除(the)、替换(sat → is)、插入(big)
  • WER = 3 ÷ 6 = 50%

更多细节见词错误率(WER)评测部分。

速度因子(批量)

表示批量转写 API 转写音频的速度相对于该音频实际时长的快慢。

  • 数值大于 1 表示该服务的转写速度快于实时(例如 2.0 表示 10 分钟音频可在 5 分钟内完成转写)。

我们的批量基准测试包含网络延迟。速度因子随时间变化中显示的数据点为 24 小时内四次随机化测量的中位数。速度因子柱状图显示的是过去 7 天的中位数。

公式:

速度因子 = 音频时长 ÷ API 响应时间

延迟指标(流式)

对于流式模型,我们报告两项延迟指标:

  • 最终转写时间: 在 SileroVAD 检测到语音结束后,模型给出的第一条标记为 Final(最终)的转写结果的时间。
  • 首个部分转写时间: 在 SileroVAD 检测到语音结束后,模型给出的第一条标记为 Partial(部分)的转写结果的时间。

测量细节见流式语音转文本部分。

每 1,000 分钟价格

表示转写 1,000 分钟音频的估算成本,并在计费模式不同的各服务商之间进行了归一化。

我们如何计算

  • 音频时长:使用服务商公布的按时长计费的转写价格。
  • 处理时间:在多样化的音频样本上测量处理时间,并将按处理时间计费的费用换算为每 1,000 分钟音频的成本。
  • Token:在具有代表性的音频样本上测量计费的 token 用量,并将观测到的支出换算为每 1,000 分钟音频的成本。若服务商单独列出推理 token,则会明确计入;否则,计费的输出 token 可能同时包含可见输出与内部推理 token。
  • 订阅套餐:使用在服务商声明的限制下能够切实支持每月 1,000 分钟转写量、且前期费用最低的套餐。

统一单位

在所有情况下,价格都会换算为同一单位:每转写 1,000 分钟音频的估算成本。

词错误率(WER)评测

Artificial Analysis 对所有模型—服务商组合进行独立的 WER 测试。

关键细节:

  • 直接测试 API 接入点,以反映终端用户实际体验到的表现。
  • 当前评测包含合计约 8 小时的音频,来自 AA-AgentTalk、VoxPopuli-Cleaned-AA 与 Earnings22-Cleaned-AA(详见下文)。每个数据集内部的结果按时长加权平均计算,然后我们再按 50% AgentTalk、25% VoxPopuli、25% Earnings22 取加权平均,得到我们的 AA-WER 结果。
  • 当模型支持提示词时,我们提供:"Transcribe the audio verbatim, outputting only spoken words in sequence."

数据集

  1. AA-AgentTalk (专有、未公开保留集):由 Artificial Analysis 开发的专有评测数据集,聚焦于与语音智能体使用场景相关的语音。更多细节请参见我们的博客文章

    • 样本数量:469
    • 样本时长范围:8–109 秒
    • 总时长:约 250 分钟
  2. VoxPopuli-Cleaned-AA:欧洲议会会议记录。

    • 子集:英语
    • 样本数量:628
    • 样本时长范围:5–38 秒
    • 总时长:约 119 分钟
  3. Earnings22-Cleaned-AA:包含技术性用语和说话人重叠的企业财报电话会议。

    • 样本数量:6
    • 样本时长范围:约 14–22 分钟
    • 总时长:约 115 分钟

关于 VoxPopuli-Cleaned-AA 与 Earnings22-Cleaned-AA 的详情,请参见我们的博客文章。两个仓库中当前发布的清洗后转写文本均为 1.0 版本,用于 AA-WER v2。

这些清洗后的转写文本是我们在人工审阅和跨数据集交叉验证的基础上,为逐字参考真值所做的最大努力。后续改进将以新版本发布。如果你发现问题,欢迎通过我们的联系页面Discord 向我们反馈。

音频分段(Earnings22)

Earnings22 包含较长的文件(约 14-22 分钟),因此分段方式会因评测模式和模型配置而异。对于非流式转写(批量/离线),我们默认对完整的原始音频进行评测。当模型或 API 的限制要求更短的输入,或为避免截断/超时而需要更短的输入时,我们会对 Earnings22 进行分段:先使用约 9 分钟的分段,仅在必要时再缩短为约 30 秒的分段。对于流式转写,Earnings22 的大多数测试使用约 30 秒的分段,并将结果聚合回原始通话;在更符合服务商接入点行为的情况下,部分流式配置会在完整的原始音频上进行评测。分段边界会尽可能落在语音停顿处,以避免从词中间切开。AA-AgentTalk 与 VoxPopuli 的样本足够短,因此不涉及分段。

对于分段后的 Earnings22 音频,我们会将结果聚合回原始通话:

  • WER: 各分段的转写文本会重新拼接回其所属的原始通话,并在合并后的转写文本与该通话的参考真值之间计算 WER。随后 WER 在各原始通话之间按音频时长加权,与其他所有数据集保持一致。
  • 流式延迟: 最终转写时间与首个部分转写时间在各分段之间按简单平均聚合。

音频样本

归一化流程

在比较之前,参考文本(参考真值)与模型的转写假设都会使用 OpenAI 的 Whisper 归一化器进行归一化:

  • 将所有文本转为小写;移除方括号内文本和语气词("uh"、"um");归一化空白字符
  • 展开缩写形式(won't vs. will not,I'm vs. I am)
  • 统一数字写法(twenty five vs. 25,two point five vs. 2.5)
  • 归一化标点/符号(移除不承载语义的符号,统一货币/百分比写法)
  • 统一拼写(例如 colour vs. color)

除了 OpenAI 的 Whisper 归一化器之外,我们还增加了一些额外的归一化处理:

  • 数字、编号和电话号码在紧凑、空格分隔、带括号以及连字符分组等等价形式之间的格式统一(例如 1405 553 272 vs. 1405553272,(303) 775-4498 vs. 303 775 4498,CLM-2024-0873 vs. CLM 2024 0873)
  • 不同分隔符风格下逐字母拼读的姓名和字母序列(例如 S I N G H vs. S-I-N-G-H,A B C vs. A-B-C)
  • 保留前导零,并归一化等价的口语化符号形式(例如 06100052,+ vs. plus,engagement underscore rate vs. engagement_rate)
  • 等价时间表达的格式统一(例如 7:00pm vs. 7pm,10:30 AM vs. ten thirty AM)
  • 补充更多美式/英式英语拼写等价关系(例如 totalled vs totaled)
  • 对我们数据集中存在歧义的专有名词接受等价拼写(例如 Mateo vs. Matteo)
  • 端点值和单位一致时的数值区间格式统一(例如 15-20 minutes vs. fifteen to twenty minutes,6-8% vs. six to eight percent)
  • 语义不变时常见的空格与连字符变体(例如 hard-coded vs. hardcoded,up front vs. upfront,Sea-Tac vs. SeaTac)
  • 保留承载语义的代码和符号,因为省略或替换它们会改变转写内容(例如 F-150、W-2、$50、5%)
  • 重复出现的口语大数表达保持分开,而不会合并为一个新的数字(例如 twelve million twelve million 会变成 12,000,000 12,000,000,而不是 24,000,000)
  • 保留方括号内被转写的内容,同时移除 [music]、'<unk>' 和 language English'<asr_text>' 等标注标签

示例:

  • 参考真值:Hello, I'm Dr. Smith. I have twenty-five patients today.
  • 模型输出:hello i am doctor smith i have 25 patients today
  • 归一化后:hello i am doctor smith i have 25 patients today

WER 计算

  • WER 基于莱文斯坦距离(Levenshtein distance):该方法通过求出将一个序列转换为另一个序列所需的替换、插入和删除的最优次数来对齐两个序列。
  • 在本场景中,它衡量的是把模型的转写文本(假设)改回经过核验的人工转写文本(参考)所需的编辑操作。
  • 每个数据集内部的结果按音频时长加权平均得到 WER,这样大量短音频片段就不会相对于较长的文件对结果造成偏倚。

流式语音转文本

流式基准测试旨在反映流式模型的准确性(尤其是在语音智能体使用场景下),同时保持与上文批量基准测试的可比性。WER、归一化、数据集、权重和音频分段均如上文所定义。我们报告最终转写的 WER,并单独报告语音结束后首个部分转写的 WER。

在流式评测中,延迟指标在每个数据集内部按样本数加权,而 WER 仍按音频时长加权。对于分段后的 Earnings22 音频,请参见上文的分段聚合说明。

流式机制

音频以 20ms 的分块实时传输,或按照模型公开配置的建议进行传输。流式 STT 模型会返回两种转写结果类型:

  • 部分转写(Partial): 尚未确认,后续可能变化。
  • 最终转写(Final): 已确认,不再变化。

所有延迟测量都包含网络时延。它反映了专有模型上终端用户的真实体验,同时也使各服务商之间的标准化成为一项挑战。

强制端点判定

大多数模型允许我们在特定时刻触发一条最终转写,例如当一个独立的 VAD 检测到语音结束时。这一点很重要,因为语音智能体开发者通常会运行一个独立且经过调优的端点判定模型,来控制拉取转写结果的激进程度。支持强制端点判定的模型按下文的标准流程评测;不支持的模型则按回退逻辑评测(详见下文的计时逻辑)。

当服务商开放了与端点判定相关的配置时,我们会将其设置为仅由强制端点信号触发最终转写,并针对该使用场景采用服务商公开推荐的配置。

计时逻辑:支持强制端点判定

  • 我们实时传输音频。当 SileroVAD 检测到语音结束时,我们发送 force-endpoint 请求。
  • 最终转写计时器从“语音结束点之前的音频确实已经传输完毕、且 force-endpoint 信号已发出”的挂钟时刻开始计时,而不是从音频文件中语音结束的时间戳开始。这样可以避免测试框架端或模型端的节奏偏移污染延迟测量。
  • 计时器在模型返回的下一条最终转写时停止;WER 基于合并后的最终转写计算。
  • 如果模型在 SileroVAD 触发之前就已给出最终转写,我们采用其中最近的一条。
  • 首个部分转写时间以同样的方式测量,在收到 force-endpoint 信号之后的第一条部分转写时停止计时。

计时逻辑:不支持强制端点判定

  • 采用 SileroVAD 判定语音结束后 2 秒内出现的第一条自然最终转写。
  • 如果 2 秒内没有出现自然最终转写,则采用 2 秒之后到达的第一条部分转写。
  • 如果 2 秒之后没有任何结果到达,则采用 2 秒之前最新的一条部分转写。

报告的指标

最终 WER 由合并后的最终转写,加上依据上述逻辑选定的最终转写或回退的部分转写计算得出;而部分 WER 由合并后的最终转写,加上依据上述逻辑选定的端点判定后部分转写计算得出。两者都与完整的参考真值转写文本进行比较。由于端点判定后的首个部分转写通常反映的是模型流式输出中更早的一个时间点,部分 WER 与最终 WER 会分别报告,而不会直接相互比较。

模型收录标准

我们的目标是覆盖最热门、表现最好的语音转文本模型,以帮助终端用户选择使用哪些模型和服务商。为此,我们采用“行业重要性”和竞争力表现测试来评估是否收录新的模型与服务商。我们正在完善这些标准,欢迎任何反馈和建议。如需推荐模型,请通过联系页面与我们联系。

版本历史

AA-WER v2.2

2026 年 5 月至今

  • 进一步更新了英文文本比较归一化器,将更多保留语义的转写变体视为等价,同时对改变语义的省略或替换仍保留扣分:
    • 等价表述中的 Unicode 撇号变体(例如 we’re vs. we're)
    • 语义一致时带符号百分比的格式(例如 -12% vs. negative twelve percent)
    • 没有货币标记时的小数分组读法(例如 99.99 vs. ninety-nine ninety-nine),同时对缺失货币符号的情况仍保留扣分(例如 $71.50 不等价于 seventy-one fifty)
    • 仅涉及格式的连字符/短横线变体(例如 18-year-old vs. 18 year old)
    • 明确的代码、URL 和电子邮件语境中的技术性标点(例如 UserController.java vs. UserController dot java,/v1/users vs. slash v1 slash users,gmail.com vs. gmail dot com)
    • 口语形式与书面形式一致时的版本号、小数和分数变体(例如 version 1.24.3 vs. version one point twenty-four dot three,1.0 vs. one point zero,1.25 inches vs. one and a quarter inches)
    • 语义不变时的单位缩写(例如 mg/dL vs. milligrams per deciliter,GB vs. gigabytes)
  • 推出流式语音转文本评测,新增最终转写时间和首个部分转写时间两项延迟指标。

AA-WER v2.1

2026 年 4 月至 2026 年 5 月

  • 更新了英文文本比较归一化器,将更多保留语义的转写变体视为等价,同时对改变语义的省略或替换仍保留扣分:
    • 连字符或空格仅用作数字分组时的编号和电话号码格式(例如 303-775-4498 vs. 303 775 4498,CLM-2024-0873 vs. CLM 2024 0873)
    • 不同分隔符风格下逐字母拼读的姓名和字母序列(例如 S I N G H vs. S-I-N-G-H)
    • 端点值和单位一致时的数值区间格式统一(例如 15-20 minutes vs. fifteen to twenty minutes,6-8% vs. six to eight percent)
    • 语义不变时常见的空格与连字符变体(例如 hard-coded vs. hardcoded,up front vs. upfront,Sea-Tac vs. SeaTac)
    • 保留承载语义的代码和符号,因为省略或替换它们会改变转写内容(例如 F-150、W-2、$50、5%)
    • 重复出现的口语大数表达保持分开,而不会合并为一个新的数字(例如 twelve million twelve million 会变成 12,000,000 12,000,000,而不是 24,000,000)
    • 保留方括号内被转写的内容,同时移除 [music]、'<unk>' 和 language English'<asr_text>' 等标注标签

AA-WER v2.0

2026 年 2 月至今

  • 引入 AA-AgentTalk:一个聚焦语音智能体使用场景的全新专有评测数据集(权重 50%),作为未公开的私有测试集。
  • 清洗了 VoxPopuli 和 Earnings22 的参考真值转写文本,修正参考转写中的错误,以保证评测更加公平。
  • 由于转写质量问题,将 AMI SDM 从基准测试中移除。
  • 使用在 Whisper 英文归一化器基础上构建的自定义归一化器,以减少因格式差异(而非真正的转写错误)而被人为抬高的 WER。
  • 新的权重:50% AA-AgentTalk、25% Earnings22-Cleaned-AA、25% VoxPopuli-Cleaned-AA。

AA-WER v1.0

2025 年 9 月至 2026 年 2 月

  • 首个版本发布,包含三个公开数据集:AMI SDM、VoxPopuli、Earnings22。
  • 三个数据集合计约 6 小时音频。