声音克隆:IndexTTS2本地安装和运行记录!

自从B站发布了IndexTTS2的宣传片之后,我就念念不忘!

这效果相当惊艳,好害怕他们捂着,不开源了。

还好,Index有格局,开源模型和开源代码如期而至!

并发布了另外一个演示视频:

声音克隆技术已经强到这种地步了?!

不愧是视频网站出身,做的视频也挺好。

这个模型在影视翻译方面的表现,非常惊艳!

同时2.0版本在情感控制方面也有比较突出的表现。可以通过多维度进行情绪控制,相比1.0版本,自然度、相似度也有很大的提升。

反正一句话,官方给的例子相当不错!就差自己上手玩一玩“验明正身”了。

目前,我已经在Windows系统上成功运行,显卡是RTX 5060 Ti。

因为新显卡,加上新的UV配置方式,整个安装配置过程还是踩了一些坑,收获了一些经验。

所以写一篇文章记录和分享一下。

下面就进入正题了,我按步骤一步一步来写。

1.获取源代码

这是一个开源项目,而非软件。所以我们要从获取源代码开始。

源代码的获取方式一般分两种:一种是命令的方式,一种是直接打包下载。

命令方式

这种方式需要先确保你的电脑已经安装了git和lfs。

如果git装了,没有lfs,可以运行命令:

git lfs install

然后依次运行下面三行命令:

git clone https://github.com/index-tts/index-tts.git indextts2 
cd indextts2
git lfs pull

打包下载

打开开源项目地址:

https://github.com/index-tts/index-tts

然后点击Code->Download ZIP。

image-20250909193701230

会下载到一个zip压缩文件,解压这个文件,把解压出来的文件夹改名为indextts2就可以了。

不管哪种方式获取,这里都会有一个小问题。因为这个项目使用了LFS。

LFS = Large File Storage(大文件存储),是 Git 的一个扩展,用来管理二进制/大文件(音频、视频、模型、数据集等)。

这个东西一用,可能搞得你Git都不会用了。

克隆代码(git clone)的时候会报一堆错误:

`Updating files: 100% (249/249), done. Downloading examples/emo_hate.wav (145 KB) Error downloading object: examples/emo_hate.wav (89e6e7e): Smudge error: Error downloading examples/emo_hate.wav (89e6e7eee1a28303776e9cf43971e9505529bd0e669f5fcf47f4d1370f9187c4): batch response: This repository exceeded its LFS budget. The account responsible for the budget should increase it to restore access.`

刚开始有点懵,查了一下大概是文件配额超了。可能是下载的人太多了,就受限了,所以直接出现错误。

遇到这个情况,我们做不了什么,只能直接跳过LFS部分。

删除之前的所有代码,执行下面命令,重新下载一下:


git lfs install --skip-smudge
git clone https://github.com/index-tts/index-tts.git indextts2

这样就可以下载全部源代码而不报错了。

如果你想知道这么操作缺了什么文件,可以使用命令:

git lfs ls-files

通过这个命令可以知道,那些大文件值得就是examples文件下的一些演示音频。

我们可以在GitHub上打开这个文件夹,找到里面的音频文件,然后手动在网页上点击下载,下载完成之后放到本地同名文件夹就可以了。

所以,如果你不理解上面的命令,就直接手动下载就好了。

2.安装依赖

有了源代码和演示音频之后,我们就需要进行安装了,这里的安装主要是指安装Python依赖。常规的Python项目我们一般使用pip来安装requirements.txt文件中的依赖包。但是这个项目并没有使用pip,而是使用了UV 作为包管理器。

uv = 超快的 Python 包管理器 + 虚拟环境管理器

它的目标是用一个工具取代:

pip
venv
pip-tools
pipenv
poetry
conda(部分功能)

核心特点:

  • 极速:基于 Rust 实现,比 pip 快 10~20 倍。
  • 跨平台:支持 Windows、macOS、Linux。
  • 全功能:安装、卸载、依赖解析、虚拟环境、打包、项目管理。
  • 兼容 pip:支持直接用 requirements.txtpyproject.toml
  • 无缝切换:可以直接替代 pip,无需改动现有项目。

平时一直都用conda,这次突然遇到uv,一下子又被打蒙了。踩了好几个坑之后,正确的操作方式如下。

首先是安装UV:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex

然后修改pyproject.toml文件:

image-20250909200432501

这里主要是为了适配50系列显卡,同时注释掉deepspeed,保证能顺利安装。

主要修改的是Python版本改为3.12,numba改为0.59,然后添加了einops和gradio。

然后执行命令:

uv python install 3.12  #安装Python 3.12

uv python pin 3.12 #指定Python版本

uv venv --python 3.12 #创建虚拟环境

uv lock --upgrade #更新
uv sync --frozen #安装

执行完上面的命令,等待就可以了。安装需要一些时间,单一个torch就有3G左右。

3.下载模型

依赖安装成功之后,基本上安装部分就完成了,接下来就是获取模型了。 获取模型可以通过以下命令完成。

国外huggingface-cli:

uv tool install "huggingface_hub[cli]"

hf download IndexTeam/IndexTTS-2 --local-dir=checkpoints

国内modelscope:

uv tool install "modelscope"

modelscope download --model IndexTeam/IndexTTS-2 --local_dir checkpoints

这一步应该没啥问题,就是等待为主。所有模型加起来也有10来个G左右。

4.运行WebUI

经过上面的步骤,就万事俱备了。

最后,检查一下运行环境:

uv run tools/gpu_check.py

输出信息大致如下:

PyTorch: NVIDIA CUDA is available!
Number of GPUs found: 1
GPU 0: "NVIDIA GeForce RTX 5060 Ti"

从输出中可以看到,CUDA可用,GPU也找到了,显卡型号也显示正常。

最后运行WebUI:

uv run webui.py

运行过程会提示DeepSpeed加载失败,以及Failed to load custom CUDA kernel for BigVGAN,这个可以先不管,能跑起来就可以了!

然后会自动下载一个模型文件。

最终就会出现Running on local URL: http://0.0.0.0:7860 的提示了。

这个时候只要在浏览器输入http://localhost:7860就可以打开了。

5.声音克隆

成功运行WebUI,打开之后就可以看到如下的界面了。

QQ20250909-191106

这个界面构成非常简单。只要简单三部,就可以克隆声音了。

首先是上传一段参考声音(克隆对象),

然后输入要合成的文本,

最后点击生成语音就可以了。

一句话大概十几秒的样子!

IndexTTS2除了完成常规的声音克隆之外,还提供了多种情感控制方式

image-20250909204201528

主要提供了四种控制方式,分别是:与音色参考音频相同,使用情感参考音频,使用情感向量控制,使用情感描述文本控制。

每种方式都有它自己的参数。

另外这个页面提供了12个例子,分别展示了基础功能和情感控制功能。

image-20250909204224548

例子1-6为基础的声音克隆,7-12展示了不同类型的情感控制方式。

其中第一个和第二个就是官方例子中《让子弹飞》和《甄嬛传》视频翻译的例子。简单测试来看,官方给的前面几个例子表现都是很不错的,后面的情感控制,由于情绪变化比较大,音色的相似度会减弱。虽然相似度减弱,但是情绪很饱满。

今天只能赶出这部分了,一键运行包稍后!

 

小尾巴==========================
公众号:托尼不是塔克
交流群
知识星球
==============================

 



发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注