ASR主流模型
ASR技术经历了从传统混合模型到端到端深度学习的演进,涌现出多种优秀的模型架构。
预计阅读时间:45分钟·难度:中级
传统架构
传统ASR系统由多个独立模块组成,每个模块单独训练和优化。
模块组成
声学模型(AM)
HMM-DNN结构,预测每个音频帧对应的音素状态。早期使用GMM,后来被DNN取代。
发音词典
定义词汇到音素序列的映射,需要语言学专家维护。新词需要人工添加发音。
语言模型(LM)
评估文本序列的概率,常用N-gram或神经网络LM(如LSTM-LM)。
解码器
在搜索空间中找到最优词序列,通常使用Viterbi算法或束搜索。
优缺点分析
| 优点 | 缺点 |
|---|---|
| 各模块可独立优化 | 模块间误差累积 |
| 可解释性好 | 需要专业标注数据 |
| 可灵活替换组件 | 部署复杂度高 |
| 领域适应能力强 | 新词扩展困难 |
端到端模型
端到端模型直接从音频到文本,简化了训练和部署流程,是当前的主流方向。
主要模型架构
| 模型 | 架构 | 特点 |
|---|---|---|
| Whisper | Transformer | 多语言、鲁棒性强、开源 |
| Conformer | CNN+Attention | 工业级应用广泛、效果好 |
| Transducer | RNN-T | 流式识别友好、延迟可控 |
| Paraformer | 非自回归 | 速度快、精度高、中文优化 |
| WeNet | Conformer+Transducer | 开源生产级、双流解码 |
Whisper详解
模型概述
OpenAI发布的多语言语音识别模型,在68万小时的多语言数据上训练。支持99种语言的转录和翻译。
模型规格
| 模型 | 参数量 | 速度 |
|---|---|---|
| tiny | 39M | 最快 |
| base | 74M | 快 |
| small | 244M | 中等 |
| medium | 769M | 慢 |
| large-v3 | 1550M | 最慢 |
核心特点
- • 多语言支持:支持99种语言转录,支持翻译为英语
- • 鲁棒性强:对噪声、口音、背景音乐适应性好
- • 多任务:支持识别、翻译、语言检测、VAD
- • 开源可用:模型权重完全开源
Paraformer详解
模型概述
阿里达摩院提出的非自回归端到端语音识别模型,中文识别效果优异,推理速度快。
核心创新
- • 非自回归解码:并行生成所有token,速度快
- • 连续积分发放:解决长度预测问题
- • GLM语言模型:增强语言模型能力
- • 中文优化:针对中文场景特别优化
自监督模型
自监督学习利用大量无标注音频进行预训练,显著降低标注数据需求。
主要模型
Wav2Vec 2.0
Meta提出的自监督语音预训练模型。通过对比学习预训练音频编码器,将未标注音频转化为有用的语音表示。
HuBERT
使用聚类目标进行预训练。先将音频聚类为离散单元,然后预测这些单元,效果优于Wav2Vec 2.0。
WavLM
微软提出的模型,在HuBERT基础上增加了去噪目标,提高噪声鲁棒性。
BEST-RQ
基于向量量化的预训练方法,Google提出,在大规模数据上效果好。
预训练-微调范式
- 1. 预训练阶段:在大规模无标注音频上学习通用语音表示
- 2. 微调阶段:在有标注数据上针对具体任务微调
- 3. 效果:只需少量标注数据即可达到好效果
模型对比
性能对比
| 模型 | 中文WER | 英文WER | 流式支持 | 开源 |
|---|---|---|---|---|
| Whisper large-v3 | ~5% | ~4% | 否 | 是 |
| Paraformer-large | ~3% | ~5% | 是 | 是 |
| Conformer | ~4% | ~4% | 是 | 是 |
| Wav2Vec 2.0 | ~6% | ~5% | 否 | 是 |
速度对比
| 模型 | RTF (GPU) | RTF (CPU) | 显存占用 |
|---|---|---|---|
| Whisper large-v3 | 0.1-0.2 | 2-3 | ~4GB |
| Whisper base | 0.02-0.05 | 0.3-0.5 | ~1GB |
| Paraformer | 0.05-0.1 | 0.5-1 | ~2GB |
| WeNet streaming | 0.02 | 0.2 | ~1GB |
选型指南
按场景选择
离线转写
推荐Whisper large或Paraformer。追求质量选Whisper,中文场景选Paraformer。
实时识别
推荐WeNet、Conformer Streaming或RNN-T。需要流式支持和低延迟。
多语言场景
推荐Whisper,支持99种语言,且效果稳定。
低资源语言
推荐Wav2Vec 2.0或HuBERT微调,利用自监督预训练降低标注需求。
边缘部署
推荐Whisper tiny/base或WeNet streaming,模型小、速度快。
开源项目推荐
| 项目 | 特点 | 适合场景 |
|---|---|---|
| WeNet | 生产级、双流解码 | 工业部署 |
| FunASR | Paraformer官方 | 中文识别 |
| faster-whisper | Whisper加速版 | 批量转写 |
| whisper.cpp | C++实现 | 边缘部署 |