同一句「救救我」,从一个玩闹的小孩嘴里说出来,可能只是「帮我够一下玩具」;从一位摔倒的老人嘴里说出来,就是真正的求助。字一模一样,声音里的信息完全不同。
今天的 TTS(文字转语音)在「把字念对」这件事上已经非常强:错字率极低、听感自然、克隆音色以假乱真。但语音里还有另一半信息——音色、情绪、韵律的起伏,学界叫副语言信息(paralinguistic information)。安慰人的话用一副冷冰冰的机器腔念出来,内容再对,体验也是崩的。
所以最近一两年,风格控制成了 TTS 的新战场。老办法是塞固定标签(比如 <happy>)或者给一段参考音频;新潮流是直接用自然语言下指令——商业产品里 Hume、ElevenLabs、GPT-4o-mini-tts、Gemini 都支持你打一段风格描述,开源侧也有 CosyVoice 2、Parler-TTS、VoxInstruct 这些。
问题是:宣称支持指令,和真的听懂指令,是两回事。而这件事此前居然没有像样的尺子——常用的客观指标 WER(念对没有)和说话人相似度(像不像同一个人)量不到「按指令演了没有」;主观 MOS 打分又贵又标准飘忽。复旦大学 OpenMOSS 团队的 InstructTTSEval(2025 年 6 月)补的就是这个空:6000 道题、自动判卷,专测 TTS 的「演技」。
这篇把它拆开讲:题怎么设计、卷子怎么出、谁来判、谁考得好,以及最有趣的——考场花絮。
一、三道考题:从「照参数拧旋钮」到「自己揣摩角色」
想象你是导演,要让演员念同一句台词,你有三种给戏的方式:把每个细节写死在分镜表里;用一段话描述你要的感觉;或者只给人设和场景,让演员自己揣摩。InstructTTSEval 的三个任务正是这三档,难度从「精确执行」递进到「自由发挥」:
- APS(Acoustic-Parameter Specification,声学参数逐项指定):题面是一张结构化清单,把 12 项声学特征逐条写明——音高怎么走、语速多快、情绪如何升级。考的是低层控制力:每个旋钮,模型是不是真的拧得动。
- DSD(Descriptive-Style Directive,风格描述指令):把 APS 的清单交给 LLM 改写成一段自然流畅的描述,并且随机抹掉几项。没提到的属性视为不设限,模型得自己补出合理的值。考的是从非结构化输入里领会意图的泛化能力。
- RP(Role-Play,角色扮演):题面里压根不提声学特征,只给角色或场景——「老师在训学生」「面试里紧张的求职者」「在电话里向急救人员描述事故」。模型得靠世界知识把社会情境翻译成具体的声音:语速、音量、语调、断句。这也最接近普通用户的真实提问方式——没人会写「基频上扬 20%」,人只会说「像哄小孩睡觉那样念」。
三道题共用同一批「参考答案」(真人原声,下一节讲),层层递进,正好覆盖「低层可控性」到「高层风格泛化」的完整光谱。
那 12 项特征也不是拍脑袋定的,论文把它们分成四层,从生理到心理:
对比此前的风格描述数据集,能看出这张考卷新在哪:
| 数据集 | 特征数 | 亮点 | 标注 | 层级化 |
|---|---|---|---|---|
| TextrolSpeech | 5 | - | 固定标签 | ✕ |
| PromptSpeech | 5 | - | 固定标签 | ✕ |
| SpeechCraft | 8 | 重音 | 固定标签 | ✕ |
| ParaSpeechCraft | 11 | 声音事件 | 固定标签 | ✕ |
| InstructTTSEval | 12 | 重音、声音事件、动态变化 | 自由文本 | ✓ |
前人基本是「从有限标签集里挑词、再让 LLM 串成句子」,而这里是逐条音频写自由文本,还刻意纳入了动态变化——真人说话的风格不是静态的:说到八卦时会压低成耳语,情绪上头时会越说越响直到喊出来。这些时间维度上的转变在以往的风格描述里几乎被忽略,但恰恰是「像不像人」的关键。
二、考卷怎么出:从真实的「戏」反推题目
出题有个隐蔽的坑:如果凭空让 LLM 写风格指令,很容易写出现实里不存在、或者内部互相矛盾的组合(「气若游丝地怒吼」)。InstructTTSEval 反过来做——先找到真实的、表现力拉满的人声,再让模型描述它。这样每道题天然自洽,而且自带一份参考答案:那段真人原声。
备料。素材来自最有戏的地方:电影、电视剧、综艺(开源的 NCSSD 数据集加自采音频)。自采部分先做说话人分离,切成 30 秒内的单人片段,再用 whisper-large-v3 转写、恢复标点,攒出约 6000 小时带转写的语音。
过滤。接着层层筛:DNSMOS 音质打分至少 2.8;用微调过的 WhisperD 只留单说话人片段;时长要超过 3 秒、英文超 10 词/中文超 10 字。最关键的一道筛子是表现力:用情感三维模型(支配 Dominance、唤醒 Arousal、效价 Valence)打分,只留支配度和唤醒度都超过 0.8 的片段——也就是那些说话带劲、情绪饱满的「戏」。有意思的是效价(正面还是负面)被刻意丢掉了:题库要同时覆盖狂喜和暴怒,不能偏向任何一极。最后得到 2000 段参考音频,中英各 1000 段,每段平均约 10 秒。
出题。让 Gemini 2.5 Pro 当「场记」,逐段听音频,写下详尽的声学描述——提示词里特别要求捕捉动态变化。这份描述直接就是 APS 的题面;再让 GPT-4o 把它改写成一段自然的话并随机删掉几项,得到 DSD;最后让 GPT-4o 用思维链从 12 项特征反推「这像是什么人在什么场景下说的」,得到 RP。三个任务 × 两种语言 × 1000 段 = 6000 道题。
三、谁来判卷:先考裁判,再考考生
判卷用的是 LLM-as-a-judge:Gemini 听被测系统合成的音频、对照指令,给二元判定——主要风格属性全部对上且无冲突记 true,任何一项关键属性明显冲突记 false。1000 题的正确率就是得分。
裁判自己得先通过资格考。团队请了三位人工标注员(托福 100 分以上的研究生,时薪 50 元),在每种语言、每个任务各 50 个样本上和 Gemini 对答案——其中一半样本还被故意配错了指令,专考裁判能不能识破「答非所问」。结果人机一致率平均 79%:APS 最高(87%),DSD 居中(79%),RP 最低(71%)。规律很直白:题越主观,人和机器(其实人和人之间也一样)越难达成一致。
自动判卷最实在的回报是便宜:把三个任务全判一遍,英文子集约 12.8 美元,中文约 11.9 美元。这个价格意味着模型每改一版都可以随手跑一遍——评测从「发论文前的仪式」变成了「日常回归测试」,这是这类基准最实际的价值。
四、成绩单:闭源与开源之间隔着一道墙
九个考生(4 个闭源、5 个开源)的英文成绩如下——虚线是那 1000 段真人原声自己去考的分数:
几个值得停下来看的点:
闭源碾压开源。gemini-flash 88.7 分断层第一,闭源阵营整体在 68 分以上;开源这边最好的 VoxInstruct 只有 50.4,差距接近 40 分。对声学信息的精细控制,目前还是商业模型的独门功夫。
比真人还高,是怎么回事?gemini-flash 的 88.7 超过了参考音频的 84.3——合成的比真人原声还「符合指令」?论文自己提醒:LLM 裁判有偏爱自家产出的毛病(self-preference bias),而这里裁判是 Gemini、最高分考生也是 Gemini。所以 Gemini 系的高分要打个折看;闭源领先开源的大格局倒是有旁证——与裁判无亲无故的 hume 和 gpt-4o-mini-tts,也远远甩开了所有开源模型。
RP 是所有人的滑铁卢。连参考音频自己在 RP 上也只有 67.2 分——毕竟 DSD 和 RP 的题目是从 APS 描述改写来的,出题时没有再回头听音频,加上「一个角色可以有多种合理演法」,这道题天然主观。模型这边也全线走低:从抽象人设推声音,是全场最弱的一环。
开源众生相。VoxInstruct 在 DSD 和 RP 上是开源最强,但 APS 反而崩了——它吃不下太长的结构化指令,输出趋同到听不出差别。Parler-TTS 大杯没有赢过小杯,两者不相上下、小杯偶尔还更好。PromptTTS 和 PromptStyle 的问题是「平」:输出扁平缺乏起伏,撑不起有表现力的合成。
中文考场另有一层反差。指令跟随上闭源依旧领先(gemini-flash 85.4、gemini-pro 84.8),gpt-4o-mini-tts 从英文的 68.5 掉到 51.1;VoxInstruct 47.5。但论文特意提到:VoxInstruct 合成的中文反而更有母语感——商业模型训练数据以英文为主,中文的韵律听着不够地道。「听不听话」和「像不像中国人说话」,是两个独立维度。
五、考场花絮:谁会笑,谁会唱,谁被安全策略拦在门外
分数之外,论文 4.4 节的案例研究才是最有画面感的部分。把表 7 整理成一张能力速览:
- 没有模型会叹气。一声疲惫的「唉……」,全军覆没。而叹息、突然的大笑、尖叫这些声音事件,是自然语流里传递情绪的基本件。
- 会笑的只有三家:gemini-flash、gemini-pro、gpt-4o-mini-tts 能真的笑出声,其余考生面对「带着爽朗的大笑开场」只能干念。
- 喊与尖叫。gpt-4o-mini-tts 是独一份能受控喊叫的——说喊就喊、收放自如;hume 憋出了怒气但没喊出来。尖叫则无人能出:面对「恐慌痛苦地喊叫、字句模糊、穿插刺耳尖叫」的题面,最好的几家也只是「像忍着痛在说话」。情绪骤变(从平静到激动)大家都还很吃力,「声调快速上扬」这种小转弯勉强能做。
- 童声的反转。这是全场最有意思的一幕:hume 被自家安全过滤拦下,不给合成儿童音色;gemini 和 gpt 系列锁死在预置音色列表上,变不了嗓;反而是总分落后近 40 分的开源模型 VoxInstruct 和 Parler-TTS-large 给出了相当地道的童声,Parler-TTS-large 还能演出颤巍巍的老人。论文由此点出一个漂亮的观察:音色灵活性和情绪表现力是两种正交的能力——今天没有任何模型两者兼得,未来的方向是把它们合到一起,而不是继续各修各的。
- 唱歌是天花板。「像唱歌一样说话」只有 gemini 两兄弟沾边。这不奇怪:唱要把韵律、旋律、情绪、音色、节奏五条线拧在一起,是对可控性要求最高的终极题。
六、放回大图景
这张考卷值得关注,不只因为它填了「指令跟随 TTS 没有基准」的空,更因为它把「表现力」这个玄学词拆成了可以逐项检查的东西:12 项特征、三档抽象度、一套便宜到可以天天跑的判卷流程,外加一份清晰的短板清单——声音事件、极端情绪、特定人物音色、唱歌。
放在本站的语境里,它正好补上另一半拼图:全双工系列 讲的是对话系统「什么时候说」的拟人性,这篇讲的是「用什么声音说」的拟人性——语音 agent 要真像个人,两边缺一不可。而 Qwen3-TTS 那篇提到的「一句话造音色」(voice design),正是这张考卷要打分的能力。下次再看到「支持自然语言控制风格」的宣传,可以先问一句:InstructTTSEval 跑了吗?会叹气吗?
局限也如实记下:裁判与最强考生同门,自偏难以排除;true/false 的二元判分比较粗,「大体对但差口气」和「完全对」拿一样的分;RP 的人机一致率只有七成,这部分分数更该当参考。但作为第一把系统性的尺子,它已经让「TTS 的演技」从一句营销话术,变成了一个可以测量、可以迭代的工程指标。