我们平时说话,信息不只在“字面内容”里,还藏在各种副语言声音里:笑、喘气、叹气、咳嗽,以及“嗯/啊/哦”这类带态度的语气词。它们在真实对话里承担了大量功能:
表达情绪与态度:开心的笑、无奈的叹气、不耐烦的“哼” 组织对话节奏:思考时的“呃/嗯”、接话的“嗯嗯” 暗示意图:疑问语气的“啊?”、“哦?”、确认的“嗯。” 在中文里更复杂:声调/语调会跟这些声音强耦合,不处理就更“假”
但传统语音系统的默认做法往往是:
- 语音识别(ASR):
只输出文字,把笑声、喘气当噪声丢掉
人说:“[惊讶]你确定吗?”
常规ASR:“你确定吗?”
- 语音合成(TTS):
只会把文字念出来,缺少可控的“像人一样的插入”
文本:“这也太夸张了吧[笑]!”
常规TTS:只念“这也太夸张了吧”,没有笑
论文:https://arxiv.org/pdf/2508.04195v1
演示与数据主页:https://nvspeech170k.github.io/
「解决方案」
Emilia-NV做了三件事:数据-识别-合成一条龙流水线
核心工作一:Emilia-NV-Human —— 先做一套“词级副语言标注”的高质量数据集
先人工精标一个可用来训练的“种子集”:
- 48,430条人类语音
- 76小时
- 18类副语言标签(词级插入、带对齐位置)
语料来源以中文真实场景为主(包含开源游戏语音库(原神/星穹铁道中文部分)等强表现力语音,并用外部数据补齐咳嗽、哭等类别) 18类标签大致分三类: 生理/非语言音: [Laughter] [Breathing] [Cough] [Sigh] [Crying]语气/态度型感叹与疑问: [Question-ah] [Question-oh] [Surprise-wa] ...话语组织/填充: [Uhm] [Shh]等
它解决的是:“模型到底要学什么”——不仅知道“有笑声”,还知道“笑声插在这句话哪个词后面”。
核心工作二:Paralinguistic-aware ASR —— 把副语言当成“可解码token”,一口气识别出来
把任务从“只识别文字”升级成:
文字 + 副语言token 统一输出序列
例如:不知道[Breathing],我没想过
也就是说:笑、喘气、语气词不再是“噪声事件检测”,而是跟文字同等地位的输出目标(inline token)。
效果如何?(重点看“副语言识别能力”)
在两套测试集上评测:
- 域内
(类似游戏对白等) - 开放域
(访谈、节目、体育解说等更嘈杂更真实的语音)
表现最强的模型是NVASR(基于Emilia-NV-Human微调SenseVoice):
域内:CER 4.61%,副语言F1 0.83 开放域:CER 3.79%,副语言F1 0.85(泛化依然很强) 副语言检测率(Para Det. Rate)开放域也能到 93.4%
这一步解决的是:“怎么把大规模未标注语音也变成可训练数据”。
核心工作三:Emilia-NV-170K —— 用最强ASR去“自动扩标”,把数据规模拉起来
有了能同时输出“字 + 副语言token”的ASR,就可以去给更大的语音库打标。
最终得到公开的大规模数据集,这是首个大规模中文词级对齐、带副语言线索的数据集:
- 174,179条
- 573.4小时
仍然是词级对齐 + 18类副语言 覆盖来源更广(包含更开放域的真实录音素材)
这一步解决的是:人工标注贵、类别稀有、覆盖不够——用模型把规模做起来。
「应用验证」
让TTS能“显式控制副语言”:想在哪儿笑就在哪儿笑
我们用Emilia-NV(人工+自动标注)去微调零样本TTS(如 CosyVoice / CosyVoice2),并扩展词表让TTS能识别这些token:
文本可写成: [Laughter]你们回来了,[Breathing]辛苦了!模型学习在对应位置生成自然的笑/喘气,并与语音平滑衔接
客观指标(部分结论)
自动标注数据(等规模)效果不输纯人工 用更大规模自动标注数据进一步提升,域内CER相对下降最高可到 12.8%
主观听感(更关键)
60人主观偏好对比(“微调后” vs “原始模型”):
CosyVoice:78.7% 听众更喜欢“带副语言增强”的版本 CosyVoice2:75.4% 更喜欢增强版 自然度NMOS约 3.9–4.0,整体质量QMOS约 4.0 副语言token召回最高到 0.619
「结 论」
本工作核心贡献:
- 数据缺口:中文里首次给出大规模、公开、词级副语言标注数据(573h级别)
- 识别缺口:把副语言变成ASR“可解码token”,而非额外做个事件检测器
- 生成缺口:TTS支持“token级可控插入”,位置可控、上下文可控
- 可规模化:人工精标做种子 → ASR自动扩标 → 大数据反哺TTS,闭环成立


