16. 语音合成怎样训练:从 Mel 频谱到语音 token
前两篇让资料助手听懂了小林的提问。回答也要说出来:团队希望所有播报用同一个声音,读制度条款时不念错字,“请到行政楼办理”里的“行”读 háng 而不是 xíng。语音合成(TTS,Text-to-Speech)和语音识别方向相反,难点也不同:识别是把很多帧压成几个字,合成是从几个字展开成几百帧声音,同一句话可以有无数种合理的读法,模型要选出自然的一种。这一篇先看经典的三段式流水线各段怎样训练,再看用音频编解码器把声音变成 token、交给语言模型生成的新路线,然后讨论给资料助手定制一个声音需要什么数据和授权,最后讲怎样评估合成质量。读完你应该能判断一个 TTS 模型属于哪一代、训练它需要什么样的数据,以及上线一个声音前该检查哪些风险。
两代合成路线
先把两条路线放在一起看。上面是 2017 年前后成型的经典流水线,下面是 2023 年以后兴起的语音 token 加语言模型路线:
两条路线的关键差别在中间表示。经典路线的中间结果是Mel 频谱(上一篇讲过的 80 维左右的时频特征),它是连续的数值,用回归损失训练;新路线的中间结果是离散的 token,可以用“预测下一个”的交叉熵训练,和大语言模型共用同一套方法和规模经验。下面按图从左到右展开。
文本前端:先决定怎么读
模型拿到的文字不能直接读。“2026-03-05”“¥19.9”“OKR”都要先变成能发音的形式,这一步叫文本规范化;“银行”的“行”读 háng,“行走”的“行”读 xíng,要靠上下文判断,这是多音字消歧;在哪里停顿、哪个词重读,是韵律预测。
中文前端通常是规则、词典和小模型的组合。规范化多靠规则;多音字消歧可以当成分类问题训练:输入一句话和多音字的位置,输出读音,训练数据是标注了拼音的句子。前端读错,后面的声学模型再好也只会把错误读得很自然,而且这种错误在评估时最难发现,后文的失败案例会讲到。规范化、多音字和韵律的具体规则见声学专题的语音合成,这里关注它对训练的影响:声学模型的训练数据要用同一个前端处理,否则训练时看到的音素和上线时不一致。
声学模型:从音素到 Mel 频谱
声学模型要解决的问题和语音识别的对齐问题正好对称。按常见的 22.05 kHz 采样、每 256 个采样点一帧的配置,一句 3 秒的话约有:
text
帧数 ≈ 22,050 × 3 ÷ 256 ≈ 258 帧 Mel 频谱
音素数:“请到行政楼办理”约 7 个字、十几个音素十几个音素要展开成两百多帧,每个音素持续多少帧,训练数据里同样没有直接标出。
Tacotron 2(Google,2017)用注意力解决:编码器读音素,解码器一帧一帧地生成 Mel 频谱,每一步用注意力决定“现在在读哪个音素”。论文报告它的自然度评分(MOS,满分 5 分)为 4.53,专业录音为 4.58。它的弱点也来自注意力:对齐是学出来的,没对准时会跳字、重复,长句尤其容易出问题,而且逐帧生成很慢。
FastSpeech 2(浙江大学与微软,2020)换成显式的时长:训练前用对齐工具从录音里提取每个音素的真实时长,再提取音高和能量;训练时模型学着预测这三样,推理时用预测值把音素展开到对应帧数,然后并行生成全部帧。没有注意力对齐,就不会跳字和重复;论文还报告训练速度比前一版 FastSpeech 快 3 倍。代价是多了一步时长提取,提取不准会直接变成节奏错误。
声码器:从 Mel 频谱到波形
Mel 频谱丢掉了相位等细节,不能直接播放。声码器把它还原成每秒两万多个采样点的波形。HiFi-GAN(2020)是这一代最常用的声码器,它用生成对抗训练:生成器把 Mel 频谱变成波形,几个判别器分别从不同的周期和尺度检查波形像不像真人录音,生成器要骗过它们,同时让生成波形的 Mel 频谱和输入一致。论文强调建模语音的周期模式是音质的关键,并报告在单张 V100 上生成 22.05 kHz 音频比实时快 167.9 倍。
声码器通常和声学模型分开训练,训练数据只需要录音本身,不需要文本,所以可以用大量多说话人录音训练一个通用声码器,再给不同声音复用。
VITS:把两段合成一个模型
分开训练有个隐患:声码器训练时看的是从真实录音算出的 Mel 频谱,上线时吃的是声学模型预测的 Mel 频谱,两者有差距,音质会打折。VITS(2021)把声学模型和声码器合成一个端到端模型,结合了变分自编码器、归一化流和对抗训练,并用一个随机时长预测器让同一句话可以有不同的节奏。论文在 LJ Speech 单人数据集上报告,听众打分与真人录音相当。VITS 训练一次就得到从文本到波形的完整模型,在开源社区里常被用来训练单个固定声音。
编解码 token:让声音可以“预测下一个”
大语言模型擅长的是在离散 token 上预测下一个。要把这套方法用到声音上,先得把连续的波形变成离散的 token,这就是神经音频编解码器的作用。SoundStream(Google,2021)和 EnCodec(Meta,2022)都由编码器、量化器、解码器组成,量化器用的是残差向量量化(RVQ):
以 VALL-E 采用的 EnCodec 设定为例:编码器把 24 kHz 波形压缩 320 倍,每秒 75 帧;每帧用 8 个码本依次量化,第一个码本做粗略近似,后面每一层只量化前面剩下的误差。
text
每秒 token 数 = 75 帧 × 8 个码本 = 600 个
每个 token 的信息量 = log2(1024) = 10 bit
码率 = 600 × 10 = 6,000 bit/s = 6 kbps对比文字:一句 3 秒的播报是 1800 个语音 token,而同一句话的文字只有十几个 token。语音 token 序列又长又密,这是语音语言模型比文本模型更吃算力的原因之一。
语言模型做合成:VALL-E 与 CosyVoice
VALL-E(微软,2023)把合成当成语言建模:输入音素序列和一段参考录音的 codec token,输出目标语音的 codec token。它分两步生成:一个自回归模型逐帧生成第 1 层码本的 token,一个非自回归模型再依次补齐第 2—8 层。训练数据是 LibriLight 的约 6 万小时英文、约 7000 名说话人,这些音频本来没有文本,是用识别模型转写出来的,上一篇的识别器在这里成了数据工具。规模带来了新能力:只用一段 3 秒的陌生说话人录音作为提示,就能合成那个人的声音,称为零样本语音克隆。
CosyVoice(阿里巴巴,2024)是中文场景常见的同类路线,结构上做了两点改动。第一,它的语音 token 来自一个多语言语音识别模型:在识别模型的编码器中间插入向量量化层,得到单码本 4096 项的“监督语义 token”。这些 token 是在识别任务上训练出来的,和文字内容对得更紧,论文报告它在内容一致性和说话人相似度上都优于无监督的 codec token。第二,语言模型只负责从文本生成这些语义 token,音色和细节交给一个条件流匹配模型把 token 转成 Mel 频谱,最后仍用 HiFi-GAN 生成波形。训练数据约 17 万小时,其中中文约 13 万小时。
两者都说明,这一代 TTS 的能力主要来自数据规模:几万到十几万小时、成千上万名说话人。这已经接近预训练的量级,绝大多数团队用的是开源或商用的预训练模型,自己只做微调。
给资料助手定制一个声音
团队想要一个固定的、有辨识度的播报声音。数据需求取决于路线:
| 路线 | 数据 | 特点 |
|---|---|---|
| 单人模型从头训练(VITS 等) | 一个人在录音棚录的干净语音,数量级参照 LJ Speech:13,100 条、约 24 小时 | 声音稳定,只会这一个声音,录制成本高 |
| 在预训练多说话人模型上微调 | 这个人的干净录音,比从头训练少得多 | 成本与稳定性折中,最常见 |
| 零样本提示 | 3 到十几秒参考音 | 不用训练,但每次合成的音色、语气可能漂移 |
对“统一播报声音”这个需求,零样本提示适合做原型,正式上线更稳妥的是请配音员录制、在预训练模型上微调。录音要求比识别数据严格得多:同一个房间、同一支麦克风、同一种语气,没有底噪和口水音。识别模型要学的是“各种声音都能听懂”,合成模型会把录音里的一切都学进去,包括空调声。
和第 15 篇一样,微调要防止学过头:轮数过多时,模型对训练稿里出现过的句子读得很好,遇到新句子却开始吐字含混。评估要用训练稿以外的句子,尤其是包含数字、英文缩写和多音字的制度条文。
授权与防冒用
零样本克隆把冒用一个人声音的门槛降到了 3 秒录音。VALL-E 的论文自己就提到,模型可能被用来欺骗声纹验证或冒充特定说话人,并提出要训练检测合成语音的模型。对资料助手,这意味着几条硬约束:
- 声音来源要有授权。和配音员签约时写明用途、范围、期限和撤回方式。中国的《互联网信息服务深度合成管理规定》(2023 年 1 月 10 日施行)第十四条要求,提供人声等生物识别信息编辑功能时,应提示使用者依法告知被编辑的个人并取得其单独同意。不能因为有同事的会议录音,就克隆他的声音。
- 产品不开放任意克隆。只允许使用已登记、有授权记录的声音,用户不能上传一段录音就生成别人的声音。
- 合成内容要可识别。同一规定第十六、十七条要求对生成内容添加标识,对可能导致公众混淆的合成人声作显著标识;《人工智能生成合成内容标识办法》(2025 年 9 月 1 日施行)进一步区分了用户能感知的显式标识和嵌入文件的隐式标识,并鼓励使用数字水印。以上是 2026 年时这两部规定中与语音直接相关的条款,具体义务以现行条文和公司法务的判断为准。
- 水印是怎样起作用的:以 Meta 的 AudioSeal(2024)为例,生成音频时嵌入人耳听不出的信号,检测器可以定位到具体哪一段是合成的,论文报告它能承受常见的音频编辑处理。水印只对主动加了水印的系统有效,不能用来发现别人的合成语音。
评估:自然度、可懂度、像不像、快不快
合成质量没有唯一的标准答案,常用四类指标:
- MOS(平均意见分):请听众按 1—5 分给自然度打分,取平均。它最接近真实感受,但贵、慢,结果依赖听众和测试句子。比较两个模型时要在同一批句子、同一批听众里混排,并放入真人录音作参照;样本少时报告置信区间。
- ASR 回环 CER:把合成音频交给语音识别模型转写,与输入文本比较字错误率。它能便宜地抓出跳字、重复、吞字和读不清的问题,适合每次训练后自动跑。
- 说话人相似度:用说话人识别模型分别提取合成音频和参考录音的声纹向量,计算余弦相似度。VALL-E 的论文就用这种方法衡量零样本克隆像不像。
- 实时因子(RTF):合成耗时除以音频时长。HiFi-GAN 比实时快 167.9 倍,对应 RTF 约 0.006,但这只是声码器在 V100 上的数字;整条链路还要算前端、声学模型或语言模型,语言模型路线逐个生成 token,RTF 往往高得多。流式播报时首块音频的延迟另有讲究,见推理系列的语音与多模态推理。
一个容易漏掉的失败:资料助手把“请到行政楼办理”读成了 xíng 政。跑 ASR 回环,识别模型听到“xíng 政楼”,大概率仍会根据上下文写出“行政楼”,CER 为 0,测试全部通过。多音字读错、重音放错这类问题,文字层面的回环检查不出来。判断方法是给测试集单独准备一批多音字和数字句子,检查前端输出的拼音序列,再安排人工抽听;上线后收集“读错了”的反馈,回到前端词典或多音字模型去修。
经典语音合成分三段:文本前端决定怎么读,声学模型把音素展开成 Mel 频谱(Tacotron 2 靠注意力对齐,FastSpeech 2 靠显式时长),声码器 HiFi-GAN 用对抗训练还原波形,VITS 把后两段合成一个模型。新一代路线先用残差向量量化把声音变成每秒几百个 token,再用语言模型生成:VALL-E 用 3 秒提示做到零样本克隆,CosyVoice 用识别模型得到语义 token、再用流匹配补回音色。给资料助手定制声音,正式上线宜用授权配音员的干净录音在预训练模型上微调,同时落实单独同意、标识和不开放任意克隆。评估组合 MOS、ASR 回环 CER、说话人相似度和实时因子,多音字这类回环查不出的问题要单独测。语音之后,资料助手还要看懂员工上传的报销单截图,下一篇进入视觉模型。
