一天一个开源项目(第60篇):IndexTTS - B 站开源的工业级零样本语音合成系统

引言

"The Future of Voice, Now Generating."

这是「一天一个开源项目」系列的第 60 篇文章。今天介绍的项目是 IndexTTSGitHub)。

想要工业级、可控、高效的零样本语音合成?IndexTTS 是 B 站 IndexTeam 开源的 零样本 TTS 系统音色克隆情感控制时长控制(IndexTTS2)。支持情感参考音频、情感向量、文本情感描述,实现情感与音色解耦,多语言(中英等),提供 WebUI 与 Python API,基于 uv 管理依赖。

你将学到什么

  • IndexTTS 的核心能力与架构
  • IndexTTS2 的情感控制与时长控制
  • 音色克隆、情感参考、文本情感的使用方式
  • 环境搭建与 WebUI 快速开始
  • 与同类 TTS 的对比

前置知识

  • 对 TTS、语音合成有基本了解
  • 有 NVIDIA GPU 与 CUDA 12.8+(推荐)

项目背景

项目简介

IndexTTS 是 B 站 IndexTeam 开源的工业级可控零样本 TTS 系统 。用户提供一段参考音频即可克隆音色,同时可独立控制情感:通过情感参考音频、8 维情感向量或文本描述。IndexTTS2 进一步实现自回归 TTS 的精确时长控制,支持可控与不可控两种模式,情感与音色解耦,多语言表现优异。

团队

  • 团队 :B 站 IndexTeam(indexspeech@bilibili.com
  • 核心作者:Wei Deng、Siyi Zhou、Jingchen Shu、Xun Zhou、Jinchao Wang 等
  • 社区 :QQ 群、Discord

项目数据


主要功能

核心能力

能力 说明
零样本音色克隆 单段参考音频即可克隆音色
情感控制 情感参考音频、8 维情感向量、文本情感描述
情感与音色解耦 音色来自音色 prompt,情感来自情感 prompt,独立控制
时长控制 IndexTTS2 支持精确时长控制(自回归 TTS 首例)
多语言 中文、英文等,IndexTTS1.5 显著提升英文
拼音控制 支持拼音标注精确发音

使用场景

  1. 视频配音:严格音画同步的时长控制
  2. 有声书/播客:情感丰富的朗读
  3. 游戏/虚拟角色:音色克隆 + 情感控制
  4. 多语言内容:中英双语合成

快速开始

环境要求:git、git-lfs、uv、CUDA 12.8+(推荐)

安装

bash 复制代码
git clone https://github.com/index-tts/index-tts.git && cd index-tts
git lfs pull
pip install -U uv
uv sync --all-extras

下载模型(IndexTTS-2):

bash 复制代码
uv tool install "huggingface-hub[cli,hf_xet]"
hf download IndexTeam/IndexTTS-2 --local-dir=checkpoints

启动 WebUI

bash 复制代码
uv run webui.py

访问 http://127.0.0.1:7860

Python 调用示例

python 复制代码
from indextts.infer_v2 import IndexTTS2

tts = IndexTTS2(cfg_path="checkpoints/config.yaml", model_dir="checkpoints",
                use_fp16=True, use_cuda_kernel=False, use_deepspeed=False)

# 基础音色克隆
tts.infer(spk_audio_prompt='examples/voice_01.wav', text="Translate for me, what is a surprise!",
          output_path="gen.wav", verbose=True)

# 情感参考音频
tts.infer(spk_audio_prompt='examples/voice_07.wav', text="酒楼丧尽天良,开始借机竞拍房间,哎,一群蠢货。",
          output_path="gen.wav", emo_audio_prompt="examples/emo_sad.wav", verbose=True)

# 情感向量 [happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]
tts.infer(spk_audio_prompt='examples/09.wav', text="对不起嘛!我的记性真的不太好~",
          output_path="gen.wav", emo_vector=[0, 0, 0.8, 0, 0, 0, 0, 0], verbose=True)

# 文本情感描述
tts.infer(spk_audio_prompt='examples/voice_12.wav', text="快躲起来!是他要来了!",
          output_path="gen.wav", use_emo_text=True, emo_alpha=0.6, verbose=True)

情感控制方式

方式 参数 说明
情感参考音频 emo_audio_prompt 从参考音频提取情感
情感向量 emo_vector 8 维:[happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]
文本情感 use_emo_text=Trueemo_text 从文本或指定描述生成情感
情感强度 emo_alpha 0.0--1.0,默认 1.0

项目优势

对比项 IndexTTS2 传统 TTS 其他零样本 TTS
时长控制 精确可控(自回归首例) 通常不可控 多数不可控
情感控制 多模态(音频/向量/文本) 有限 视模型而定
情感与音色 解耦,独立控制 常耦合 常耦合
零样本 单段参考即可 需训练 视模型而定
多语言 中英等 视模型而定 视模型而定

项目详细剖析

版本演进

版本 发布时间 主要特性
IndexTTS-1.0 2025/03 模型权重与推理代码
IndexTTS-1.5 2025/05 稳定性提升、英文表现增强
IndexTTS-2 2025/09 精确时长控制、情感解耦、多模态情感控制

技术要点

  • 自回归 + 时长控制:首次在自回归 TTS 中实现精确时长控制,适配视频配音等场景
  • GPT 潜在表示:增强高情感表达时的清晰度
  • 三阶段训练:提升生成稳定性
  • 软指令机制:基于 Qwen3 微调,用文本描述引导情感

推荐配置

  • FP16:降低显存、加速推理,质量损失很小
  • DeepSpeed:视硬件可能加速,需实测
  • CUDA 12.8+:确保正确安装

依赖管理

  • 仅支持 uv:官方明确要求使用 uv,conda/pip 可能导致依赖版本错误、GPU 不可用等问题
  • 国内镜像uv sync --all-extras --default-index "https://mirrors.aliyun.com/pypi/simple"

项目地址与资源

官方资源

适用人群

  • 需要高质量零样本 TTS 的开发者
  • 视频配音、有声书、播客制作者
  • 需要情感与音色独立控制的场景
  • 多语言语音合成需求

欢迎来我中的个人主页找到更多有用的知识和有趣的产品

相关推荐
子兮曰2 小时前
🚀Hermes Agent 爆火真相:19k Star 背后的自学习 Agent 系统
人工智能·agent
AI先驱体验官3 小时前
智能体变现:从技术实现到产品化的实践路径
大数据·人工智能·深度学习·重构·aigc
大连好光景3 小时前
软件测试笔记(2)
人工智能·功能测试·模块测试
纪伊路上盛名在3 小时前
机器学习中的固定随机种子方案
人工智能·机器学习·数据分析·随机种子
SteveSenna3 小时前
项目:Trossen Arm MuJoCo
人工智能·学习·算法
兢谨网安3 小时前
AI安全:从技术加固到体系化防御的实战演进
人工智能·安全·网络安全·渗透测试
CoderJia程序员甲3 小时前
GitHub 热榜项目 - 日榜(2026-03-29)
人工智能·ai·大模型·github·ai教程
龙腾AI白云3 小时前
什么是AI智能体(AI Agent)
人工智能·深度学习·自然语言处理·数据分析
Sagittarius_A*3 小时前
监督学习(Supervised Learning)
人工智能·学习·机器学习·监督学习