Featured image of post B站开源 IndexTTS2 部署和使用

B站开源 IndexTTS2 部署和使用

IndexTTS2 相对于上一个版本有了显著的提升,在情感表达和时长控制的自回归零样本文本转语音的突破

B站开源 IndexTTS2 部署和使用

IndexTTS2 相对于上一个版本有了显著的提升,官方上写的是情感表达和时长控制的自回归零样本文本转语音的突破。

此外,IndexTTS2 实现了情感表达与说话者身份的分离,从而能够独立控制音色和情感。在零样本设置下,该模型可以准确地重建目标音色(来自音色提示),同时完美地再现指定的情感基调(来自风格提示)

克隆仓库

1
git clone https://github.com/index-tts/index-tts.git && cd index-tts

关于 LFS

目前官方提供的 LFS 额度不够,所以不能够正常下载 demo 中的文件,只影响到 demo 的运行,如果有需要可以单独下载

https://drive.google.com/file/d/1o_dCMzwjaA2azbGOxAE7-4E7NbJkgdgO/view

安装依赖

使用 uv 包管理器进行安装

1
2
3
4
# 创建 python 3.10 虚拟环境
uv venv --python 3.10
# 激活虚拟环境
source .venv/bin/activate

安装 WebUI 支持

1
2
3
uv sync --extra webui
# 也可以指定国内镜像加速
uv sync --extra webui --default-index "https://mirrors.aliyun.com/pypi/simple"

可选功能:

  • --all-extras:安装全部可选功能。可去除自定义。
  • --extra webui:安装WebUI支持(推荐)。
  • --extra deepspeed:安装 DeepSpeed 加速。

如果使用 deepspeed 可能会提示错误:

1
2
3
4
5
6
7
8
  × Failed to build `deepspeed==0.17.1`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `setuptools.build_meta:__legacy__.build_wheel` failed (exit status: 1)

      [stderr]
      Traceback (most recent call last):
        File "<string>", line 8, in <module>
      ModuleNotFoundError: No module named 'setuptools'

可以在虚拟环境中,先安装构建依赖:

1
uv pip install setuptools wheel

然后再单独安装 deepspeed

1
uv pip install deepspeed==0.17.1

如遇 CUDA 相关报错,请确保已安装 NVIDIA CUDA Toolkit 12.8及以上。

下载模型

HuggingFace 下载:

1
2
3
uv tool install "huggingface_hub[cli]"

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

ModelScope 下载:

1
2
3
uv tool install "modelscope"

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

项目首次运行还会自动下载部分小模型。如网络访问 HuggingFace 较慢,建议提前设置:

1
export HF_ENDPOINT="https://hf-mirror.com"

PyTorch GPU 加速检测

可运行脚本检测机器是否有 GPU,以及是否安装了 GPU 版本的 PyTorch。(如 PyTorch 版本不对,可能使用 CPU 启动,推理会非常慢)

1
uv run tools/gpu_check.py

输出 PyTorch: NVIDIA CUDA / AMD ROCm is available! 代码可启用 GPU

1
2
3
4
5
6
7
8
9
Scanning for PyTorch hardware acceleration devices...

PyTorch: NVIDIA CUDA / AMD ROCm is available!
  * Number of CUDA devices found: 1
  * Device 0: "Tesla T4"
PyTorch: No devices found for Intel XPU backend.
PyTorch: No devices found for Apple MPS backend.

Hardware acceleration detected. Your system is ready!

启动项目

1
uv run webui.py

浏览器访问 http://127.0.0.1:7860 查看演示

效果

index_tts2_10.png

  • 1 位置上传一段克隆的音频
  • 2 位置输入要合成的文本,点击生成语音
  • 3 播放音频,并提供下载

使用

使用官方的 demo 音频

使用以下的文本进行测试

index_tts2_11.png

合成后的音频,效果还挺不错的,有停顿,有抑扬顿挫的感觉

IndexTTS2 这次新增了四种情感控制方式,可以实现音色与情感的独立控制。

  1. 与音色参考音频相同(默认):默认的方式,直接使用你上传的音色参考音频中所包含的情感特征。
  2. 使用情感参考音频:上传一段包含目标情感的音频作为参考,模型会提取该音频的情感特征来生成语音 。
  3. 使用情感向量控制:通过输入特定的情感参数来直接控制生成语音的情感倾向。
  4. 使用情感描述文本控制:可直接指定8维情感向量 [高兴, 愤怒, 悲伤, 害怕, 厌恶, 忧郁, 惊讶, 平静] ,输入通过文本描述,来引导模型生成具有相应情感倾向的语音 。

index_tts2_12.png

但是调整后会发现可能跟原音色会有些差别,大家可以尝试一下不同的情感变化

Licensed under CC BY-NC-SA 4.0
本博客所有内容无特殊标注均为大卷学长原创内容,复制请保留原文出处。
Built with Hugo
Theme Stack designed by Jimmy