早期方法
模板匹配:把语音与预存的模板比对。只能识别有限的孤立词,对说话人差异敏感。
统计方法(GMM-HMM):这是 1990–2010 年代的主流。
- HMM(隐马尔可夫模型):建模语音的时序结构。语音是连续的时序信号,HMM 擅长处理这类序列。
- GMM(高斯混合模型):建模每个状态的声学特征分布。
这套方法还需要额外的组件:
- 声学模型:把声学特征映射到音素;
- 发音词典:音素到词的映射;
- 语言模型:哪些词序列更可能出现(如"今天天气"比"今天汽气"更可能)。
局限:组件多、训练流程复杂、需要大量语言学知识(音素标注、发音词典),且对噪声、口音、语速变化鲁棒性不足。
深度学习的进入
大约在 2010 年代初,DNN(深度神经网络)开始替代 GMM 做声学建模,识别准确率大幅提升。
随后,RNN/LSTM 引入了更强的时序建模能力;CNN 也被用于声学特征提取。
端到端模型
真正的范式转变,是端到端(End-to-End)方法:直接从声学特征序列映射到文字序列,不再需要音素、发音词典这些中间表示。
CTC(Connectionist Temporal Classification):解决输入输出长度不匹配的问题。语音帧数远多于文字数,CTC 引入一个"空白"符号,允许模型输出重复字符和空白,再通过规则合并。
RNN-T(RNN Transducer):在 CTC 基础上引入预测网络和联合网络,支持流式识别(边听边出字)。这对实时语音输入很重要。
Attention-based Encoder-Decoder:用注意力机制对齐输入和输出。
Conformer / Transformer 架构:结合卷积的局部建模能力和自注意力的全局建模能力,成为当前主流。
自监督预训练
近年来最重要的进展之一是自监督学习:用海量无标注语音数据预训练模型(如 wav2vec 系列思路),再用少量标注数据微调。
这大幅降低对标注数据的依赖——标注语音的成本很高(需要人工转写),而未标注的语音数据几乎无穷无尽。
现实挑战
远场识别:在数米距离外、有混响和噪声的环境中识别。这需要麦克风阵列波束成形、回声消除等前端处理配合。
多说话人分离:鸡尾酒会问题——在多人同时说话时分离出目标说话人的声音。
口音与方言:模型对训练数据覆盖不足的口音表现明显下降。
领域适应:医疗、法律等专业领域的术语识别。
低资源语言:世界上绝大多数语言缺乏足够的标注数据。
一个应用观察
语音识别的准确率在安静环境下已经很高,但实际用户体验还取决于:
- 前后端延迟;
- 标点与断句的合理性;
- 数字、专有名词的处理;
- 与下游任务(如语音助手的意图理解)的衔接。
说明:本文为语音技术的公开知识整理。