TTS 技术入门:语音合成是怎么工作的
你可能每天都在用语音合成——手机语音助手、导航播报、短视频 AI 配音——但它到底是怎么把文字变成声音的?本文用最少的术语讲清楚 TTS(Text-to-Speech,文本到语音)的核心原理,帮你建立直觉。
一、TTS 要解决的两个问题
把文字变成语音,本质上要回答两个问题:
- 文字怎么读?——同一个字在不同语境下读音不同("银行"的"行" vs "行走"的"行"),还要处理多音字、数字、英文缩写、标点停顿等。这部分叫前端文本分析。
- 读音怎么变成声音?——把"读法"转换成真实的音频波形。这部分叫后端声学建模。
早期的 TTS 系统两部分是分开的,现代端到端模型把它们融合在一起,但理解这两层仍然有用。
二、前端:文本规范化与韵律预测
拿到一段文字后,前端要做的事:
- 文本规范化:把"100"转成"一百","3.14"转成"三点一四",处理日期、货币、缩写。
- 分词与词性标注:判断"银行"是银行还是行走,靠的是分词和上下文。
- 拼音与声调:确定每个字的拼音和声调,中文还要处理变调("一""不"的变调、三连三声变调)。
- 韵律预测:预测哪里停顿、哪里重读、语调升还是降,这决定了听起来自不自然。
三、后端:从声学特征到波形
3.1 拼接式(Concatenative)
最经典的方法:预先录制大量真人语音片段,合成时把合适的片段拼接起来。优点是音质高,缺点是僵硬、不自然,且需要海量录制数据。早期导航、客服系统多用此法。
3.2 参数式(Parametric)
用一个统计模型预测语音的声学参数(频率、频谱等),再用声码器(Vocoder)把参数转成波形。比拼接式灵活,但音色偏"机器味"。
3.3 神经网络式(Neural TTS)
当前主流。用深度学习模型直接学习"文本→语音"的映射,代表方法包括:
- Tacotron 系列:把文本转为梅尔频谱(一种声音的时频表示),再用声码器转波形。
- FastSpeech 系列:把 Tacotron 的自回归生成改为并行,速度大幅提升,且支持控制语速和韵律。
- VITS / 端到端:把声学模型和声码器合为一个模型,直接从文本生成波形,音质和自然度都更好。
3.4 声码器(Vocoder)
声码器负责把声学特征(如梅尔频谱)还原成可听的音频波形。好的声码器决定了音质上限,代表有 WaveNet、HiFi-GAN 等。
四、声音克隆是怎么做到的
普通 TTS 只能用预置音色。声音克隆(Voice Cloning)的关键在于:用一段参考音频提取音色特征,在生成时作为条件注入模型,使输出声音接近参考音色。
常见做法:
- 零样本克隆(Zero-shot):只需几秒到几十秒参考音频,模型即可模仿,如 VALL-E、_xtts。配音魔方用的就是这类技术,因此只需角色的几句样本音频。
- 微调克隆(Fine-tuning):用目标音色的更多数据微调模型,效果更稳定,但需要更多数据和算力。
五、多角色配音的实现
多角色配音本质上是:对剧本中的每一句,指定一个角色音色(即一段参考音频),模型逐句生成后再拼接。难点在于句子之间的衔接自然度和音色切换的平滑度。
小结
TTS 的脉络是:文本分析 → 韵律预测 → 声学建模 → 声码器合成波形,声音克隆则是在声学建模阶段注入参考音色条件。理解了这个链条,你就能看懂大多数 TTS 工具的参数含义,也能更好地调试生成效果。