IndexTTS 快速入门:用一段参考音频跑通第一次语音克隆
这是什么?适合谁?
IndexTTS 是哔哩哔哩(bilibili)IndexTeam 开源的零样本语音合成(TTS)系统。给它一段几秒到几十秒的参考音频,它就能用这个音色读你给的文本;不需要先训练、也不需要准备成对的标注数据。
当前版本是 IndexTTS-2.5(官方 News 记录发布日期 2026/08/10)。相比 IndexTTS-2,2.5 增加了日语、西班牙语、阿拉伯语,推理更快,并加入语速控制,同时改进了中文拼音、英文 CMU 音素与日语假名的可控性。更早的 IndexTTS-1.5 与 IndexTTS-1.0 仍在仓库里可查,但已经不是最新版本,本文不把它们当作当前能力描述。
它属于「自己部署、自己出算力」的开源项目,不是按字符计费的云端配音服务。适合做有声内容、短视频配音、多语种旁白、以及需要把音色留在本地的团队。不适合没有 NVIDIA GPU、也不打算租用 GPU 的用户,也不适合期望上传文本就得到成品的零配置场景。
核验日期 2026-10-23,依据官方仓库 README、模型卡与当前 LICENSE。
准备工作
- 一块 NVIDIA GPU。模型卡写明推理大约需要 6 GB 显存,并要求 Python 3.10–3.11。
- 已安装 uv。官方明确要求用 uv 管理依赖,它会在项目里自动创建
.venv并装好对应 Python 版本。 - 能访问 HuggingFace 或 ModelScope 的网络。首次启动 WebUI 时示例音频是按需下载的,因此 Git LFS 不再是必需项。
- 磁盘空间用于放模型权重。具体体积以
hf download的实际输出为准,本文不估算。 - 如果安装时报 CUDA 相关错误,官方要求系统装有 CUDA Toolkit 12.8 或更新。
许可证要单独说清楚:仓库与模型权重都以 bilibili Model Use License Agreement 发布,不是 MIT、Apache-2.0 这类标准开源许可。README 写明商业使用与合作需联系 indexspeech@bilibili.com。所以「代码公开可下载」不等于「无条件商用」。
本文没有安装、下载权重或合成过音频,操作步骤来自官方 README 与模型卡。
三步快速上手
第一步:克隆仓库并安装依赖
git clone https://github.com/index-tts/index-tts.git && cd index-tts
pip install -U uv
uv sync --extra webui
官方完整命令是 uv sync --all-extras,它会把 WebUI、DeepSpeed 等全部特性一起装上。README 同时提示:Windows 上 DeepSpeed 可能很难安装,可以去掉 --all-extras,改成按需加 --extra webui。上面这条就是官方给出的规避写法。
国内网络慢时,官方给了镜像写法:
uv sync --extra webui --default-index "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
安装期间不要手动 activate 任何虚拟环境。README 明确写了:所有 uv 命令会自动激活项目环境,手动激活反而会造成依赖冲突。
第二步:下载 2.5 的权重到 checkpoints
uv tool install "huggingface-hub"
hf download IndexTeam/IndexTTS-2.5 --local-dir=checkpoints
或者用 ModelScope:
uv tool install modelscope-hub
modelscope download --model IndexTeam/IndexTTS-2.5 --local_dir checkpoints
目录名要留意:官方示例把 2.5 放在 checkpoints,把 IndexTTS-2 放在 checkpoints_2。后面所有命令里的 --model_dir 与 --cfg_path 必须指向同一套权重。
如果 hf / modelscope 命令找不到,按 uv tool 的输出提示把工具加进 PATH。HuggingFace 慢的话,官方建议先设镜像:
export HF_ENDPOINT="https://hf-mirror.com"
第三步:检查 GPU 并启动 WebUI
uv run tools/gpu_check.py
uv run webui.py
gpu_check.py 是仓库自带的诊断脚本,会打印检测到的 GPU。确认有可用显卡后启动 WebUI,浏览器打开 http://127.0.0.1:7860。
WebUI 里能调 BF16(2.5 用)或 FP16(2 用)降低显存占用,也能开 DeepSpeed 与编译内核加速。完整参数看 uv run webui.py -h。要跑 IndexTTS-2,用的是 uv run webui.py --version 2 --model_dir ./checkpoints_2。
第一个任务与成功判定
在 WebUI 里做一次最小克隆:
- 上传一段 5–15 秒、干净无背景音乐的参考音频,作为说话人音色。
- 文本填一句 10–20 字的中文,语言选
ZH。 - 先不要碰情绪参考音频与高级参数,直接生成。
判定成功的四条:
- 生成进度正常结束,页面上能播放出音频。
- 播放的音频用的确实是参考音频的音色,而不是默认音色。
- 文本内容与输入一致,没有明显吞字或重复整句。
- 输出音频能在本地播放器打开(说明文件写盘完整)。
四条都满足,最短链路就通了。之后再逐个加参数(情绪、语速),每次只改一个,出问题时才能判断是哪个参数导致。
初级用法
音色克隆:只给参考音频
最小调用就是三个参数:参考音频、文本、输出路径。批量做旁白时,把同一段参考音频复用给多条文本,音色才稳定;每换一段参考音频,音色就会变。
用 lang 指定语种
2.5 的推理接口多了 lang 参数,示例里是 ZH、EN 这类语言标记。多语种内容要把语种传对,否则文本可能按错误语言的前端规则处理。
用情绪参考音频控制表达
除说话人音频外再给一段情绪参考音频 emo_audio_prompt,输出会带上这段参考的情绪。emo_alpha 是强度系数,取值 0.0–1.0,默认 1.0(即 100%)。要接近自然朗读就把强度调低,通常在 0.6–0.9 之间试。
高级玩法
用 8 维情绪向量精确控情绪
不想提供第二段音频时,直接给一个 8 个浮点数的列表,顺序固定为 [happy, angry, sad, afraid, disgusted, melancholic, surprised, calm]。例如只强调「悲伤」就把它对应的位置给 0.8,其余为 0。默认不开启 use_random;开启会引入随机性,但 README 与模型卡都提示这会降低音色克隆的保真度。
从文本自动推断情绪(use_emo_text)
开 use_emo_text=True 会让模型自己从台词推断情绪向量,官方建议配合 emo_alpha 0.6 或更低,听起来更自然。2.5 有个额外前提:构造 IndexTTS2 时必须传 use_qwen_emo=True,否则推理时会抛 RuntimeError;IndexTTS-2 不需要这个开关。
发音与语速微调
2.5 支持用 <字|拼音或音素> 的写法纠正多音字。正确做法是让标注与真实读音一致,例如 他在银<行|HANG2>里走了半天,发现这笔业务办不<行|XING2>。——银行读 háng、不行读 xíng,标注反了会把音读错。英文用 CMU 音素,日文用假名,写法相同。语速用 duration_factor 控制,取值 0.5–2.0,大于 1.0 变慢、小于 1.0 变快,默认 1.0。
用 vLLM 做生产部署
官方在 vLLM 的 recipes 站点提供了 IndexTTS-2.5 的部署配方。适合要点是:用 vLLM 承担并发与批处理,而不是把 WebUI 直接对外。对外服务还要自己加鉴权与限流,项目本身不提供账号体系。
小技巧
- 先跑
uv run tools/gpu_check.py再下载权重,能省掉「下完才发现没显卡」的时间。 - Windows 上直接
--extra webui,不要为了「和 Linux 一样」硬装 DeepSpeed。 - 参考音频先剪成 5–15 秒单人说、无背景乐的片段,比整段播客直接喂进去稳。
- 想听语速效果就先固定文本,只改
duration_factor,一次改 0.1 级差。 - 情绪强度从 0.6 起调,往上加容易过;过的时候台词会变成「演」而不是「说」。
- 权重目录不要放进 git 跟踪范围,几 GB 的文件误提交会拖垮仓库。
- 先用 2.5 默认路径跑通,再考虑切
--version 2;两套权重与 cfg 不能混用。
常见踩坑
踩坑 1:uv sync --all-extras 在 Windows 上卡死或编译报错
- 症状:安装停在 DeepSpeed 的构建步骤,长时间无进展或直接报编译错误。
- 原因:
--all-extras包含 DeepSpeed,官方明说它在 Windows 上可能很难安装。 - 处理:改用
uv sync --extra webui,需要别的特性再逐个--extra <名字>补,不要继续等编译。
踩坑 2:安装时报 CUDA 相关错误
- 症状:依赖安装阶段报 CUDA 版本或头文件相关错误。
- 原因:系统 CUDA Toolkit 版本低于官方要求的 12.8。
- 处理:升级 CUDA Toolkit 到 12.8 或更新后重跑安装;显卡驱动与 CUDA Toolkit 是两件事,别只更新驱动。
踩坑 3:ImportError 或依赖版本冲突,明明刚装完
- 症状:
uv run时报某个包不存在或版本冲突,但uv sync显示安装成功。 - 原因:装之前手动
activate过别的虚拟环境,README 明确要求不要手动激活。 - 处理:退出已激活的环境,直接重新
uv sync,让 uv 自己管项目环境。
踩坑 4:开 use_emo_text=True 直接抛 RuntimeError
- 症状:推理一开始就抛
RuntimeError,换成emo_vector或情绪参考音频则正常。 - 原因:2.5 需要构造时传
use_qwen_emo=True,QwenEmotion 模型才会被加载。 - 处理:在
IndexTTS2(...)里加use_qwen_emo=True;或退回不依赖它的两条情绪控制路径。
踩坑 5:启动 WebUI 读不到模型,或报 config 路径不存在
- 症状:WebUI 启动失败,提示找不到
config.yaml或权重目录为空。 - 原因:
--model_dir指向的目录与--cfg_path不是同一套权重,例如把 2.5 的 cfg 配上了checkpoints_2。 - 处理:确认两者同源——2.5 用
checkpoints,2 用checkpoints_2。
踩坑 6:显存不够,跑到一半崩
- 症状:短句正常,长文本或多条连续合成时进程被终止。
- 原因:默认精度占显存更多,长文本分段后同时驻留的中间结果也更多。
- 处理:2.5 开 BF16、2 开 FP16;缩短单次文本长度;关掉不必要的加速选项后对比。显存是硬边界,降精度只能缓解。
踩坑 7:模型下载超时或速度极慢
- 症状:
hf download长时间无进度或中途失败。 - 原因:直连 HuggingFace 网络不稳。
- 处理:设
HF_ENDPOINT镜像,或改用 ModelScope 的下载命令;两条路径各自独立,不要混着写进同一个目录。
常见问题 FAQ
Q1: 能把 IndexTTS 用在商业项目里吗?
A: 要按 bilibili Model Use License Agreement 判断,这份许可不是标准开源许可证。README 明确商业使用与合作需联系 indexspeech@bilibili.com。本文不代替法律意见,商用前请自行阅读完整许可并取得授权。
Q2: 没有独立显卡能跑吗?
A: 模型卡把 NVIDIA GPU 与约 6 GB 显存列为推理前提。本文没有在 CPU 环境验证过,也不建议按 CPU 方案规划生产。
Q3: 2.5 和 2 的差别是什么?
A: 2.5 增加日语、西班牙语、阿拉伯语,推理更快,加入语速控制,并改进中文拼音、英文 CMU 音素与日语假名的可控性。2 的权重与目录布局不同,命令里的 --model_dir 要相应切换。
Q4: 支持哪些语种?
A: README 与模型卡都写明中文、英语、日语、西班牙语、阿拉伯语五种,并支持跨语种音色迁移(用中文参考音频读其他语言)。
Q5: 合成质量有客观数据吗?
A: 官方 README 给出 CV3-Eval 上的自报对比表,IndexTTS2.5(0.8B)平均 WER 6.75、SS 73.18,IndexTTS2.5-RL 为 6.00 / 73.63;推理速度表给出 RTX 4090、kv_cache=True 下 overall RTF 约 0.2065(2.5 bf16)。这些是项目方自报数据,本文未复现,不能当作独立评测。
Q6: 克隆别人的声音需要授权吗?
A: 需要。模型卡明确说明模型不会校验参考音频中说话人是否同意被克隆,取得同意是使用者的责任,且所有使用都受许可条款约束。
Q7: 官方有在线试用或 API 吗?
A: README 提供 Demo 页、ModelScope Studio 与 HuggingFace Space 入口,以及 vLLM 部署配方;项目本身不提供带账号体系的托管 API 服务。
成本、权限与平台限制
- 算力:必须自备 NVIDIA GPU,模型卡给出约 6 GB 显存用于推理;租用 GPU 的成本按云厂商实际计费。
- 许可:代码与权重都遵循 bilibili Model Use License Agreement,商用需联系官方;不是「下载即商用」。
- 平台:官方要求用 uv 管环境;模型卡写 Python 3.10–3.11;Windows 建议跳过 DeepSpeed;CUDA Toolkit 需 12.8+。
- 合规:不得生成违法、歧视或侵犯隐私的内容;参考音频的授权责任在使用者一方。README 还提醒只有官方 GitHub 仓库是官方渠道,其他站点不作保证。
- 服务边界:项目自身没有鉴权、限流、审计能力,对外提供服务必须自行补齐。
免责声明
本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。本文没有克隆仓库、没有下载模型权重、没有合成任何音频,也未在 Windows 或 Linux 的 GPU 环境验证安装流程。文中涉及的显存、语种、参数范围、评测数字均直接来自官方 README 与模型卡,属项目方公开声明,不代表本站实测结论;许可证与商用条款请以官方 LICENSE 原文为准。
继续实践
跑通 WebUI 后,建议按下面的顺序加固,每一步都能单独验证:
indextts/infer_v2_5.py:把 Python API 路径跑通,脱离 WebUI 做批处理。emo_vector与emo_audio_prompt两条情绪路径:同一条文本分别生成,对比听感。duration_factor:给同一段旁白做 0.9 / 1.0 / 1.2 三档,确认语速与时长是否符合剪辑需求。<字|拼音>标注:挑一段多音字密集的中文稿,验证纠音是否生效。- vLLM 配方:把单机脚本换成服务化,先只在本机回环地址测试,再补鉴权与限流。
- 许可复核:在正式商用前逐条读完 LICENSE,并与官方确认授权范围。
每一步都保留输入文本、参考音频与参数记录,便于复现同一结果。
参考链接
📊 评分与标签
核验口径:已按现行口径通过,待按新证据契约复核
评分说明
总分 8.0/10 · P_优选
核验日期:2026-10-23。评价对象是 bilibili IndexTeam 开源的零样本语音合成系统(当前版本 IndexTTS-2.5),按公开能力、自报评测、部署门槛、许可与成本、维护信号和合规边界打分。本文没有显卡、未下载权重、未合成音频,因此不把项目方数字当作本站实测结论。评分依据可追溯至下方公开来源。
📊 可观测社区指标(采集日期:2026-10-23)
- GitHub 仓库 API:24,651 stars、2,908 forks;未归档;默认分支 main;仓库 language 为 Python。
- API 的 pushed_at 为 2026-09-29T16:06:53Z,距今约三周,仍属有维护状态,但不构成支持承诺。
- API 的 license 字段为
NOASSERTION(“Other”),与仓库 LICENSE 文件一致:使用的是 bilibili Model Use License Agreement,不是 SPDX 标准开源许可。 - 关注量不等于下载量、合成调用量或商用授权数量。
⚙️ 功能完整度 2.1/2.5
- README 描述的核心能力:用单段参考音频做零样本音色克隆;IndexTTS-2.5 支持中文、英语、日语、西班牙语、阿拉伯语,并保持跨语种音色迁移与音色—情绪解耦。来源:官方 README、模型卡。
- 控制维度较全:情绪可由情绪参考音频(
emo_audio_prompt)、8 维情绪向量(emo_vector)或文本(use_emo_text/emo_text)驱动;emo_alpha调强度;duration_factor控语速(0.5–2.0);发音可用拼音 / CMU 音素 / 假名标注纠正多音字。 - 交付形态齐全:本地 WebUI、Python API、随仓库的 GPU 诊断脚本,以及官方 vLLM 部署配方。
- 扣分理由:没有官方托管 API 与账号体系,多角色长文本的对白切分、字幕对齐、批量任务队列都要自己搭;README 未提供 SSML 或时间轴级别的细粒度控制。
- 竞品对比 1(CosyVoice):CosyVoice 同样以零样本克隆与多语种为目标,能力集合重叠明显;两者具体控制项以各自文档为准,此处只作定位对比。
- 竞品对比 2(Fish-Speech):Fish-Speech 主打多语种 TTS 与开放权重;IndexTTS 的差异是提供情绪向量与拼音级发音控制这类显式参数。定位差异,不作优劣结论。
✨ 输出质量 2.0/2.5
- 官方 README 自报 CV3-Eval 结果:IndexTTS2.5(0.8B)平均 WER 6.75、SS 73.18;IndexTTS2.5-RL 为 6.00 / 73.63。跨语种(中文 prompt)平均 WER 6.22、SS 68.62(2.5),RL 版 6.17 / 70.20。来源:官方 README 评测表。
- 推理速度同样为自报:RTX 4090、
kv_cache=True条件下 overall RTF 为 2.5 bf16 约 0.2065、2.5 fp32 约 0.2060、2.0 fp16 约 0.3257。 - 模型卡写明输出为 22.05 kHz 波形,骨干约 0.8B 参数,架构为 GPT 主干 + flow-matching 语音到 mel 解码器 + BigVGAN 声码器。
- 扣分理由:以上全部来自项目方自报,测试集为 CV3-Eval(阿拉伯语部分使用其内部测试集),本文未复现;主观听感、长文本跨句韵律与噪声鲁棒性均无可核对数据。模型卡也自述长文本分段拼接处不建模跨段韵律。
- 竞品对比 1(CosyVoice 3 系列):README 的对比表把 CosyVoice3-0.5B / 1.5B 列为同期参照并给出各自 WER/SS;该表由项目方整理,不能视为中立第三方评测。
- 竞品对比 2(ElevenLabs):ElevenLabs 是商业托管服务,质量结论依赖其自有与第三方测评;与本地开源权重的可比性受语种、采样与测试集影响,本文不做跨类排名。
🖐️ 易用性 1.1/1.5
- 安装路径集中:
git clone→pip install -U uv→uv sync一条命令建环境;官方明确要求用 uv 管理环境,并说明所有 uv 命令会自动激活项目环境、不要手动 activate。来源:README 安装段。 - 权重下载有 HuggingFace 与 ModelScope 两条命令,国内还给了 PyPI 与 HF 镜像写法;WebUI 启动后浏览器打开
127.0.0.1:7860即可试听。 - 扣分理由:门槛集中在环境侧——必须 NVIDIA GPU(模型卡给出约 6 GB 显存与 Python 3.10–3.11)、CUDA Toolkit 需 12.8+、Windows 上 DeepSpeed 可能装不上需绕开、权重是数 GB 级下载,且
checkpoints与checkpoints_2两套目录容易配错。 - 竞品对比 1(GPT-SoVITS):GPT-SoVITS 以「少量数据微调 + 整合包」降低上手门槛,IndexTTS 走零样本路线、省去训练但要求 GPU 直接推理。两条路径的易用性代价不同。
- 竞品对比 2(ElevenLabs):托管服务省掉全部环境工作但按量计费并需上传音频;本地部署保留数据但把运维压给使用者。属交付形态差异,不作省时结论。
💰 性价比 1.3/1.5
- 权重与代码可免费下载、可离线推理,没有按字符计费的门槛;对中长内容批量合成,成本主要落在自有或租用的 GPU 上。来源:模型卡、ModelScope 模型页。
- README 建议国内用户使用镜像加速依赖安装,侧面说明主要成本项是网络与算力,而不是软件授权费。
- 扣分理由:免费下载不等于可无条件商用——许可证是 bilibili Model Use License Agreement,README 写明商业使用与合作需联系
indexspeech@bilibili.com;这部分授权成本与周期不公开,无法量化。 - 竞品对比 1(Fish-Speech):两者都提供可自托管的开放权重,许可条款与商用条件需分别阅读,不做「谁更便宜」的推定。
- 竞品对比 2(ElevenLabs):托管服务按订阅或用量计费、无自有算力投入;IndexTTS 是零许可费 + 自付算力。规模与合规要求不同,成本结论会反转。
🔒 稳定性 0.7/1.0
- 维护可观测:仓库 API 的 pushed_at 为 2026-09-29T16:06:53Z,版本线从 1.0(2025/03/25)到 2.5(2026/08/10)持续迭代,README 有英文、中文、日文、西班牙文、阿拉伯文文档。来源:README News、GitHub API。
- 仓库 API 显示 open_issues 为 413,说明问题讨论活跃,也说明未结问题不少;本文未统计处理时长。
- 扣分理由:没有 SLA、没有托管可用率承诺;2.5 与 2 的权重目录和 cfg 不通用,升级需要重新下载与适配;模型卡自述长文本分段、
use_emo_text依赖额外模型(2.5 需use_qwen_emo=True)等限制,都是运行时容易踩的边界。 - 竞品对比 1(CosyVoice):同为开源模型仓库,都会遇到权重版本与依赖升级的适配成本,本文不对谁的版本更稳下结论。
- 竞品对比 2(ElevenLabs):托管服务以可用率和版本管理为卖点但同样有条款变更风险;本地部署的故障面在使用者自己的环境。责任归属不同。
🛡️ 隐私安全 0.8/1.0
- 可完全离线推理:权重下载完成后,合成过程不需要把文本或音频发到第三方;这对内部素材与未公开脚本是实际优势。来源:README。
- 项目自身不含账号、鉴权、水印或审计能力;对外提供服务必须自行补齐,否则克隆能力可被任意调用。
- 合规风险明确写在模型卡里:模型不会校验参考音频中说话人是否同意被克隆,取得同意是使用者的责任,所有使用都受许可证约束;许可证还禁止违法、歧视与侵犯隐私的用途。
- 扣分理由:缺少水印/溯源与滥用防护等机制说明,也没有安全审计材料;部署方需要自行承担合规设计。
- 竞品对比 1(ElevenLabs):托管服务通常附带滥用监测与账号约束(以其实时条款为准),本地权重把这类控制交给部署方;这是交付形态带来的合规边界差异。
- 竞品对比 2(GPT-SoVITS):同样以本地克隆为核心,风控责任同样落在使用者;此处只说明同类项目的共同边界,不比较安全实现。
🏷️ 标签说明
- TTS:核心功能是文本转语音,README 自我描述为「工业级可控高效的零样本文本转语音系统」。来源:README。
- 语音克隆:用单段参考音频复刻音色,是项目的主打能力;也正因此需要参考音频的授权。来源:模型卡。
- 多语言:2.5 支持中文、英语、日语、西班牙语、阿拉伯语,并支持跨语种音色迁移。来源:README。
- 本地部署:官方交付形态是本地仓库 + WebUI/Python API + vLLM 配方,不提供托管账号服务;本文据此选择该标签,未标注为「开源免费」,因为许可并非标准开源许可且商用需联系官方。来源:LICENSE。
局限与未实测声明
本文未克隆仓库、未安装依赖、未下载权重、未合成任何音频,也未在 Windows 或 Linux 的 GPU 环境验证安装与推理。所有技术参数(语种、参数范围、显存、精度选项)、评测数字与速度数据均来自官方 README 与模型卡,属项目方公开声明;本文未复现,不能视为独立评测。许可证条款与商用条件请以官方 LICENSE 原文及官方回复为准。
📋 来源核实
- 已读取官方 README,核对版本线(2.5 发布日 2026/08/10)、安装命令、权重下载命令、WebUI 与 Python API 用法、情绪与语速参数、评测与速度表、社区入口。
- 已读取 IndexTTS-2.5 模型卡,核对开发者、参数量、输出采样率、许可证、运行前提(Python 3.10–3.11、NVIDIA GPU、约 6 GB 显存)与限制清单。
- 已读取 LICENSE 原文,确认是 bilibili Model Use License Agreement,包含衍生作品声明义务与禁止高风险用途条款。
- 已查询 GitHub 仓库 API,记录 stars、forks、pushed_at、open_issues、license 字段与非归档状态(采集日期 2026-10-23)。
- 对照来源:CosyVoice、Fish-Speech、GPT-SoVITS、ElevenLabs,对比只涉及产品定位与公开功能。
- 核验日期 2026-10-23;未复现的准确率、MOS、并发能力与商用授权费用均不作断言。
评分依据可追溯至上述公开来源;分数是基于能力与限制的编辑判断,不是实测音频质量、性能排名或法律意见。
同分类推荐
AI音频 分类下的其他工具