第 8 章:音频生成与 TTS Benchmark / 评测集
1. 开篇段落
在音频 AI 的世界里,“理解”模型(如 ASR)像是一个参加考试的学生,答案往往是确定的(标准答案就在那里);而“生成”模型(如 TTS、MusicGen)则像是一个艺术家,评价标准充满了主观性和多维性。
随着 VALL-E、SoundStorm、Seed-TTS 等模型的出现,音频生成已经从简单的“读出文本”进化到了“克隆音色、复刻情感、生成环境音”的复杂阶段。传统的单一指标(如 MSE Loss 或 MCD)已经完全失效。
本章学习目标:
- 构建数据观:区分“能用的数据”与“好用的数据”,掌握 LibriTTS、VCTK、AISHELL-3 等核心数据集的清洗与使用配方。
- 掌握评测全景:理解客观指标(WER, SIM, FAD)与主观指标(MOS, MUSHRA, CMOS)的互补关系。
- 落地现代基准:深入解析 seed-tts-eval 等现代评测集是如何定义“鲁棒性”与“表现力”的。
- 避坑指南:识别评测中的常见陷阱,如采样率不匹配、文本归一化错误以及“参考泄露”。
2. 文字论述
2.1 生成任务谱系与评估维度
音频生成不仅仅是 TTS。在设计评测前,必须明确任务类型,因为它们的评估侧重点截然不同:
| 任务类型 | 核心目标 | 关键难点 | 主要评估维度 |
| 任务类型 | 核心目标 | 关键难点 | 主要评估维度 |
|---|---|---|---|
| TTS (文生语音) | 文本可读、自然流畅 | 韵律预测、文本归一化 | 清晰度 (WER)、自然度 (MOS) |
| VC (语音转换) | 保持内容,改变音色 | 源/目标特征解耦、泄漏 | 音色相似度 (SIM)、内容保留度 |
| TTA (文生音频) | 符合文本描述 (音效/音乐) | 文本-音频对齐、多样性 | 文本相关性 (CLAP)、音频质量 (FAD) |
| SVS (歌声合成) | 音准、节奏、情感 | 频域连贯性、颤音细节 | 音准误差 (Pitch RMSE)、节奏准确性 |
为了评估这些模型,我们构建了一个“三支柱”评估体系:
[ 音频生成评估体系 ]
|
+--------------+--------------+
| | |
[ 准确性 ] [ 拟真度 ] [ 相似度 ]
(Intelligibility) (Quality) (Similarity)
| | |
"说对没?" "好听没?" "像不像?"
| | |
ASR 识别 FAD 分布 声纹余弦
CER/WER MOS 打分 距离 (SECS)
2.2 核心训练数据集详解
数据是生成模型的燃料。与 ASR 不同,TTS 对数据的声学质量和韵律完整性要求极高。
2.2.1 英文核心:LibriTTS vs. LibriSpeech
很多初学者直接用 LibriSpeech 训练 TTS,这是错误的。
- LibriSpeech: 针对 ASR 设计。切分逻辑是基于 VAD(有声活动检测),经常会把句子切断,或者包含长段静音。ASR 不在乎这些,但 TTS 学习这种数据会导致生成的语音韵律破碎。
- LibriTTS / LibriTTS-R: 针对 TTS 优化。
- 基于文本分句:保证每个切片是一个完整的句子。
- 高采样率:24kHz(LibriTTS-R 经过了语音增强,音质更好)。
- Rule of Thumb: 只要做英文多说话人 TTS,LibriTTS-R 是目前的 Default Choice。
2.2.2 多口音与少样本:VCTK
- 特点:110 名英语使用者,涵盖苏格兰、印度、爱尔兰等多种口音。在消声室录制,底噪极低。
- 用途:它是测试 Zero-shot Voice Cloning(零样本克隆)和 Accent Control(口音控制)的标准数据集。
2.2.3 中文核心:AISHELL-3 & Opencpop
- AISHELL-3: 开源的高质量多说话人中文 TTS 数据集。包含 218 人,大约 85 小时。虽然时长不如商业库,但它是验证中文多说话人模型的基准。
- Opencpop: 专门的中文流行歌曲数据集(SVS任务)。包含精细的 MIDI、音素时长标注。
2.2.4 通用音频/音效:AudioCaps & Clotho
- 用于训练 Text-to-Audio (TTA) 模型(如 AudioLDM)。
- AudioCaps: 来自 AudioSet 的子集,带有人工撰写的描述(Caption)。
- Clotho: 专门收集的音频,每条音频有 5 个不同的文字描述,适合训练文本与音频的对齐能力。
2.3 客观评测指标 (Objective Metrics)
客观指标虽然不能完全代表听感,但对于快速迭代和模型筛选至关重要。
(1) 清晰度指标:WER / CER
- 逻辑:TTS 生成音频 -> ASR 转写 -> 计算与原文本的编辑距离。
- WER (Word Error Rate):用于英文。
- CER (Character Error Rate):用于中文。
- 陷阱:ASR 模型的选择至关重要。现在通用的做法是使用 Whisper (Large-v2/v3) 作为“判官”。如果 WER > 10% (英文),通常说明模型不可用。
(2) 相似度指标:SECS (Speaker Encoder Cosine Similarity)
- 用途:评估声音像不像目标说话人(Voice Cloning 任务)。
- 工具:通常使用预训练的说话人识别模型(如 ResNet-34, ECAPA-TDNN, WavLM-SV)。
- 计算:
其中 是声纹向量。
- 阈值参考:通常 > 0.75 或 > 0.8 被认为相似度较高(取决于具体的声纹模型)。
(3) 整体质量与分布:FAD (Fréchet Audio Distance)
- 背景:借鉴自图像的 FID。它计算生成数据分布与真实数据分布在特征空间(通常是 VGGish 或 CLAP)的高斯距离。
- 优势:FAD 不需要参考音频(Reference-free),它可以衡量整体的真实感和信噪比。
- 解释:FAD 越低越好。FAD 突然升高通常意味着模型出现了“失真”或“人工合成痕迹(Artifacts)”。
2.4 主观评测 (Subjective Metrics)
这是生成任务的“金标准”。没有主观评测的 TTS 论文是不完整的。
- MOS (Mean Opinion Score):
- 绝对打分(1-5分)。
- 通常需要至少 15-20 名听测者(Raters)。
-
细分:MOS-Naturalness (自然度) 和 MOS-Similarity (相似度)。
-
MUSHRA (Multiple Stimuli with Hidden Reference and Anchor):
-
高阶评测:给听测者一组音频,包括: 1. Reference (原录音,作为上限)。 2. Anchor (低通滤波后的劣质录音,作为下限)。 3. 待测系统 A, B, C...
-
优势:当系统差距很小时(例如 Codec 比较),MUSHRA 比 MOS 更能分辨细微差异。
-
CMOS (Comparative MOS):
- 直接对比 A 和 B,打分范围 -3 到 +3。
- 适用于模型迭代:新模型 (B) 比 旧模型 (A) 好多少?
2.5 现代 Benchmark 案例:seed-tts-eval
传统的评测往往只看短句。seed-tts-eval 代表了“大模型时代”的评测思路,它关注In-context Learning 和 Hard Cases。
该评测集包含两个子集:
-
Objective Evaluation Set (客观集): * 包含 2000+ 测试样本。 * 涵盖不同的长度、情感、语速。 * 使用 WER, SIM-O, FAD 自动化打分。
-
Subjective Evaluation Set (主观集): * Hardcase: 包含生僻词、绕口令、中英混合。 * Emotion: 包含需要极强表现力的文本(如愤怒、哭泣)。 * Context: 上下文一致性测试(Cross-sentence consistency),检测模型是否会在长文本生成中“变声”或“掉情感”。
3. 本章小结
- 数据工程第一位:训练 TTS 请认准 LibriTTS-R (英) 和 AISHELL-3 (中)。对于微调,数据质量(干净程度)远比数量重要。
-
指标的互补性: * WER 保证“能听懂”。 * SIM/SECS 保证“是这个人”。 * FAD 保证“像真录音”。 * MOS 保证“人耳喜欢”。
-
基准对齐:在报告结果时,必须说明使用的 ASR 模型版本(如
whisper-large-v3)和声纹提取器版本(如wespeaker-resnet34),否则分数没有可比性。 - 关注长尾:现代 TTS 的决胜点不在于普通句子读得有多好,而在于 Hardcase(生僻词、长难句)是否崩溃,以及 Zero-shot 克隆是否稳定。
4. 练习题
基础题 (50%)
Q1: 为什么计算 FAD (Fréchet Audio Distance) 时,需要大量的生成样本(例如几千条),而不能只用几条?
Hint: FAD 衡量的是“单点距离”还是“分布距离”?高斯分布的参数估计需要多少数据? Answer: FAD 衡量的是两个多元高斯分布(生成分布 vs 真实分布)之间的距离。
- 统计显著性:为了准确估计高斯分布的均值向量 和协方差矩阵 ,需要足够的样本量。样本太少会导致协方差矩阵估计不准确,计算出的 FAD 波动巨大,没有参考价值。
- Rule of Thumb:通常建议至少使用 1,000 条,甚至 10,000 条音频片段来计算 FAD。
Q2: 在 TTS 评测中,Ground Truth (真实录音) 的 WER 一定是 0% 吗?如果不是,说明了什么?
Hint: 人说话完全清楚吗?ASR 模型是完美的吗? Answer: 不一定,甚至绝大多数情况下不是 0%。
- ASR 误差:ASR 模型本身有误识率。
- 录音质量:真实录音可能包含口误、吞音或背景噪声。
- 基准线意义:Ground Truth 的 WER 是该测试集在当前 ASR 下的“理论上限(Upper Bound)”。如果你的 TTS 模型的 WER 低于 Ground Truth 的 WER,说明你的 TTS 发音比真人还“标准”(虽然不一定自然)。
Q3: 什么是“参考泄露”(Reference Leakage)?在 Voice Cloning 评测中如何避免?
Hint: 考试的时候能不能把教材带进去? Answer: 定义:训练集中包含了测试集的目标说话人,或者更糟糕,包含了测试集的具体文本内容。 避免方法:
- 说话人隔离 (Speaker Hold-out):确保测试集的说话人(Unseen Speakers)从未出现在训练集中。这是评估 Zero-shot 能力的关键。
- 文本隔离:确保测试的文本句子没有在训练中出现过(避免模型只是背诵了音频)。
挑战题 (50%)
Q4: 你正在训练一个基于 Diffusion 的 TTS 模型,发现 WER 很低(内容正确),SECS 很高(音色像),但是 MOS 很低,听感充满“金属音”或“电流声”。FAD 会如何表现?为什么?
Hint: WER 关注内容,SECS 关注声纹,谁关注音质?FAD 能看到 spectrogram 的细节吗? Answer: FAD 应该会很高(变差)。
- 原因:FAD 基于 VGGish 或 CLAP 等特征提取器,这些特征对底噪、伪影(Artifacts)和频域分布非常敏感。金属音或电流声属于严重的分布偏离(Out-of-distribution),会导致生成数据的协方差矩阵与真实数据的差异变大。
- 结论:这正是 FAD 存在的意义——捕捉 WER 和 SECS 捕捉不到的声学质量问题。
Q5: 在 seed-tts-eval 中,为什么要专门设置“跨句一致性”(Cross-sentence consistency)的评测?针对的是什么模型架构的弱点?
Hint: Autoregressive (自回归) 模型在生成长序列时容易发生什么?累积误差? Answer: 针对弱点:Autoregressive (AR) 模型(如 VALL-E, Tortoise)和部分 Diffusion 模型。 原因:
- 漂移问题 (Drifting):AR 模型在生成长文本时,随着序列变长,容易忘记最初设定的 Speaker Prompt(提示音),导致后面句子的音色发生变化(比如从男声变女声,或情绪丢失)。
- 稳定性:短句生成容易,长篇朗读(Audiobook)难。该评测旨在考察模型在长上下文窗口下的注意力保持能力。
Q6: 设计一个针对“语音编辑”(Speech Editing / Inpainting)任务的评测方案。给定一段音频,修改中间的一个词。你需要关注哪些特殊的指标?
Hint: 修改后的部分和未修改的部分需要融合吗?边界怎么处理? Answer: 语音编辑比从头生成更难,重点在于融合(Fusing)。
- 边界平滑度 (Boundary Smoothness):在编辑点(拼接处)是否存在爆音(Click)或相位不连续?这通常需要人工听测或特定的信号处理指标检测。
- 背景环境一致性:如果原音频有背景噪音,生成的词必须带有同样的背景噪音,否则会显得非常突兀。指标:局部 FAD 或频谱差异。
- 韵律连贯性:修改后的词的音高、时长是否与前后文(Context)匹配?
Q7: 为什么在对比不同 TTS 模型时,单纯比较 MOS 分数(比如论文 A 说 MOS 4.2,论文 B 说 MOS 4.3)是毫无意义的?
Hint: 不同的试卷,不同的阅卷老师,分数能比吗? Answer:
- 测试集不同:测试的文本难度、长度不同。
- 评测人员不同:MOS 是主观打分,不同的人群(Native vs Non-native,专家 vs 众包)打分标准差异巨大。
- Reference/Anchor 不同:如果没有统一的 Anchor(锚点)作为参照,打分尺度的松紧度不同。 正确做法:必须在同一实验设置、同一批听测员、同一测试集下进行的 Side-by-side 比较(如复现竞品模型,一起跑 MUSHRA)才有效。
5. 常见陷阱与错误 (Gotchas)
5.1 ASR 模型幻觉 (ASR Hallucination)
- 现象:TTS 生成了一段完全静音或噪音,但 Whisper ASR 却“脑补”出了正确的文本(因为 Whisper 是强语言模型,会根据上下文猜测)。
- 后果:WER 看起来很低,实际生成完全失败。
- 调试技巧:在计算 WER 前,先检查音频的 VAD (Voice Activity Detection) 比例。如果音频长度正常但 VAD 占比极低,直接判错。或者结合 CLAP Score 辅助判断。
5.2 文本归一化的不一致 (Text Normalization Mismatch)
- 场景:
- Ground Truth: "I have $20."
- TTS Generated: "I have twenty dollars."
-
ASR Transcribed: "I have twenty dollars."
-
错误:直接计算字符串距离,"$20" 和 "twenty dollars" 差异巨大,导致 WER 飙升。
- Rule of Thumb:评测 pipeline 中必须包含一个强力的 Inverse Text Normalization (ITN) 模块,或者将所有数字、符号在推理前全部转写为英文单词(Verbalization),统一在“纯单词”层面比较。
5.3 采样率混淆 (Sample Rate Confusion)
- 现象:用 16kHz 的声纹模型(如常用的
ResNet34-v2)去评测 24kHz 的音频,或者反之。 - 后果:直接重采样可能会引入 Aliasing,导致 SIM 分数下降 0.1-0.2,严重误导实验结论。
- 建议:
- Always 检查预训练评测模型的输入要求。
- 使用
torchaudio.transforms.Resample(orig_freq, new_freq, resampling_method='sinc_interp_hann')进行高质量重采样,不要用简单的线性插值。
5.4 长度惩罚缺失
- 现象:TTS 模型只是简单地重复“Hello Hello Hello”,声纹相似度极高,音质也很好(FAD低),但内容完全错了。
- 建议:在看 SIM 和 FAD 之前,先卡一道 Duration Filtering。生成的音频时长如果不应该偏离参考音频时长的 。
6. 下一步
评估只是手段,优化才是目的。