跳到正文

开源语音模型 IndexTTS 2:从情绪复刻到时长控制,B 站如何让 AI 声音更有温度

讲师 思绎紫泽 · 20:00 直播

2025 年 10 月 22 日,B 站 IndexTTS 语音大模型首席算法专家思绎与产品运营专家紫泽,在 WaytoAGI 社区「晚八点共学」直播中系统分享了 IndexTTS 系列模型的技术原理、2.0 版本的核心升级与实操技巧。本文适合视频创作者、影视从业者、AI 工具爱好者以及对语音合成技术感兴趣的读者阅读。

开源初衷:构建通用可扩展的 TTS 能力底座

思绎在分享开场时指出,在 AI 和语音技术飞速发展的今天,TTS(语音合成)已不仅仅是把文字读出来的工具,而是成为内容创作中不可或缺的一项基础能力。然而,TTS 的应用场景非常多元——有声书、播客、动态慢视频配音、AI 对话等,每个场景对语音的表现力、节奏和情感都有不同要求。面对如此分散的垂类需求,单一团队难以完全覆盖。

基于这一判断,B 站选择以开源的方式构建一个通用可扩展的 TTS 能力底座。思绎解释,通过开放基础技术降低使用门槛,让开发者能基于这个底座灵活适配、持续创新,而创作者也可以基于模型或工具生产更多样、更高效的内容,最终实现从技术到工具再到内容与生态的正向循环。

IndexTTS 系列目前共开源了两代模型:今年 3 月发布 1.0 版本,5 月发布 1.5 版本(显著提高了模型稳定性及英文表现力),9 月发布全新的 2.0 版本。2.0 版本具备较好的情感复刻能力,且是自回归模型,能够控制合成语音的时长。

两代模型的技术演进:从声学 Token 到语义 Token

思绎介绍,当前的 TTS 大模型通常包含四个结构:语音分词器(Speech Tokenizer)将连续语音信号转换为离散 Token;语言模型学习文本 Token 与语音 Token 之间的关系以生成自然流畅的语音;扩散模型学习语音特征之间的关系,生成梅尔频谱等连续语音特征;声码器基于这些特征还原语音波形。

第一代 IndexTTS 去掉了扩散模型,因为其使用的 Acoustic Token 直接包含丰富的声学信息,可以直接基于此还原波形。为解决直接还原可能出现的「口糊」问题,团队将语言模型最后一层的输出输入到声码器(选用 BigVGAN V2)中,并额外引入 Speaker Encoder。此外,为更好地对中文建模,模型采用字符和拼音的混合建模方式,且推理时不需要额外获取参考音频的转录文本,因此支持任意语种的音频作为参考音频。

思绎提到,将 1.0 版本在通用测试集上与业内认可度较高的开源模型(如自回归的 CosyVoice 2 和非自回归的 F5-TTS)进行系统性比较,结果显示其字错率表现最优,说话人相似度接近最优指标,MOS 主观评估表现也相当不错。

但第一代模型上线开源后收到两个主要反馈:一是情绪比较平淡——如果参考音频极富表现力,合成出来的音频情感强度会被极大削弱;二是不能控制语速——在需要时长对齐的场景(如视频翻译)中,只能通过信号变速来卡时间戳,这会损害音频听感。

IndexTTS 2.0 的核心突破:情感控制与时长调节

为解决上述两个问题,2.0 版本对整体架构进行了系统性升级。新架构由四个模块组成:T2S 模块(Text to Semantic)自回归地学习文本 Token 与语义 Token 之间的关系;S2Mel 模块(Semantic to Mel)基于语义 Token 和声纹特征还原梅尔频谱;BigVGAN V2 声码器负责得到波形;T2E 模块则是一个相对独立的拓展模块。

其中最关键的是 T2S 模块,情感以及时长控制都在此实现。该模块采用 GPT-2 架构,推理时需要提供两个 Prompts:Style Speaker Prompt(音色参考)和 Style Prompt(情感参考)。在一般的 Zero-shot 任务中,这两个 Prompt 来自同一个音频;若需要音色和情感参考不同的音频,则需区分。模型支持自由发挥和指定时长合成两种推理模式,由 P 向量控制——自由发挥时 P 设为全零向量;指定时长时,可根据目标时长算出所需 Token 数(如 1 秒语音编码为 50 个 Token,合成 10 秒音频即指定生成 500 个 Token)。

T2S 模块的训练分三个阶段:第一阶段用全量数据训练,专注学习文本与说话人参考音频、目标音频之间的对应关系,此时不加入情感特征提取网络;第二阶段加入情感特征提取网络,冻结音色特征提取器参数,并添加梯度反转层去除与说话人相关的特性,使用 135 小时高质量情感数据训练——思绎强调,「如果是说有一个海量的低质情感数据,可能还比不上就是高质的一个少基数的一个情感数据来进行这一阶段的训练」;第三阶段用全量数据训练,冻结音色和情感特征提取器。

S2Mel 模块直接用全量数据训练,将语义 Token 还原到梅尔频谱。为解决高表现力数据(如边哭边笑、大吼大叫)上的口糊问题,团队使用 GBLatent 做增强,将两个特征直接做加法,口糊现象得到很大缓解。

T2E 模块则通过自然语言方式控制情感生成:训练时先用 DeepSeek R1 生成情感描述句子和情感分布,微调千问 3 1.7B;推理时将情感描述输入千问 3 得到情感分布,按比例对预设情感向量加权得到 Emotion Vector,输入到 IndexTTS 2 得到最终生成音频。此模式下无需额外提供 Style Prompt。

应用场景与实操指南

紫泽在分享中展示了多个应用场景。在影视原声翻译方面,以《让子弹飞》片段和日番《Mygo》场景为例,模型能自然还原愤怒、消极等情绪,支持中英语言相互转换——「只要有 Prompt 能够收集到音色的信息以及情绪的信息,我们都可以用中文和英文给它很好地还原出来」。在名场面复刻方面,以刘华强买瓜片段为例,用丁真、王媛的声线改词还原,台词和语气还原度高。在专业领域,B 站 2025 年 BML 现场 2233 的口播由 IndexTTS 全程生成,本月上线的 B 站首部 AI 配音纪录片《太阳系》也使用了该模型。

使用方面,用户可到 GitHub 找到 IndexTTS 2 页面下载模型并本地部署,打开 Web UI 工具使用;也可通过 Hugging Face 或 ModelScope 在线使用。

情绪控制提供三种方式:

  • 参考音频:左上角上传音色参考音频,生成结果在音色方面主要参考该音频;下方上传情绪参考音频,生成结果情绪主要参考此部分。通过调节「情感权重」参数控制生成音频受情感参考音频的影响程度,但音色和情感参考音频区别过大时,不建议将情感权重拉太高,否则会损失原本音色。
  • 情感向量:勾选情感向量控制选项后,会出现多种情绪供用户选择,如「怒」「低落」等,效果非常明显。
  • 情感描述文本:通过输入文字告诉模型所需情绪,如「高兴惊喜,特别开心」,并可调节描述文本权重。紫泽现场演示了输入「又笑又哭」后,生成结果确实「一会哭一会笑的」。

时长控制方面,勾选「使用时长控制」后可设置音频时长,实现语速快慢调节。紫泽演示了将 4 秒音频分别调整为 6 秒(语速变慢)和 2 秒(语速变快)的效果。

紫泽还演示了拼音输入功能:遇到生僻字或发音问题时,可将字转换成拼音(字母后加数字表示声调,两个拼音间加空格)输入,模型能正确发音。

现场问答

影视制作中如何实现音画卡位和口型对齐?

紫泽建议先根据原音频时长设置生成音频的时长,若语速不合适再进行微调。生成结果的节奏和抑扬顿挫很大程度来自提示音频,也可通过标点符号控制长句节奏。

长句中音色随情绪变化如何实现?

紫泽表示可将长音频分成两到三段,通过调节情感权重实现情感渐变;也可通过情绪参考音频、情感向量或情感描述文本改变情绪,同时保持音色参考音频不变,使生成音频音色一致。

如何模拟外星语言?

紫泽认为中英文混杂没问题,但模拟外星语言较难。建议用有音色和吐字韵律信息的音频作参考,输入类似「哔哩歪比、巴卜」的文字,再通过后期加速、减速、变调等方式处理。

表演中的气声如何实现?

紫泽建议在情感参考音频中提供气声音频,通过调整情感权重参数微调。

本地部署的硬件要求是什么?

思绎表示,所有模块加载进来需要 12GB 左右显存,4090 可以支持,与显卡代数无关。目前只支持 N 卡,A 卡和英特尔显卡暂不支持。直播中的演示就是在 4090 上运行的。

口音和方言支持情况如何?

思绎表示,可通过调节情绪参考音频实现口音的细微调节——「它虽然叫情绪参考音频,它也可以调节一部分的韵律、口音这些东西」。紫泽补充,与普通话接近的北京话、东北话等可通过调节韵律实现,粤语、吴语等差距较大的方言目前无法支持。

多语言混合支持情况?

目前 IndexTTS 2 只支持中文和英文混合。未来支持其他语言后,所有支持的语言都可混合。

商业版权问题如何处理?

紫泽强调,商用作品使用真人样音需要真人授权。关于模型推理出来的音频的商用问题,可到 GitHub 查看主页的法律介绍。

时长控制能做到什么粒度?

思绎补充,模型的时长控制是句级别的,无法做到字级别控制。若有明显的字级控制要求,可能需靠后期剪辑。

音频生成时长上限是多少?

思绎称,150 个字左右的生成比较 OK,训练时主要用 30 秒以内的音频。长文本合成可通过长句拆短句实现。

自然的笑声和哭声能生成吗?

紫泽建议,最好提供有相应情绪的参考音频,再配合「哈哈哈」等文本输入。

支持自定义标签和声音微调吗?

思绎表示,目前模型不支持自定义标签,但有计划在未来迭代中支持。开源的只有推理代码,若需要声音微调,可能需自己写代码。

8G 版本是怎么回事?

思绎称可能是热心网友做了量化或加速,基于开源模型整合而成,具体优化操作不太清楚。紫泽推荐大家可查看秋芝 up 主关于 IndexTTS 2 的介绍视频。

要点回顾

  • IndexTTS 2.0 是 B 站开源的语音合成模型,核心突破在于情感复刻和句级别时长控制。
  • 2.0 架构由 T2S、S2Mel、BigVGAN V2 声码器和 T2E 四个模块组成,情感与时长控制均在 T2S 模块实现。
  • 情绪控制有三种方式:参考音频(配合情感权重调节)、情感向量、情感描述文本。
  • 时长控制为句级别,可通过设置目标时长实现语速调节;字级别的精细控制需靠后期剪辑。
  • 硬件要求为显存 12GB 及以上,目前仅支持 N 卡。
  • 目前支持中英双语混合,粤语、吴语等与普通话差距较大的方言暂不支持。
  • 生僻字或发音问题可通过拼音输入解决(字母后加数字表示声调,两个拼音间加空格)。
  • 商用作品使用真人样音需获得授权,模型推理音频的商用规则详见 GitHub 主页法律说明。

直播回放91 分钟

播放器来自飞书妙记 · 在新窗口打开