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

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

相关推荐
柏舟飞流几秒前
大数据与 AI 融合:高阶架构与实践
大数据·人工智能·架构
Database_Cool_3 分钟前
数据仓库弹性扩缩容怎么实现?阿里云 AnalyticDB MySQL Serverless 弹性架构详解
数据库·人工智能·阿里云
羑悻的小杀马特4 分钟前
从 Claude Code 到 QClaw:AgentSkills 规范的跨生态实践与工程取舍!
人工智能·自动化·agent·skills·openclaw·qclaw
zhangfeng11334 分钟前
超算中心 高性能计算 htc命令module use的作用
人工智能·机器学习
Rocky Ding*5 分钟前
深入浅出完整解析AIGC时代中GAN(Generative Adversarial Network)系列模型核心基础知识(下篇)
论文阅读·人工智能·深度学习·机器学习·aigc·gan·ai-native
软件开发技术深度爱好者6 分钟前
当前的AI或者说大语言模型与《中庸》思想关联意义的探讨
人工智能·学习心得
装不满的克莱因瓶7 分钟前
什么是特征分解?从数学定义到现实问题的映射
人工智能·数学·算法·机器学习·ai·特征分解
Dylan的码园9 分钟前
告别AI空交互!ToDesk AI实测:能自主操控电脑的落地式AI生产力助手
人工智能·电脑
呆呆敲代码的小Y10 分钟前
【最新Codex教程】 | 安装、入门和快速使用,适合新手
人工智能·gpt·ai·llm·openai·agent·codex
sunneo10 分钟前
每周AI工具模型更新速递
人工智能