一天一个开源项目(第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 的开发者
  • 视频配音、有声书、播客制作者
  • 需要情感与音色独立控制的场景
  • 多语言语音合成需求

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

相关推荐
传说故事1 分钟前
【论文阅读】RoboCodeX: Multimodal Code Generation for Robotic Behavior Synthesis
论文阅读·人工智能·具身智能
桌面运维家13 分钟前
IDV云桌面vDisk机房建设方案如何查看分组使用统计
大数据·人工智能
前端摸鱼匠17 分钟前
【AI大模型春招面试题25】掩码自注意力(Masked Self-Attention)与普通自注意力的区别?适用场景?
人工智能·ai·面试·大模型·求职招聘
我是大聪明.19 分钟前
RAG检索增强生成技术深度解析
人工智能
沫儿笙20 分钟前
FANUC发那科机器人新能源车焊接节气装置
人工智能·机器人
2401_8322981022 分钟前
OpenClaw云服务器优化技巧:降本50%,性能提升3倍
人工智能
王莎莎-MinerU24 分钟前
MinerU + LangChain 实战:从 PDF 解析到 AI 问答全流程
人工智能·langchain·pdf·开源·产品运营·团队开发·个人开发
赋创小助手26 分钟前
RTX PRO 6000 vs RTX 5090:从一组230B模型测试数据谈企业级推理选型
服务器·人工智能·科技·深度学习·自然语言处理
不才小强33 分钟前
深度学习模型部署实战指南
人工智能·深度学习
Fabarta技术团队41 分钟前
务实、灵活——枫清科技财务单证智能审核方案 以AI自学习驱动审核提效与规则进化
人工智能·科技·学习