很多开源 TTS 有一股挥之不去的「播音腔」:字正腔圆,节奏均匀,情绪永远克制,像新闻联播,不像人说话。这不是模型不努力,而是它见过的世界就长那样——主流训练数据 LibriTTS、MLS、Libri-Light 全部来自有声书朗读。真人聊天时的呼吸、停顿、重复、说一半改口、越说越快、笑着说话,模型一概没见过,自然学不会。
要治这个病,光调模型没用,得换数据;而换数据之前,还有一个更基础的问题:想复现最新的语音生成论文,代码都凑不齐。
2023 到 2024 年,香港中文大学(深圳)Zhizheng Wu 团队联合上海 AI Lab、深圳市大数据研究院、中科院声学所等机构,用两篇 SLT 2024 论文把这两道坎各拆了一道:
- Amphion(arXiv:2312.09911,GitHub):一个统一的音频、音乐、语音生成工具箱,管「代码复现难」;
- Emilia(arXiv:2407.05361,GitHub):10 万小时级的野生语音数据集,连同把野生音频洗成训练数据的全开源流水线 Emilia-Pipe,管「数据不像人」。
一个是工具箱,一个是粮仓。这篇把它们连起来读——先看工具箱怎么搭,再看粮仓怎么建,最后看这套地基两年后长出了什么。
一、散装的代价:Amphion 为什么要当工具箱
Amphion 论文开篇描述的困境,做过语音复现的人都会心一笑。生成模型大爆发之后,官方的、民间的开源仓库确实不少,但有两个通病:
其一,同一个算法有七八种实现,配置各不相同,跑出来的结果对不上,论文之间没法公平比较;其二,大多数仓库只关心模型架构本身,数据预处理、特征提取、训练细节、系统性评测这些「脏活」往往缺失。对老手来说这是麻烦,对刚进领域、没训过大模型的新人来说,这几乎是劝退——论文里那句加粗的总结很直接:仓库的散装状态,阻碍的是可复现研究与公平比较本身。
Amphion 的定位因此不是「又一个模型」,而是一站式平台。它的北极星目标叫 Any to Audio:任何形态的输入进来,音频出去。听着很大,但论文给了一个干净的收纳方式——按输入形态,所有音频生成任务分三类:
- 文本 → 波形:输入是离散的文字 token,逐字约束输出内容。代表任务是 TTS(语音合成)和 SVS(歌声合成,乐谱音符也是一种离散「文本」);
- 描述文本 → 波形:文字不再逐字对应,只引导内容与风格,比如「雨点打在铁皮屋顶上」。代表任务是 TTA(文本生音效)和 TTM(文本生音乐);
- 波形 → 波形:输入输出都是连续波形。变声(VC)、歌声转换(SVC)、口音转换(AC)、情感转换(EC)都在这类。
分类不是为了好看:同一类任务的数据接口、评测协议高度相似,归了类才能复用。
顺带一提,README 特意标注了读音 /æmˈfaɪən/——希腊神话里的安菲翁(Amphion)弹着里拉琴,石头听了琴声自己垒成底比斯城墙。用音乐盖房子,很配这个项目的野心。
二、四层积木:Amphion 的骨架
Amphion 的系统设计可以概括成一句话:把「所有任务都要做的事」下沉,把「每个模型独有的事」上浮。自底向上四层:
- 共享底座:数据处理(Dataset、特征提取、Sampler、DataLoader)、优化组件(Optimizer、Scheduler、Trainer)和通用网络模块,所有任务共用;
- 任务层:每类任务把自己的数据接口、任务框架、训练管线统一规定一次(TaskLoader、TaskFramework、TaskTrainer);
- 模型层:每个具体模型只需要声明自己的架构和训练差异(ModelArchitecture、ModelTrainer),其余全部继承;
- 交付层:每个模型配一份端到端可跑通的 recipe、预训练权重和在线 demo。
这套结构的直接收益是覆盖面。v0.1(2023 年 12 月发布)一次性铺开了四个战场:TTS 按四种建模范式各选了代表——Transformer 系的 FastSpeech2、流模型系的 VITS、扩散系的 NaturalSpeech2、自回归系的 VALL-E(离散与连续两条路线之争,旧文展开过);SVC 四种;TTA 两种;声码器从 WaveNet 一路排到 BigVGAN,共九种生成器、五种判别器,外加 NaturalSpeech3 的 FACodec 编解码器(语音 codec 这条线,这篇有系统梳理)。评测同样打包:F0 建模、频谱失真、可懂度(WER/CER)、说话人相似度四类指标开箱即用。
交付层还有一个别家少见的东西:模型可视化。第一个作品 SingVisio 把歌声转换里扩散模型的逐步去噪过程做成了交互式网页(后来发表在 Computers & Graphics)。这透露了 Amphion 的另一重身份——它明确把「帮新人建立直觉」当成目标,而不只是服务老手。
三、立信之作:把 VALL-E 复现到官方水平
工具箱好不好,口说无凭,得拿复现结果立信。v0.1 论文做了四组实验,最有说服力的是 VALL-E。
2023 年的 VALL-E 是 zero-shot TTS 的引爆点——听 3 秒参考音频就能克隆音色——但微软始终没有开源官方实现(论文表格里它的身份是 proprietary,专有系统)。民间复现众多,指标大多够不着官方数字。Amphion 用 4.5 万小时的 MLS 数据训了一个 2.5 亿参数的 VALL-E,在 LibriSpeech test-clean 上做续写评测(给 3 秒真实前缀,让模型接着说完):
| 系统 | 训练数据 | SIM-O ↑ | WER ↓ |
|---|---|---|---|
| 官方 VALL-E(未开源) | Libri-Light 60k 小时 | 0.51 | 3.8% |
| Amphion VALL-E | MLS 45k 小时 | 0.51 | 3.4% |
说话人相似度追平,词错率反而更低——用少四分之一的数据摸到了官方论文的指标。有一处细节论文说得很诚实:Amphion 的训练片段是 10–20 秒,所以测试也取 test-clean 的 10–20 秒子集,与官方的 4–10 秒区间不完全对齐,属于「各自匹配训练分布」的对比。
另外三组实验同样是「不惊艳但扎实」的路数:同一 AudioLDM 架构,Amphion 复现的文本生音效比官方仓库指标更好(FD 从 27.12 降到 20.47);歌声转换在 SVCC 2023 数据上明显超过 SoftVC;HiFi-GAN 声码器在自家时频判别器加持下,频谱重建质量超过官方检查点。对一个工具包来说,这些数字就是信用背书:在这里跑出来的结果,可以放心跟论文对齐。
四、工具有了,粮呢:有声书的天花板
v0.1 论文结尾埋了一句伏笔:未来计划发布大规模数据集。半年后,Emilia 来了。
回到开头那个「播音腔」问题。学术界当然知道有声书数据的局限,也知道解药在互联网——视频平台和播客上有取之不尽的真实口语:脱口秀、访谈、辩论、体育解说,什么风格都有。但野生音频直接拿来训练是灾难,三大障碍明摆着:
- 有背景音乐和噪声——播客几乎必配 BGM;
- 多人对话、随时插话重叠——而语音合成训练要求一条样本干干净净只有一个人;
- 没有文本标注——TTS 训练必须有转写。
外加长度动辄几个小时,没法直接喂给模型。此前不是没人洗过野生数据:AutoPrep 洗出过 39 小时中文,WenetSpeech4TTS 洗出过 1.2 万小时中文——但两者的流水线都不开源,依赖专有模型,处理速度也没有公开数字。别人没法接着做,规模和语言也就停在那里。
Emilia 的回答分两半:一条全开源的清洗流水线 Emilia-Pipe,和用它洗出来的 101,654 小时、六种语言的数据集。重点在前一半——数据集会过时,流水线不会。
五、六道工序:Emilia-Pipe 把野生音频洗成训练粮
六步各自解决一个具体麻烦,值得逐个看:
⓪ 标准化:野生音频编码格式、采样率五花八门,先统一成 WAV、单声道、24 kHz、16-bit;响度对齐到 −20 dBFS(增益限制在 ±3 dB 以内防止失真),波形按最大幅值归一化。枯燥,但没有这步后面全乱。
① 源分离:用 Ultimate Vocal Remover 生态的 UVR-MDX-Net Inst 3 模型(Synth MVSep 基准上信噪失真比 11.15)把人声从背景音乐里抠出来。这一步专治播客的 BGM。
② 说话人分离:pyannote/speaker-diarization-3.1 三段式(切分、说话人嵌入、聚类)把长音频切成带说话人标签的片段,保证每条只有一个人——语音生成数据集的硬要求。
③ VAD 细切:上一步的片段仍可能太长,用 Silero-VAD(LibriParty 上 ROC-AUC 0.99)检测语音活动,把同一说话人的连续活动块拼接成 3–30 秒——训练喂得进模型的长度。
④ ASR 转写:语音识别选了 Whisper-medium——速度、鲁棒性、准确率的折中档。工程上很讲究:用 faster-whisper(CTranslate2 后端)替代官方实现,最多快 4 倍还省显存;Whisper 自带的 VAD 直接跳过(复用上一步结果,不做重复劳动);团队还自己给 faster-whisper 写了批量推理。Whisper 附带的语种识别结果也留着,下一步有用。
⑤ 过滤:三道闸——语种必须落在六种目标语言内且置信度不低于 80%;DNSMOS P.835 综合音质分必须高于 3.0;每条源音频统计平均字符时长,偏离四分位距 1.5 倍的整条丢弃——最后这条专抓 ASR 幻觉和语速异常的片段。
产出长这样——每条源音频得到若干 MP3 片段和一份 JSON 标注:
[
{
"text": "So, don't worry about that. But, like for instance...",
"start": 67.18,
"end": 74.41,
"language": "en",
"dnsmos": 3.44
}
]
注意一个设计取向:整条流水线没有任何专有组件,源分离、说话人分离、VAD、ASR、质量打分全部用现成开源模型,Emilia 团队做的是选型、串联和工程加速。这正是它和 AutoPrep、WenetSpeech4TTS 的分水岭——别人可以在任何地方原样跑起来,规模和语言不再由发布方封顶。
六、账本:600 小时进去,176 小时出来
流水线跑得快不快、洗得干不干净,论文拿 600 小时真实野生音频做了一次公开记账:
三个数字值得咀嚼:
- 产出率 29.43%。野生音频七成是洗不出来的——BGM 抠不干净的、多人重叠的、质量太差的、转写不可靠的,全扔。数据规模宣传里「爬了多少小时」和「能用多少小时」是两码事,这个折损率是很有参考价值的行业底数;
- DNSMOS 从 2.50±0.62 到 3.26±0.14。均值提升不小,但更关键的是方差从 0.62 收窄到 0.14——质量参差的原料变成了品控稳定的成品,训练时不会被垃圾样本拖后腿;
- 每分钟 2.5 小时。8 张消费级 RTX 4090,一小时野生音频几分钟洗完。这个吞吐意味着十万小时不是极限而是起点,数据集可以随算力线性扩张。
洗完的质量什么水平?论文用 DNSMOS 横向比了十个数据集:Emilia 3.26,总排名第三,只低于录音棚级的 MLS(3.33)和 LJSpeech(3.30),超过所有同为野生来源的数据集(GigaSpeech 只有 2.52)。用脏原料做出了接近棚录的品相,流水线的成色就在这。
七、粮仓盘点:101k 小时长什么样
初版 Emilia 共 101,654 小时、24 kHz 采样率(高于 MLS 和 Libri-Light 的 16 kHz,采样率直接决定音质上限),覆盖英、中、德、法、日、韩六种语言——中英两家合计约 95%,小语种是聊胜于无的量级。内容来自各视频平台与播客:脱口秀、访谈、辩论、体育解说,也混有有声书。
除了大,论文还专门论证了「散」。各取 5,000 条样本,分别用 WavLM 抽声学特征、Sentence-BERT 抽转写文本的语义特征,PCA 降到二维画散点:Emilia 的点云铺得开,MLS 的点云抱成一团。朗读数据的单一性——音色再多,风格与题材始终是「念书」——在图上肉眼可见。这两张散点图是对「为什么非要野生数据」最直观的回答。
还有一个容易被忽略的属性:官方把 Emilia 标为 dynamic(动态数据集)。因为流水线开源、原始音频以 URL 列表形式提供,任何人都可以重建它、按自己的需求扩展它。数据集不再是一次性发布的静态快照。(授权上要留意:Emilia 本体是 CC BY-NC 4.0,仅限非商用,音频版权仍归原作者。)
八、换粮之后:模型真的更像人了吗
数据集论文最怕自说自话,Emilia 的验证实验设计得相当讲究,几乎是控制变量法的教科书示范:
- 数据对照:Emilia 英语子集(46k 小时)对 MLS 英语(44.5k 小时),规模相当,只差风格;
- 模型对照:SoundStorm(先自回归生成语义 token、再并行解码声学 token)和 VoiceBox(非自回归流匹配),覆盖两大建模流派;
- 考场对照:LibriSpeech-Test 考朗读风格,Emilia-Test(600 条真实自发口语)考「像不像人」。
结果的分野干净利落。朗读考场上两边打平,甚至 MLS 训的 VoiceBox 还略占优——考念书,有声书科班出身当然不虚。但换到自发口语考场:
| 模型 | 训练数据 | WER ↓ | SIM-O ↑ | FSD ↓ |
|---|---|---|---|---|
| SoundStorm | MLS | 7.7% | 0.587 | 20.76 |
| SoundStorm | Emilia | 6.6% | 0.618 | 12.73 |
| VoiceBox | MLS | 8.2% | 0.528 | 15.94 |
| VoiceBox | Emilia | 7.4% | 0.601 | 14.07 |
Emilia 训的模型全面占优,SoundStorm 的 FSD(衡量生成语音与真实语音分布距离,越低越自然)直降四成。论文还观察到一个耐人寻味的现象:自回归的 SoundStorm 从风格多样的数据里获益明显大于非自回归的 VoiceBox——作者推测,逐 token 生成的模型更能吃下「说话方式」的多样性红利。
多语言实验则用全量 101k 小时训练,六种语言的 zero-shot TTS 都能跑通:SoundStorm 的词错率从日语 3.6%、中文 4.1% 到韩语 10.9% 不等。只有几百到一两千小时的小语种也能工作,但 FSD 明显高于英语——粮仓里什么粮多、什么粮少,模型表现忠实反映。
九、飞轮转起来:这套基建喂出了什么
单看 2024 年的这两篇论文,指标都谈不上惊艳。它们真正的分量要在时间线上看:
- 2024 年 10 月,MaskGCT:全非自回归 zero-shot TTS,不需要显式的文本-语音对齐监督,在 Emilia 上训练,官方称达到 SOTA 水平的 zero-shot TTS 性能;
- 2024 年 12 月,Vevo:音色与风格解耦可控的 zero-shot 语音模仿框架,同样用 Emilia 训练,官方称 zero-shot 变声达到 SOTA。两个模型双双被 ICLR 2025 接收;
- 2025 年 2 月,Emilia-Large:追加 114k 小时的 Emilia-YODAS 子集,总量 216k 小时;YODAS 部分采用 CC BY 4.0 许可——这次可以商用了。同期还有统一语音生成底座 Metis(一个模型覆盖 TTS、变声、目标说话人提取、语音增强、唇语生成);
- 2025 到 2026 年:12.5 Hz 低帧率语义编解码器 DualCodec(与 MOSS-Audio-Tokenizer 的低帧率思路殊途同归)、语音歌声统一的 Vevo1.5 与 Vevo2 陆续发布;v0.2 技术报告(arXiv:2501.15442)总结了整个 2024 年的演进。
注意这个闭环:工具箱统一了训练评测 → 流水线产出大规模数据 → 数据喂出 SOTA 模型 → 模型和顶会背书吸引更多人用工具箱、扩充数据集。2023 年 v0.1 论文承诺的「发布大规模数据集、推动可复现研究」,两年后逐字兑现。基建的复利,大抵如此。
十、上手指南与避坑清单
如果只是想用数据:HuggingFace 直接拉取,注意 Emilia 本体(CC BY-NC 4.0)与 Emilia-YODAS(CC BY 4.0)授权不同,商用只能碰后者。Amphion 代码本身则是 MIT 许可,研究、商用皆可。
如果想洗自己的数据,Emilia-Pipe 的部署是典型的「三步走」:
conda create -y -n AudioPipeline python=3.9
conda activate AudioPipeline
bash env.sh
# 手动下载 UVR-MDX-NET-Inst_HQ_3 与 DNSMOS 的 onnx 权重,
# 申请 pyannote 的 HuggingFace token,一并填进 config.json
python main.py
config.json 里能改的东西不少:目标语言列表、采样率、各模型路径。处理结果落在输入目录旁的 _processed 文件夹。
官方 README 的 TODO 列表同时也是一份诚实的「已知坑」清单,动手前值得读一遍:超过 4 GB 的单个 WAV 暂不支持;源分离对混响场景效果欠佳;说话人分离后的片段内偶尔仍残留多个说话人;ASR 的标点不够准;以及——数据集目前没有情感、说话风格、笑声咳嗽等副语言标注,如果你的应用需要这些(比如训练会笑的对话模型),得自己补标。
最后回到标题。Amphion 开源的不是某个模型,而是「造模型的车间」;Emilia 开源的不是一批数据,而是「造数据的流水线」。授人以鱼不如授人以渔——这两篇论文单独看都不算耀眼,合在一起,是开源语音生成从 2024 年起这波爆发实实在在的地基。
参考资料
- Amphion 论文:Amphion: An Open-Source Audio, Music, and Speech Generation Toolkit(SLT 2024)
- Emilia 论文:Emilia: An Extensive, Multilingual, and Diverse Speech Dataset for Large-Scale Speech Generation(SLT 2024);扩展版(2025 年 1 月)
- 代码仓库:open-mmlab/Amphion;Emilia-Pipe 与数据集说明
- 数据集:amphion/Emilia-Dataset @ HuggingFace;试听 demo 页
- Amphion v0.2 技术报告:Overview of the Amphion Toolkit (v0.2)