- 引言
- 全局:发展脉络
- 语音识别(ASR)的脉络
- Whisper:大规模弱监督学习
- 流式 vs 离线
- 提升稳健性的训练技巧
- 语音合成(TTS)的演进
- 神经音频编解码器
- 编解码器语言模型:VALL-E 系列的概念
- 零样本语音复刻与伦理
- 多语言支持
- 把声音变成特征:梅尔频谱图
- 评估指标
- 实务流水线示例
- 对比:各类方法一览
- 说话人分离与附加任务
- 语音对语音与统一模型
- 整体流程图
- 端侧部署与轻量化
- 局限与注意事项
- 结语
- 参考资料
引言
语音技术早已深深融入我们的日常生活。手机的语音听写、会议记录的自动生成、导航的语音播报、有声书的朗读,全都是语音识别(ASR, Automatic Speech Recognition)与语音合成(TTS, Text-to-Speech)的产物。
近几年,这一领域借助深度学习、尤其是大规模预训练与 Transformer 的力量取得了巨大飞跃。识别方面出现了 Whisper 这类大规模弱监督模型;合成方面则出现了难以与真人区分的自然语音,以及仅凭简短样本就能复刻声音的编解码器语言模型。
本文沿着语音识别与合成的脉络,审视其核心架构与原理。由于 AI 的 SOTA 变化非常快,本文更侧重概念与结构,而非具体排名或数值,并且只对确切了解的模型与论文下断言。
全局:发展脉络
在深入细节之前,先一览语音技术发展的整体脉络。
[语音识别(ASR)脉络]
HMM/GMM -> DNN声学模型 -> CTC/注意力端到端 -> Whisper大规模弱监督
[语音合成(TTS)脉络]
拼接/参数化 -> Tacotron+神经声码器 -> 神经编解码器 -> 编解码器语言模型
整体趋势可以归纳为两点。第一,从多个部件手工组装的方式,转向了用数据端到端学习的方式。第二,随着数据规模增大、表示形式趋向 token 化,识别与合成都开始共享与大语言模型相似的工具。下面依次审视每个阶段。
语音识别(ASR)的脉络
从声音到文字
语音识别的目标是把语音波形转换为文本。问题的本质在于,把连续的声音信号对齐到离散的文字序列。声音随时间流动,发音速度也因人而异,因此判断哪个声音区间对应哪个文字,是核心难题。
[语音波形] ~~~~~~/\/\~~~~/\~~~~~
| 特征提取 (例如: 梅尔频谱图)
v
[声学特征] 逐帧向量序列
| 声学模型 + 对齐
v
[文本] "你好"
HMM 时代
早期语音识别由隐马尔可夫模型(HMM, Hidden Markov Model)与高斯混合模型(GMM)的组合主导。声学模型把声音特征映射到音素状态,发音词典把音素映射到单词,语言模型给单词序列打分——这是多个部件组合而成的系统。
这种方式长期作为标准,但部件繁多、各自需要单独构建,因此相当复杂。后来深层神经网络(DNN)取代了声学模型中的 GMM,性能大幅提升,并逐渐开启了向端到端(end-to-end)神经网络转变的趋势。
CTC:对齐问题的突破口
端到端神经网络语音识别的重要转折点是 CTC(Connectionist Temporal Classification)。CTC 让模型无需逐一对齐声音帧与文字即可完成训练。
核心思路是引入空白(blank)token,并将所有可能对齐路径的概率相加,从而计算出最终文本的概率。
帧: f1 f2 f3 f4 f5 f6
路径1: 你 你 _ 好 _ 好
路径2: _ 你 _ 好 好 _
(_ 为空白 token,合并重复/空白后得到 "你好")
对所有有效路径的概率求和 -> "你好" 的概率
得益于 CTC,即便没有逐帧对齐的标签,仅凭声音与文本的配对也能完成训练。不过 CTC 假设各输出彼此独立,存在局限,若要反映语言层面的上下文,往往需要与单独的语言模型结合使用。
基于注意力机制的编码器-解码器
另一条脉络是基于注意力机制的编码器-解码器。编码器把声音转换为表示,解码器通过注意力挑选所需的声音区间,逐字生成文本。Transformer 出现后,这一结构变得大为强劲。
CTC 与注意力机制相互互补,因此同时使用两者的混合结构也被广泛采用——由 CTC 稳定地把握单调对齐,再由注意力灵活地反映上下文。
Whisper:大规模弱监督学习
Whisper 的核心
Whisper 是 OpenAI 公开的语音识别模型,发表于论文《Robust Speech Recognition via Large-Scale Weak Supervision》(arXiv 2212.04356)。正如其名,核心在于大规模弱监督(weak supervision)学习。
Whisper 的特点在于,它使用从网络上收集的海量(据称达数十万小时规模)语音-文本配对数据进行训练。这证明了即便标签并不完美,只要数据量足够大,也能训练出稳健的模型。
[从网络收集的大规模语音-文本]
涵盖多种语言、口音、噪声、领域
|
v
[Transformer 编码器-解码器]
log-mel 频谱图输入 -> 编码器
文本 token 输出 <- 解码器 (注意力)
|
v
[单一模型执行多种任务]
多语言识别、翻译、语言识别、时间戳
多任务结构
Whisper 的另一个特点是单一模型可以处理多种任务。通过特殊 token 给出「识别当前语言」「翻译成英语」「加上时间戳」之类的指示,同一个模型就能执行相应任务。得益于这种多任务设计,无需额外部件即可用一个模型处理多种功能。
Whisper 的强项在于稳健性,据称在嘈杂环境或不同口音下也能相对良好地运作。不过就基本结构而言,它并不直接适合实时流式处理,而且在长音频上也有可能出现幻觉(hallucination)或重复的问题。
流式 vs 离线
语音识别大致有两种使用场景。
[离线(批处理)识别]
接收完整音频后再识别
- 优点: 可利用前后全部上下文,精度有利
- 用途: 会议记录、字幕生成、播客转写
[流式(实时)识别]
声音一进来就立即识别
- 优点: 延迟短
- 限制: 看不到未来的上下文,需要修正部分结果
- 用途: 实时字幕、语音助手、通话识别
像 Whisper 这样的编码器-解码器离线模型在精度上占优,但延迟较大。相反,流式场景更适合只稍微窥探未来、或完全不看未来的结构(例如 transducer 系列)。实务中会根据用途分别采用这两种方式。
提升稳健性的训练技巧
实际环境中的语音夹杂着噪声、混响以及各式各样的麦克风特性,十分「杂乱」。只用干净数据训练出的模型,在这种环境下性能会大幅下滑。因此,通过数据增强(data augmentation)刻意让训练数据变得多样化的技巧被广泛使用。
[常见的语音数据增强]
- 速度/音高变形: 略微改变语速或音高
- 添加噪声: 混入背景噪声、混响
- SpecAugment: 遮盖频谱图中的部分时间/频率区间
- 音量/增益变形: 让音量多样化
尤其是 SpecAugment,这是一种在梅尔频谱图上遮盖部分时间轴与频率轴的简单技巧,却大幅提升了语音识别性能,因而被广泛采用。像 Whisper 那样用大规模、多样化的数据训练,本身也可以看作是提升稳健性的一种方法。数据越能充分涵盖真实环境的多样性,模型在部署后就越经得起考验。
语音合成(TTS)的演进
早期:拼接合成与参数化合成
早期 TTS 有两种路线:拼接事先录制的语音片段的拼接合成(concatenative),以及用统计模型生成语音特征的参数化合成。拼接合成能以特定说话人的声音听起来自然,但灵活性低;参数化合成灵活,但听起来带有机械感。
Tacotron:端到端神经网络 TTS
深度学习 TTS 的转折点是 Tacotron 系列。Tacotron 接收文本输入,通过基于注意力机制的序列到序列(sequence-to-sequence)模型生成梅尔频谱图(声音的时间-频率表示)。随后由声码器(vocoder)把梅尔频谱图转换为实际波形。
[文本]
| 文本编码器 + 注意力解码器 (Tacotron 系列)
v
[梅尔频谱图] 声音的时间-频率表示
| 声码器 (波形生成)
v
[语音波形]
这种「文本 → 梅尔频谱图 → 波形」的两阶段结构,长期以来一直是神经网络 TTS 的标准范式。
神经声码器
把梅尔频谱图转换为波形的声码器,其质量决定了最终音质。早期的 WaveNet 能发出非常自然的声音,但由于逐个样本生成,速度极慢。此后,能够并行生成的多种声码器(例如基于 flow、基于 GAN 的系列)相继出现,在保持音质的同时实现了快得多的合成速度。在实务中被广泛使用的基于 GAN 的声码器系列,凭借速度与音质之间的平衡而广受欢迎。
韵律与风格控制
优秀的语音合成,不能只满足于发音清晰,还要承载自然的韵律(prosody)。韵律指的是语调、重音、节奏、停顿这类决定句子「语感」的要素。同一句话,根据韵律的不同,可以听起来像疑问、像陈述,也可以听起来像惊讶。
[韵律控制的例子]
"真的吗"
- 平缓的语调 -> 淡然的反应
- 尾音上扬的语调 -> 惊讶的疑问
- 带重音的语调 -> 强烈的感叹
相同的文字,不同的韵律 -> 不同的含义/情感
早期 TTS 难以精细控制韵律,但最近的模型可以把参考语音、风格 token、情感标签等作为条件,在一定程度上调节韵律与说话人风格。编解码器语言模型的零样本(zero-shot)复刻,也具有连带模仿参考语音韵律的特性,因此仅凭简短样本就能有利地再现特定说话人的语气。
神经音频编解码器
把音频变成 token
最新语音合成的核心材料是神经音频编解码器(neural audio codec)。神经编解码器是一种用神经网络压缩音频的技术,能把连续的声音转换为离散的 token 序列。
[连续音频波形]
| 编码器
v
[向量量化(VQ)] -> 离散 token 序列 (音频的"单词")
| 解码器
v
[还原后的音频波形]
关键在于,通过残差向量量化(RVQ, Residual Vector Quantization)之类的技术,把音频表示为多层离散代码。这样一来,音频也和文本一样变成了 token 序列。具有代表性的神经编解码器包括 SoundStream、EnCodec 系列。
一旦音频变成了 token,就可以让语言模型像预测文本 token 一样预测音频 token。这正是接下来要看的编解码器语言模型的出发点。
编解码器语言模型:VALL-E 系列的概念
把语音合成变成语言建模
用神经编解码器把语音 token 化之后,可以把 TTS 重新定义为「预测下一个音频 token」的问题。也就是说,把文本和一段简短的参考语音作为条件,语言模型就会生成以该说话人声音延续下去的音频 token。这一方向具有代表性的概念是 VALL-E 系列。
[文本] + [简短的参考语音 (3 秒示例)]
| 用编解码器 token 化
v
[条件: 文本 token + 参考语音 token]
| 语言模型 (预测下一个音频 token)
v
[生成的音频 token 序列]
| 编解码器解码器
v
[以参考说话人声音合成的语音]
零样本语音复刻
编解码器语言模型令人印象深刻的能力是零样本(zero-shot)语音复刻。无需另行再训练,仅凭几秒钟的参考语音,就能模仿这个人的声音特征(音色、语调)来合成新的句子。这种性质,与把简短的参考当作上下文(context)、并据此续接生成的上下文学习(in-context learning)相似。
这种方式仅用少量数据就能打造个性化的声音,十分强大,但随之而来的,是后文将谈到的伦理风险也在同步增大。
与基于扩散的方法并存
除了编解码器语言模型(自回归)之外,基于扩散(diffusion)或基于流匹配(flow matching)生成语音的方法也十分活跃。自回归是按顺序逐个生成 token,而扩散系列则是从噪声中逐步生成语音。两者各有优劣,正并存发展。
零样本语音复刻与伦理
零样本语音复刻在无障碍应用(例如为声带疾病患者再现声音)以及内容创作方面具有很大的价值。但与此同时,也伴随着严重的风险。
- 冒充与诈骗:用他人的声音欺骗熟人的语音钓鱼、金融诈骗风险增大。
- 未经同意的复刻:未经本人同意复刻声音,可能构成肖像权/人格权侵害。
- 深度伪造语音:把虚假发言做得以假乱真,可能误导舆论。
正因存在这些风险,许多研究与服务都强调同意确认、水印(在生成的音频中植入识别信号)以及使用限制政策。在运用这项技术时,应当把这些安全防护和责任,和技术能力本身放在同等重要的位置一并考虑。
多语言支持
语音技术的一大重要课题是多语言与低资源语言支持。世界上有数千种语言,但训练数据丰富的语言只占少数。
像 Whisper 这样用大规模多语言数据训练出的模型,具有用一个模型处理多种语言的优势。语言之间的知识得以共享,数据稀少的语言也能借助相关语言的帮助。不过,在数据极度稀少的低资源语言上,性能依然会下降,代码切换(code-switching,一句话中混用多种语言)与方言处理,也仍然是难题。
把声音变成特征:梅尔频谱图
我们再进一步看看前面多次出现的梅尔频谱图。语音信号是由每秒数万个采样点构成的长波形。与其把它直接丢进神经网络,更常见的做法是通过预处理,把它转换为契合人类听觉特性的特征。
[语音波形] 随时间变化的振幅
| 切成短时区间后做傅里叶变换 (STFT)
v
[频谱图] 时间 x 频率的能量图
| 应用契合人类听觉的梅尔刻度
v
[梅尔频谱图] 时间 x 梅尔频率
梅尔刻度反映了人类对低频差异更敏感、对高频差异较不敏感的特性。因此梅尔频谱图相比原始频谱图,在听觉意义上是更有意义的表示。识别与合成都常常把这种表示用作中间桥梁。不过最近,直接处理波形、或使用前面提到的神经编解码器 token 的方向,也在同步发展。
评估指标
识别评估:WER
语音识别性能主要用词错误率(WER, Word Error Rate)来衡量。把标准答案句子与识别结果做比较,数出被替换、被删除、被插入的单词数,再计算为比例。
WER = (替换 + 删除 + 插入) / 标准答案单词数
- 数值越低越好 (越接近 0 越准确)
- 对于韩语/日语这类分词标准不同的语言,
有时也会一并参考字符错误率(CER)
WER 很有用,但也有局限。它把无伤大雅的小错误和会改变句意的致命错误一视同仁地计数,因此不一定总与实际可用性一致。所以,根据用途的不同,人工评估或下游性能(例如根据识别结果命令是否能被正确执行)也会一并纳入考量。
合成评估:MOS
语音合成的自然度主要用平均意见得分(MOS, Mean Opinion Score)来衡量。人类评估者听完合成语音后,给自然度打 1 到 5 分,再取平均值。最近也开始使用模仿人工评估的自动化指标,但合成音质的最终判断,依然高度依赖人工听感评估。
实务流水线示例
整理一下把语音技术投入实际服务时的典型流程。
[语音识别服务流程]
1. 音频输入 (麦克风/文件)
2. 预处理 (重采样、归一化、特征提取)
3. ASR 模型推理 (Whisper 等)
4. 后处理 (标点恢复、数字归一化、过滤)
5. 结果应用 (字幕、指令处理、搜索等)
[语音合成服务流程]
1. 文本输入
2. 文本归一化 (把数字/缩写/符号转换为朗读形式)
3. TTS 模型推理 (Tacotron/编解码器 LM 等)
4. 后处理 (音量归一化、静音整理)
5. 音频输出/流式传输
前后处理对实际使用品质的影响尤其大。举例来说,在识别中标点符号与数字归一化决定着可读性;在合成中,一旦文本归一化出错,数字或缩写就会被读错。打磨这些周边处理,和打磨模型本身同样重要。
对比:各类方法一览
| 类别 | 代表概念 | 优势 | 注意点 |
|---|---|---|---|
| ASR HMM/GMM | 声学+发音+语言模型组合 | 历经长期验证、易于解释 | 部件多、复杂 |
| ASR CTC | 空白 token 对齐、端到端训练 | 无需对齐标签 | 假设输出相互独立 |
| ASR 注意力 | 编码器-解码器 | 灵活反映上下文 | 用于流式场景需要调整 |
| ASR Whisper | 大规模弱监督多任务 | 稳健、多语言 | 流式/长音频存在局限 |
| TTS Tacotron+声码器 | 文本->梅尔->波形 | 合成自然 | 两阶段流水线 |
| TTS 编解码器 LM | 音频 token 预测 | 零样本复刻 | 伦理风险大 |
上表只是概念层面的比较,各种方法都在持续演进,具体优劣会因情况而异。
说话人分离与附加任务
实际音频中经常混有多个人说话的情况。在会议记录或通话转写场景中,需要用说话人分离(speaker diarization)来区分「谁在何时说了话」。
[说话人分离流程]
音频
| 语音活动检测 (VAD, 区分语音/静音)
v
语音片段
| 提取说话人嵌入 + 聚类
v
"说话人A: 0~5秒,说话人B: 5~9秒 ..." 标签
这里的关键工具是说话人嵌入(speaker embedding)。把声音特征转换为向量,并训练成同一个人的发话对应相近的向量。这正是前面嵌入相关文章中出现过的对比学习(contrastive learning)思路,应用到语音领域的一个例子。除了说话人分离之外,情感识别、语言识别、语音活动检测(VAD)等附加任务,也一并出现在实务流水线中。
语音对语音与统一模型
传统上,语音助手分为三个阶段:用 ASR 把声音转成文字,用 LLM 生成回答,再用 TTS 把文字重新变回声音。然而这种方式阶段繁多,延迟较大,中间还会丢失情感、语调之类的信息。
[分阶段语音对话]
声音 -> ASR -> 文字 -> LLM -> 文字 -> TTS -> 声音
(情感/语调信息可能在中途消失)
[统一式语音对语音]
声音 -> [单一模型] -> 声音
(能更自然地保留语调、笑声、情感)
因此,最近正在研究把声音直接连到声音的统一语音对语音(speech-to-speech)模型。前面提到的神经编解码器 token,在这里同样是核心材料——只要能把音频当作 token 来处理,就可以设想一个用同一套方式处理文本与音频的统一模型。不过这类统一模型仍在发展之中,在延迟、质量、可控性方面还有许多有待解决的课题。
整体流程图
把语音识别与合成整理成一张图,如下所示。
[语音输入]
| ASR (Whisper 等)
v
[文本] <-> [LLM 处理 (可选)]
| TTS (Tacotron / 编解码器 LM 等)
v
[语音输出]
语音助手: 以 ASR -> LLM -> TTS 的连接实现对话
像这样把 ASR 与 TTS 通过 LLM 连接起来,就完成了语音对话式界面。最近,试图把这三个阶段统合进单一模型的语音对语音(speech-to-speech)方法也在被研究。
端侧部署与轻量化
不依赖云端、直接在设备内部处理语音的需求也很大。因为延迟短、无需联网即可运行,而且语音数据不会离开设备,有利于隐私保护。
[云端 vs 端侧]
云端: 大模型,高精度 / 延迟·成本·隐私负担
端侧: 小模型,低延迟 / 性能受限,需要优化
要实现端侧部署,需要通过轻量化让模型变小。常用的技术包括降低权重精度的量化(quantization)、让小模型模仿大模型的知识蒸馏(distillation),以及去除不必要连接的剪枝(pruning)。Whisper 系列也公开了体积更小的变体,可以根据实际情况在精度与成本之间做出权衡。
局限与注意事项
- 准确性的局限:ASR 在专业术语、专有名词、浓重口音、噪声环境下,错误会增多。用于重要场景时需要人工核查。
- 幻觉与重复:大规模生成模型可能编造出实际不存在的话语,或重复相同的语句。
- 实时性:精度较高的离线模型延迟较大,可能不适合实时场景。
- 伦理与安全:语音复刻存在较大的冒充/诈骗风险,因此需要同意机制与水印之类的安全防护。
- 时效性:这一领域的 SOTA 变化非常快。本文的说明是为了帮助理解概念,具体规格与排名仍需以官方文档为准。
- 低资源语言:在数据稀少的语言上,性能可能大幅下降。
结语
语音技术从 HMM 时代多个部件的组合出发,经过 CTC 与注意力机制的端到端学习,一路发展到 Whisper 的大规模弱监督学习以及编解码器语言模型的零样本复刻,进步令人惊叹。
需要记住的核心要点有三个。第一,语音识别的根本课题是把连续声音对齐到离散文字,CTC 与注意力机制以端到端的方式解决了这个问题。第二,神经编解码器把音频转换为 token,使语音合成得以被重新定义为语言建模问题。第三,能力越强,语音复刻所伴随的伦理责任也就越重。AI 的 SOTA 变化很快,但这些原理与责任意识会长久有效。
参考资料
- Whisper: Robust Speech Recognition via Large-Scale Weak Supervision (arXiv 2212.04356): arxiv.org/abs/2212.04356
- Connectionist Temporal Classification, CTC (ICML 2006 论文页面): dl.acm.org/doi/10.1145/1143844.1143891
- WaveNet: A Generative Model for Raw Audio (arXiv 1609.03499): arxiv.org/abs/1609.03499
- Tacotron 2 (arXiv 1712.05884): arxiv.org/abs/1712.05884
- SoundStream: An End-to-End Neural Audio Codec (arXiv 2107.03312): arxiv.org/abs/2107.03312
- High Fidelity Neural Audio Compression, EnCodec (arXiv 2210.13438): arxiv.org/abs/2210.13438
- Whisper 代码仓库 (GitHub): github.com/openai/whisper
- Hugging Face Audio 文档: huggingface.co/docs/transformers/tasks/asr
현재 단락 (1/200)
语音技术早已深深融入我们的日常生活。手机的语音听写、会议记录的自动生成、导航的语音播报、有声书的朗读,全都是语音识别(ASR, Automatic Speech Recognition)与语音合成(T...