语音识别是怎么工作的:从声波到文字的四个环节

2026-08-24

语音识别(ASR)是把一段音频信号转换成对应文字的技术,它在工程上不是单个模型从头干到尾,而是由音频前处理、特征提取、声学建模与解码、文本后处理四个环节接力完成的。

理解这四环节的意义很实际:当转写结果不对劲时,你能判断该去修哪一段。同样是”识别不准”,专有名词老是写错和整句话前几个字丢失,根本不是一个问题,修的地方也完全不同。

为什么不能把声音直接丢给模型

一段 16 kHz 采样的音频,每秒有 16000 个采样点。一分钟就是近百万个数字,而它对应的文字可能只有两百来个字。

这中间的信息密度差了三个数量级。更麻烦的是,同一句话由不同的人在不同的环境里说出来,波形长得完全不一样——音高不同、语速不同、背景噪声不同,但它们对应同一串文字。

所以整条链路真正在做的事情是:一层层地把与文字无关的信息剥掉,只留下决定”说了什么”的那部分。四个环节就是这个剥离过程的四个阶段。

第一环:音频前处理

这一环负责把五花八门的输入统一成模型认识的样子,通常包含三件事:

  • 重采样。模型在什么采样率上训练,就得喂什么采样率。宽带语音的事实标准是 16 kHz;电话线路是 8 kHz 的窄带,高频信息本来就没被采集进来,这是信道决定的上限,后期再怎么处理也补不回来。
  • 单声道化。多数识别模型只吃单声道,立体声要先混下来。
  • 增益归一与静音处理。让音量落在合理范围,避免过小的信号被后续环节当成噪声。

要不要在这里做降噪,是个需要单独判断的问题。AEC(回声消除)必须放在最前面,因为它需要拿到”设备正在播放什么”这个参考信号,离开这个位置就无从对消。但降噪不一定是净收益——现代识别模型大多在带噪数据上训练过,有一定鲁棒性,而降噪算法用力过猛会损伤语音本身的谐波结构,反而让识别变差。这件事的详细取舍见降噪和回声消除,该放在 ASR 前面还是交给模型

第二环:特征提取

这一环把波形变成模型真正吃的东西,标准做法是梅尔滤波器组特征(fbank)

流程是:把音频按 25 毫秒左右的帧长切开、每次前进 10 毫秒(帧之间有重叠,避免边界处信息断裂),每帧做短时傅里叶变换得到频谱,再送进一组按梅尔刻度排布的滤波器,取对数。

两个”为什么”值得说清楚:

为什么要分帧——语音整体是非平稳信号,但在二三十毫秒的短窗内可以近似看作平稳,这样才能用傅里叶变换那套工具。

为什么用梅尔刻度——人耳对频率的分辨率不是线性的,低频听得细、高频听得粗。梅尔刻度模拟了这个特性,把频率轴按人的感知重新划分,低频区滤波器密、高频区滤波器疏。识别的目标是还原”人听到了什么”,所以按人耳的分辨率来分配精度,是合理的资源分配。

你可能还听过 MFCC,它是在 fbank 之后再做一次离散余弦变换。这一步的作用是让特征维度之间去相关,在 GMM-HMM 那个年代是刚需。到了神经网络时代,网络自己能处理维度间的相关性,多做一次变换反而丢信息,所以现在的主流是直接用 fbank。

第三环:声学建模与解码

这是把特征序列变成文字序列的一环,也是整条链路里最核心的部分。

难点在于对齐:一段特征有几百帧,对应的文字只有几十个字,模型并不知道哪几帧对应哪个字。围绕这个问题,端到端建模有三种主流范式:

  • CTC:引入一个特殊的空白符号,允许模型对每一帧都输出点什么,再把重复和空白折叠掉。它假设各个输出之间条件独立,好处是天然适合流式。
  • 注意力编码器-解码器(AED):解码时可以看到整段编码结果,精度好,但原生不适合流式——它要看到全部才能开始。
  • RNN-T(Transducer):在 CTC 基础上加了预测网络和联合网络,既保留流式能力,又能建模输出之间的依赖,是当前流式识别的主流选择。

与之相对的是传统混合系统:声学模型、发音词典、语言模型三者分别训练,再用解码图串起来。它现在不是主流,但有一个至今仍然管用的优点——加新词只要改词典和语言模型,不用重训声学模型。在专名密集、词表频繁更新的场景,这个特性很有价值。两条路的完整对比见端到端 ASR 和传统混合系统,差别到底在哪

第四环:文本后处理

模型吐出来的原始文本,离能用还差几步:

  • ITN(逆文本规范化):把口语形式转成书面形式,“二零二五年”变成”2025 年”,“百分之三十”变成”30%”。
  • 标点恢复:声学模型的输出通常没有标点,要由一个独立模型按序列标注的方式补上。
  • 热词纠正:让专有名词更容易被正确识别。这里有个常见的概念混淆——关键词检测(KWS)和热词偏置不是一回事,前者是”听到某个词就触发动作”,后者是”让识别结果更倾向于出现某个词”,两者的模型和用途都不同。
  • 时间戳输出:给字幕和跳转定位用。

这一环最容易被低估。很多人抱怨”识别不准”,实际错的是后处理——比如数字读法没转对,或者标点断错了句。

出错时,怎么判断是哪一环

症状大概率出在
整句话开头几个字丢失第一环的 VAD 断句,起始点切晚了
远场、嘈杂环境下整体崩坏第一环,音频质量或降噪策略
专有名词、人名、产品名反复写错第四环的热词,或第三环的语言模型
数字、日期、金额格式不对第四环的 ITN
长音频中间某段整体错乱第一环的长音频切分,切在了语音中间
通篇没标点或断句离谱第四环的标点恢复
换个说话人就明显变差第三环,训练数据的口音覆盖

这张表的价值在于:先定位到环节,再决定要不要换模型。很多时候换模型解决不了的问题,改一下管道配置就好了。

常见问题

问:这四个环节是必须的吗?有没有一个模型全包的方案?

有,端到端的程度可以更高,比如把标点和 ITN 也交给同一个模型直接输出规范文本。但工业系统里保留分环节的结构仍然普遍,原因是可诊断、可单独优化、可针对业务替换其中一环。

问:流式识别的四个环节有什么不同?

主要差别在第三环和第四环。第三环要选支持流式的建模范式,第四环则面临一个矛盾——标点需要看到后文才能确定,但流式要求立刻输出,常见折中是先给无标点的结果,随后再修订。

问:识别准确率能到多少?

这个问题没法脱离场景回答。安静环境的朗读和嘈杂环境的多人自由交谈,难度天差地别。比起追问一个数字,更实际的做法是用自己的业务数据建测试集,并且知道准确率被高估的几种常见情况

问:我该从哪一环开始优化?

先做测试集,再按上面那张表定位。没有测试集的优化都是凭感觉,改完也不知道是好了还是坏了。

相关阅读


本文讲的是语音识别领域的通用原理,不绑定某一个具体实现。 各家系统的环节划分、默认配置与能力边界差异很大,请以你所用系统的官方文档为准。 我们没有对文中提到的任何方案做过性能实测,因此不给准确率、速度一类的数字。

想系统学会用 AI?报名体系课或加入会员,照着学、照着用。