自动语音识别(ASR)将语音波形转换为文本。生产级转写系统还必须判断语音何时开始和结束、识别语言、添加时间戳、区分说话人、恢复标点符号、适配领域词汇,并在延迟和计算预算内交付结果。
没有任何模型能够在所有工作点上占据优势。离线编码器-解码器可以利用整段录音作为上下文,并通过批处理最大化吞吐量;流式转导器则可以在每个短音频块之后输出部分文本。多语言基础模型无需针对特定任务训练即可处理陌生内容,而紧凑的语言专用模型在目标领域中可能更快、更准确。
因此,该领域的历史是一系列不断变化的抽象层:
转写系统的范围 #
ASR只是更大音频流水线中的一个阶段:
- **语音活动检测(VAD)**查找包含语音的区域,防止静音消耗模型处理时间。
- 端点检测判断实时话语何时完成。激进的端点检测可以提高响应性,但说话人在停顿后继续说话时,可能会提前截断其发言。
- **逆文本规范化(ITN)**根据区域设置和应用规则,将 “twenty twenty-six” 等形式转换为
2026。 - 强制对齐将已知转写文本映射回音频中的时间区间。
- 说话人分离确定谁在何时说话。说话人识别还会将匿名说话人簇映射到已注册的身份。
- 语音翻译同时改变语言和模态,而音频语言模型可以回答有关非语音事件的问题。两者都不等同于字面意义上的转写。
流水线边界很重要,因为较低的词错误率并不意味着说话人标签或时间戳准确。重叠语音还可能需要先进行语音分离,识别或说话人分离才能可靠工作。
历史时间线 #
| 时期 | 进展 | 工程意义 |
|---|---|---|
| 20世纪50年代–70年代 | 模板匹配和动态时间规整 | 通过将话语与存储的模式对齐来识别小型词汇;难以应对说话人和词汇变化。 |
| 20世纪70年代–80年代 | 隐马尔可夫模型(HMM) | 以概率方式表示时间变化,而不是匹配一个固定模板。 |
| 20世纪90年代–2000年代 | GMM-HMM、上下文相关音素、n-gram语言模型和加权有限状态转换器 | 建立了研究和商业系统中使用的模块化大词汇量识别器。 |
| 2006 | 连接主义时间分类(CTC) | 无需帧级标签,即可从音频和文本进行序列训练。 |
| 2011–2012 | Kaldi和DNN声学模型 | 提供了可复现的WFST配方,并用更强的神经网络替代GMM发射模型。 |
| 2012 | RNN-Transducer(RNN-T) | 将单调对齐与输出令牌历史结合,为流式识别提供端到端路径。 |
| 2014–2016 | 注意力编码器-解码器和Listen, Attend and Spell(LAS) | 通过强大的自回归解码器学习直接的语音到文本映射,但完整注意力机制使流式处理复杂化。 |
| 2017 | Transformer | 通过自注意力实现并行训练和长距离上下文。 |
| 2019–2021 | wav2vec 2.0、HuBERT、WavLM和XLS-R | 使用无标签音频学习可迁移的语音表示,降低对转写数据的依赖。 |
| 2020 | Conformer | 将用于全局上下文的自注意力与用于局部声学结构的卷积结合。 |
| 2022 | Whisper | 通过68万小时弱监督多语言音频,展示了稳健的通用识别能力。 |
| 2023 | MMS和SeamlessM4T | 将名义上的ASR语言覆盖范围扩展到1,100多种,并统一转写与语音翻译。 |
| 2023–2024 | FastConformer、缓存感知Conformer和Token-and-Duration Transducer(TDT) | 减少重复计算,改善长音频或流式处理效率。 |
| 2024–2026 | 边缘ASR、可提示转写和语音语言模型 | 增加模型集成式端点检测、领域提示、多模态推理、可控流式延迟和全双工语音交互。 |
这些日期表示有影响力的论文和发布,而不是严格的时代边界。混合HMM系统仍在部署,CTC仍然对对齐和高效解码很重要,而当前系统通常会结合多代技术思想。
模块化统计识别器 #
经典识别器会搜索最能解释声学观测 \(X\) 的词序列 \(W\):
\[ \hat{W}=\arg\max_W P(X \mid W)P(W). \]声学模型评估候选词序列对应信号的可能性,语言模型评估词序列本身。发音词典将词映射到音素,HMM表示音素状态的推进,解码器搜索组合后的图。高斯混合模型(GMM)在历史上用于评估梅尔频率倒谱系数等声学特征帧。
该设计具有重要优势:
- 无需重新训练每个组件,词典即可添加姓名或技术术语;
- 语法约束可以使命令识别具有确定性;
- WFST解码可以高效地整合声学、发音和n-gram成本;
- HMM状态推进支持有界内存的流式处理。
相应的代价是复杂性。训练需要对齐、上下文相关音素状态、多个优化阶段和解码图构建。新语言需要语言学资源,而由分别优化的组件组成的流水线可能积累接口错误。
Kaldi仍然是这一架构的代表性开源工具包。自定义语法、强制对齐、遗留模型以及关于显式解码器的研究仍然使Kaldi具有价值,不过从零开始构建通用识别器,比适配预训练端到端模型需要更多工作。
神经声学模型与端到端目标 #
DNN-HMM混合模型 #
DNN-HMM识别器保留HMM时间结构和WFST解码,但用神经网络对HMM状态的预测替代GMM分数。Hinton及其合作者记录了显著改进,因为深度网络比局部高斯密度的混合模型更有效地建模相关声学特征和说话人变化。
混合系统提供了实用的迁移路径:既有词典和语言模型仍然有用,同时声学质量得到改善。然而,帧对齐和模块化训练栈仍然是必需的。
Connectionist Temporal Classification #
CTC增加空白标签,并对所有能够折叠为目标转写的单调对齐路径求和。因此,训练需要配对的音频和文本,但不需要每个字符或子词的精确时间。
单调形式带来了以下优势:
- 编码器帧可以并行计算;
- 贪心解码成本低;
- 因果或分块编码器可以进行流式处理;
- 帧到令牌的路径支持时间戳;
- CTC适合作为大型系统中的辅助对齐损失。
CTC假设在给定编码器表示的条件下,输出标签之间相互条件独立。通常会加入外部语言模型、前缀束搜索或第二遍解码器,因为仅靠声学编码器无法建模丰富的输出依赖关系。
注意力编码器-解码器 #
注意力编码器-解码器将声学帧映射为潜在序列,并自回归地生成文本。LAS为语音建立了这一方法,Whisper随后通过多语言和多任务训练扩展了Transformer版本。
解码器根据前序令牌和选定的编码器状态生成每个新令牌。丰富的上下文可以在无需显式发音词典的情况下,改善标点、拼写和短语级消歧。任务令牌和语言令牌还可以选择转写、翻译或语言识别。
自回归解码是串行的,而不受限制的注意力可能依赖未来音频。因此,长录音需要窗口化、分块或专门的注意力机制。强大的输出语言模型也可能在声学证据是静音、噪声或音乐时,生成看似合理的词语。Whisper的模型卡片警告了幻觉和重复文本、不同语言及口音之间性能不均衡,以及缺乏稳健的原生说话人分离。
转导器 #
RNN-T在先前输出标签之上增加预测网络,并连接到流式声学编码器。联合网络决定是输出令牌,还是输出推进音频时间的空白。由于对齐保持单调,识别可以从音频前缀开始进行。
RNN-T为语音界面提供了较好的平衡:
- 令牌历史提供了比纯CTC更丰富的语言上下文;
- 缓存的编码器状态限制了重复计算;
- 话语结束前即可输出部分文本;
- 无需单独的发音词典。
其训练和解码比CTC更复杂,空白/令牌对齐可能造成令牌重复错误。TDT预测令牌持续时间,使解码器可以一次跳过多个帧;FastEmit则鼓励更早输出。
Transformer、Conformer与缓存式流式处理 #
Transformer用自注意力替代了递归,从而改善训练并行性和长距离上下文。对 \(n\) 个音频位置执行完整注意力的成对成本为 \(O(n^2)\),因此不受限制的Transformer在长录音上成本较高。
Conformer块结合了:
- 前馈变换;
- 用于广泛上下文的多头自注意力;
- 用于局部语音模式的卷积。
这种组合之所以有效,是因为语音同时包含短时声学事件,以及跨越词语或句子的依赖关系。FastConformer减少序列长度和注意力成本,而缓存感知变体保留先前块的键、值和卷积状态。
流式模型将未来上下文限制在前瞻窗口内。更多右侧上下文可以通过后续音频消除歧义音素和标点来改善识别,但最终输出会更晚到达。NVIDIA的Nemotron 3.5 ASR模型卡片通过可配置的80毫秒至1.12秒区块说明了这种权衡。在该模型卡片的评估条件下,19个可用于转写的区域设置上的报告平均WER从80毫秒时的10.38%下降到1.12秒时的8.84%。这些数字构成延迟-质量曲线,而不是相对于无关系统的通用基准。
自监督学习与基础模型 #
大规模转写语料库成本很高,因为准确标签需要人工审核。自监督学习则从无标签音频中构建预测目标。
- wav2vec 2.0遮盖潜在语音片段,并将正确的量化表示与干扰项进行对比。微调阶段随后加入CTC识别器。
- HuBERT将声学特征聚类成隐藏单元,并预测被遮盖的簇标签。
- WavLM增加去噪和重叠语音目标,生成适用于ASR、说话人验证、语音分离和说话人分离的表示。
- XLS-R将跨语言预训练扩展到128种语言、436,000小时音频。
自监督学习减少了适配所需的标注语音量,但预训练编码器并不是完整的转写产品。分词、解码、微调、端点检测、文本规范化和语言特定评估仍然是必要的。
弱监督学习采取了不同路径。Whisper直接使用大量与互联网派生转写配对的音频进行训练,以带噪标签换取规模和多样性。跨领域鲁棒性得到提升,但标签噪声和自回归生成也引入了可识别的失败模式。
多语言规模也得到扩展:
- MMS使用基于wav2vec的编码器和语言适配器,并列出了1,100多种语言的ASR检查点。
- SeamlessM4T将ASR与语音到文本、文本到文本、文本到语音和语音到语音翻译统一起来。
- Qwen2-Audio等语音语言模型接受音频和文本指令,用于转写和音频理解。
- Canary-Qwen将FastConformer语音编码器连接到语言模型,使同一模型系列能够执行识别和转写后处理。
名义上的语言数量并不等于质量保证。训练时长、文字系统、口音、领域覆盖和分词方式因语言而异。MMS使用CC BY-NC 4.0权重,而Whisper的代码和权重采用MIT许可证。因此,部署决策必须将模型许可证与仓库代码许可证分开检查。
测量质量、速度和延迟 #
识别质量 #
词错误率(WER)为:
\[ \operatorname{WER}=\frac{S+D+I}{N}, \]其中,\(S\)、\(D\)和\(I\)分别表示替换、删除和插入,\(N\)表示参考文本中的词数。在单词分割不明确,或字符级正确性更重要的场景中,字符错误率(CER)更有参考价值。
只有在评估条件一致时,WER比较才有效。文本规范化会决定 2026、twenty twenty-six 和 twenty twenty six 是否被视为等价。标点、大小写、数据集领域、语言、解码方法、VAD以及说话人重叠也会改变结果。
其他指标覆盖不同要求:
- 说话人分离错误率(DER)衡量说话人分段和分配;
- 首令牌时间衡量初始响应速度;
- 稳定部分延迟衡量显示的词语不再变化的时间;
- 端点检测延迟衡量说话人结束后等待的时间;
- 最终延迟包括后处理和传输;
- 实时因子和RTFx衡量离线处理速率;
- 并发流数量衡量给定延迟目标下的服务能力。
对于处理时间 \(T_p\) 和音频时长 \(T_a\):
\[ \operatorname{RTFx}=\frac{T_a}{T_p}. \]RTFx为20表示,在测量配置下,一个工作线程每秒处理20秒音频。RTFx无法反映首令牌延迟,因为批处理可以提高吞吐量,同时延迟每个独立结果。
已报告的速度-质量示例 #
| 系统与公开测试 | 速度或资源结果 | 质量与解读 |
|---|---|---|
| A100上的Whisper模型系列 | 相对速度从large的1x到tiny的约10x不等,turbo列出约8x。 | 较小的检查点以识别质量换取速度和内存。相对数据仅适用于文档所述的Whisper设置。 |
| 使用13分钟音频和RTX 3070 Ti的faster-whisper | 发布表格中,large-v2 FP16耗时63秒,INT8耗时59秒,批量INT8耗时16秒。 | 即使模型权重相关,运行时、精度和批处理也会改变吞吐量。批处理提高归档吞吐量,但不会改善交互延迟。 |
| whisper.cpp | 列出的内存从tiny约273 MB到large的3.9 GB;Core ML可以在Apple Silicon上加速编码器。 | 量化原生运行时支持离线部署,但识别限制仍取决于所选Whisper检查点。 |
| H100上针对184个长音频中文文件的FunASR基准测试 | SenseVoice-Small报告169.6 RTFx,Whisper large-v3为13.4 RTFx。 | 报告CER分别为7.81%和20.02%。结果支持中文长音频部署选择,但不是与语言无关的排名。 |
| Parakeet-TDT 0.6B v3 | 具有长音频解码和时间戳的600M FastConformer-TDT检查点。 | 其模型卡片报告,在覆盖25种欧洲语言的Open ASR Leaderboard数据集上,平均WER为6.34%。 |
| Moonshine Voice对比 | Medium Streaming报告的最终转写延迟,从MacBook Pro上的59毫秒到Raspberry Pi 5上的802毫秒。 | 供应商报告测试模型的平均WER为6.65%。设备、流式策略和基准测试归属限制了跨系统结论。 |
基准测试表始终应记录硬件、精度、批大小、音频长度、模型修订版本、语言、VAD、解码参数和流水线范围。省略这些字段会使测量结果变成含义不明确的声明。
离线与流式设计 #
离线转写 #
离线系统可以查看未来音频、批量处理录音、使用双向编码器、运行束搜索,并应用第二遍语言模型或对齐。归档、字幕、法律审查和媒体索引更受益于吞吐量和最终准确率,而不是即时部分结果。
批处理可以同时执行多个编码器窗口,从而提高加速器利用率。量化减少内存带宽需求,并可以提高CPU或GPU吞吐量。VAD避免对长时间静音区域进行编码。然而,面向批处理的服务可能消耗大量内存,并让短文件排在长任务之后,因此调度器需要考虑时长的队列和有界批处理。
流式转写 #
流式系统处理固定或自适应区块,并在调用之间保留状态。完整的实时路径包括:
capture -> resample -> VAD -> encoder cache -> decoder -> partial text
-> endpointing -> finalization -> application response系统需要管理的不只是模型推理:
- 音频以固定的墙钟速率到达,因此输入缓冲区需要背压;
- 部分假设需要稳定性规则,因为修订会干扰字幕和下游代理;
- 重连需要显式的状态恢复;
- 长会话需要有界缓存;
- 端点检测必须区分停顿和轮次结束。
Whisper可以通过反复转写重叠窗口并确认稳定前缀来适配流式处理。WhisperStreaming报告的演示配置延迟约为3.3秒,远高于原生流式转导器的区块延迟。重新处理还会增加计算量。因此,当亚秒级交互是主要要求时,原生RNN-T、TDT或缓存感知Conformer模型是更好的起点。
开源软件和模型 #
开源生态覆盖完整识别器、优化运行时、研究框架和流水线组件。仓库许可证不会自动覆盖每个可下载的检查点。
| 项目 | 角色与优势 | 限制 |
|---|---|---|
| Whisper | 多语言通用ASR和英语翻译;多个模型尺寸;MIT许可证 | 离线30秒窗口设计;低资源语言质量不均;无原生稳健说话人分离 |
| faster-whisper | 支持批处理、INT8、VAD和词级时间戳的CTranslate2运行时 | CUDA和cuDNN兼容性必须匹配部署环境 |
| whisper.cpp | 支持CPU、Metal、Core ML、CUDA、Vulkan、OpenVINO和WebAssembly的C/C++运行时 | 平台加速和量化需要在目标设备上测试 |
| WhisperX | faster-whisper加wav2vec2对齐、VAD和pyannote说话人分离 | 额外模型增加计算量;重叠语音和说话人分配仍不完美 |
| Kaldi | WFST解码器、词典、经典与神经网络配方、强制对齐 | 功能强大但复杂;不是开箱即用的基础模型运行时 |
| Vosk | 适用于移动端和服务器绑定的小型离线、流式Kaldi派生模型 | 与当前更大的模型相比,紧凑模型牺牲了通用领域质量 |
| SpeechBrain | 面向ASR、增强、分离、说话人识别和说话人分离的PyTorch工具包 | 它是框架和配方集合,而非单一生产级识别器 |
| ESPnet | CTC/attention、RNN-T、Transformer、Conformer、流式处理和说话人分离配方 | 训练和部署需要较深的语音ML专业知识 |
| NVIDIA NeMo Speech | FastConformer、RNN-T、Parakeet、Canary和Nemotron的训练与部署 | 面向GPU的技术栈;每个检查点都有自己的许可证和语言范围 |
| Moonshine | 面向边缘设备的ONNX/C++模型,支持Python、WebAssembly、iOS、Android和Raspberry Pi | 当前检查点按语言专用,而非一个通用模型 |
| FunASR | 离线和流式ASR、VAD、标点、说话人流水线、ONNX/GGUF路径和服务化 | 不同模型系列的检查点许可证和时间戳能力不同 |
| SenseVoice | 非自回归ASR以及语言、情绪和音频事件分类 | 发布的检查点覆盖五种语言,本身不执行说话人分离 |
| sherpa-onnx | 用于流式和离线ASR、VAD、说话人分离、TTS和说话人ID的跨平台ONNX运行时 | 异构模型库需要逐模型验证 |
| WeNet | 面向生产的Conformer、转导器和Paraformer训练与运行时 | 生态系统最集中于中文和流式部署 |
| MMS | 覆盖1,100多种所列语言的适配器方案 | CC BY-NC权重;每种语言一个适配器会增加运维复杂度 |
| Seamless Communication | 多语言ASR及语音/文本翻译,包括流式变体 | 大型模型、复杂依赖和非商业模型许可证 |
| pyannote.audio | 本地说话人分离流水线和预训练说话人模型 | 说话人分离独立于转写;命名说话人需要注册数据 |
实用的开源组合 #
不同要求意味着不同的组合:
- 私有桌面转写:
whisper.cpp提供原生本地运行时,而faster-whisper更适合Python应用和加速器吞吐量。 - **会议和采访:**WhisperX组合了转写、VAD、强制对齐和pyannote说话人分离。必须在重叠语音和麦克风条件下评估每个组件。
- **嵌入式命令:**Vosk或小型sherpa-onnx模型可以提供有界内存的流式处理;对于固定命令集,受限语法可能优于通用基础模型。
- **多语言归档:**Whisper提供广泛的通用覆盖,MMS面向长尾语言,Seamless增加翻译能力。许可证和逐语言评估决定可行性。
- **高吞吐GPU服务:**NeMo模型、faster-whisper或FunASR提供批处理和优化推理路径。
- **语音研究与适配:**ESPnet、SpeechBrain、Kaldi、WeNet和NeMo提供训练配方,而不仅是固定的推理API。
前沿方向 #
可控延迟的流式处理 #
缓存感知模型现在公开了延迟-质量工作点,而不是在训练时将其固定。Nemotron 3.5 ASR可以选择80毫秒至1.12秒的区块大小,Moonshine v2则使用滑动窗口注意力和流式缓存支持边缘设备。动态系统可以根据设备负载、网络条件或对话状态选择模式。
模型集成式轮次检测是另一个方向。Deepgram Flux将转写与轮次结束预测结合,并提供在早期响应和过早轮次完成之间进行权衡的阈值。集成端点检测可以利用词汇和声学上下文,而独立VAD更容易检查和替换。
可提示和上下文感知识别 #
语音API越来越多地接受关键词、短语列表、拼写上下文或自然语言提示。提示可以改善罕见姓名和领域术语,因为解码器会接收应用上下文。在提示控制下游自动化之前,必须测试通过语音内容进行的提示注入、对提供词汇的过度偏置以及不可预测的规范化。
AssemblyAI的Universal-3 Pro介绍了用于领域词汇、语气不流畅、音频标签、说话人角色和代码切换的提示。Google Chirp 3、Azure Speech、Deepgram Nova-3以及当前的OpenAI转写API公开了不同形式的适配或上下文能力。接口和语言支持变化得比开放模型架构更快,因此应用代码应隔离供应商特定选项。
将语音编码器连接到语言模型 #
Canary-Qwen和Qwen2-Audio代表了更广泛的模式:语音编码器将音频映射为语言模型可以消费的表示。单个系统随后可以完成音频转写、规范化、摘要、翻译或回答关于音频的问题。
统一模型减少流水线之间的交接,并可以利用广泛的文本知识。但这也使字面保真更难保证,因为遵循指令的解码器可能会进行改述或推断,而不是保留每个说出的词语。对于受监管的转写、字幕和证据处理,应保留音频、原始转写、时间戳、模型修订版本和转换历史。
全双工语音交互 #
语音代理正从串行流水线——ASR、语言模型、再到文本转语音——转向能够同时听取和说话的模型。全双工交互可以更自然地处理打断和应答,但转写会从唯一接口变为内部信号之一。评估除了WER外,还必须加入打断处理、轮流发言、语义延迟以及从错误起始中恢复的能力。
托管服务 #
托管API减少模型服务工作,并可以提供说话人分离、编辑、短语适配和区域部署:
- OpenAI转写包含Whisper以及更新的转写或说话人分离模型,流式处理和响应格式取决于模型。
- Google Cloud Chirp 3支持批量、同步和流式识别,并提供依赖语言的适配和说话人分离功能。
- Azure Speech to Text提供实时、快速同步、批量和基于LLM的转写路径。
- Deepgram将通用Nova模型与面向会话流式处理和端点检测的Flux区分开来。
- AssemblyAI Universal-3 Pro强调可提示转写和代码切换。
云服务选择必须包括数据保留策略、训练数据策略、加密、区域可用性、模型版本固定、故障行为,以及发送长时间静音或多声道录音的成本。本地VAD可以减少带宽,但激进过滤可能永久丢弃低音量语音。
架构选择 #
| 要求 | 有力的起点 | 原因 |
|---|---|---|
| 长录音的最高离线质量 | 配合批处理和第二遍对齐的双向或全上下文编码器-解码器 | 未来上下文和批处理利用率比部分延迟更重要 |
| 实时字幕或语音代理 | RNN-T、TDT或缓存感知Conformer | 单调解码和缓存区块提供稳定的低延迟输出 |
| 离线桌面或移动隐私 | whisper.cpp、Moonshine或sherpa-onnx | 原生和量化运行时使音频保留在设备上 |
| 极广的多语言覆盖 | Whisper、MMS或Seamless | 大规模多语言预训练覆盖更多语言,但仍需逐语言测试 |
| 中文和东亚部署 | FunASR/SenseVoice、WeNet或语言专用Moonshine模型 | 专门的数据和分词方式可以在目标领域超过广泛模型 |
| 会议转写 | ASR加VAD、强制对齐和说话人分离 | 说话人归属和时间戳属于不同的模型目标 |
| 固定命令和受限词汇 | Kaldi/Vosk语法或紧凑的流式模型 | 显式语法约束减少计算量和无效输出 |
| 快速托管集成 | 云转写API | 供应商负责扩缩容并提供更高层功能 |
可辩护的评估流程如下:
- 收集包含目标麦克风、口音、语言、噪声、重叠语音、停顿和领域术语的代表性音频。
- 定义质量切片,而不是只使用一个汇总WER。姓名、数字、命令和低资源语言可能具有不同的失败成本。
- 在部署硬件上测量端到端延迟、内存、功耗、并发量和成本。
- 测试静音、音乐、截断话语、代码切换以及提示偏置的失败模式。
- 独立于文本准确率评估说话人分离和时间戳。
- 记录确切的模型修订版本、规范化规则、许可证和供应商数据策略。
ASR的发展已经将工程问题从构建每一个声学组件转向选择和适配预训练系统。核心约束并未消失:更多上下文和更大的模型可以改善识别,而低延迟、隐私、语言广度、可预测输出和部署成本会将系统拉向不同的工作点。因此,架构选择应遵循经过测量的应用需求,而不是单一的排行榜分数。
评论
在 GitHub 上阅读或评论(发表评论需要登录)