Background
5373 字
27 分钟
IndexTTS-2 本地部署指南
NOTE

本文旨在向你介绍如何在具备NIVIDIA GPUWindows系统的计算机上部署 IndexTTS-2 模型(包含通过WSL部署)

TIP

本文使用 AI 辅助翻译,其余部分100%由人类编写

这篇文章非常长,请耐心阅读

CAUTION

以下步骤必须严格遵守,否则报错会让你崩溃(别问我怎么知道的),所有软件的安装位置请自行决定,建议安装到除 C 盘以外的磁盘

如有条件(希望您的Windows版本不是家庭版),建议你通过WSL部署(Windows系统兼容性堪忧),点击这里跳转到WSL部署(强烈推荐)

安装 UV#

什么是 UV

uv 是由 Astral 公司开发的一款 Rust 编写的 Python 包管理器和环境管理器,它的主要目标是提供比现有工具快 10-100 倍的性能,同时保持简单直观的用户体验。

uv 可以替代 pip、virtualenv、pip-tools 等工具,提供依赖管理、虚拟环境创建、Python 版本管理等一站式服务。

astral-sh
/
uv
Waiting for api.github.com...
00K
0K
0K
Waiting...

更改 UV 安装位置(建议)#

UV 又是一个默认安装在 C 盘的小软件……这里建议通过PowerShell独立安装而不是通过pip安装,方便全局使用

官方给的安装命令是这样的:

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

略做修改:

PowerShell
powershell -ExecutionPolicy ByPass -c {$env:UV_INSTALL_DIR = "D:\uv";irm https://astral.sh/uv/install.ps1 | iex}

D:\uv改为你实际需要安装的位置

类似输出:

PowerShell
PS C:\Users\Admin> powershell -ExecutionPolicy ByPass -c {$env:UV_INSTALL_DIR = "D:\uv";irm https://astral.sh/uv/install.ps1 | iex}
Downloading uv 0.10.4 (x86_64-pc-windows-msvc)
Installing to D:\uv
uv.exe
uvx.exe
uvw.exe
everything's installed!
To add D:\uv to your PATH, either restart your shell or run:
set Path=D:\uv;%Path% (cmd)
$env:Path = "D:\uv;$env:Path" (powershell)

添加环境变量#

终端中输出的指令(如下)执行后只对当前会话有效,永久修改环境变量的命令有点长,还不如手动添加

PowerShell
To add D:\uv to your PATH, either restart your shell or run:
set Path=D:\uv;%Path% (cmd)
$env:Path = "D:\uv;$env:Path" (powershell)

D:\uv添加到系统Path环境变量里,接下来是指定文件保存位置:

变量名变量值
UV_CACHE_DIRD:\uv\cache
UV_TOOL_DIRD:\uv\tools
UV_PYTHON_INSTALL_DIRD:\uv\python

重启终端,依次执行

PowerShell
uv --version
PowerShell
uv python dir
PowerShell
uv cache dir
PowerShell
uv tool dir

验证安装以及目录更改是否成功,输出示例:

PowerShell
PS C:\Users\Admin> uv --version
uv 0.10.4 (079e3fd05 2026-02-17)
PS C:\Users\Admin> uv python dir
D:\uv\python
PS C:\Users\Admin> uv cache dir
D:\uv\cache
PS C:\Users\Admin> uv tool dir
D:\uv\tools

安装 Git#

什么是 Git

Git 是一个免费且开源的分布式版本控制系统,旨在快速高效地处理从小型到非常大型的项目,官网:https://git-scm.com

什么是 Git LFS

GGit LFS(Git Large File Storage)是一个用于用 Git 管理大型文件的命令行扩展和规范,官网:https://git-lfs.com

NOTE

目前Git LFS已经集成在了Git for Windows中,直接下载和使用最新版本的 Windows Git 即可,当然,你如果想单独安装Git LFS也是可以的

git
/
git
Waiting for api.github.com...
00K
0K
0K
Waiting...
git-for-windows
/
git
Waiting for api.github.com...
00K
0K
0K
Waiting...
git-lfs
/
git-lfs
Waiting for api.github.com...
00K
0K
0K
Waiting...

对于 Windows ,直接去https://gitforwindows.org下载Git for Windows,注意,软件是从GitHub下载的,请确保您的网络环境可以稳定访问GitHubGit for Windows的安装设置略微有点儿麻烦,由于我已事先安装过了,为了写这个教程,我把Git卸载重装了🤣(安装的Git版本是2.53.0不同版本的安装界可能有所不同

TIP

以下内容使用 AI 辅助翻译,内容仅供参考,不保证翻译的准确性

01 许可文本#

直接点击 Next

02 选择安装位置,根据实际情况修改或不修改#

03 请选择要安装的组件#

(根据实际情况选择,我是全选的)

  • 附加图标
    • 在桌面上
  • Windows 文件资源管理器集成
    • 在此处打开 Git Bash
    • 在此处打开 Git GUI
  • Git LFS(大文件支持)
  • 将 .git* 配置文件与默认文本编辑器关联
  • 将 .sh 文件关联到 Bash 运行
  • 每日检查 Git for Windows 更新
  • 将 Git Bash 配置文件添加到 Windows 终端
  • Scalar(用于管理大规模仓库的 Git 插件)

04 开始菜单的快捷方式文件夹#

保持默认即可

05 选择 Git 使用的默认编辑器#

由于我使用Visual Studio Code,所以我选择这个,你可以根据实际情况选择

06 调整新仓库中初始分支的名称#

(建议保持默认)

您希望 Git 在执行“git init”后将初始分支命名为什么?

让 Git 决定

让 Git 对新创建的仓库使用其默认分支名称(当前为:“master”)作为初始分支。

覆盖新仓库的默认分支名称 许多团队已经重命名了他们的默认分支;常见的选择是“main”、“trunk”和“development”。指定“git init”应使用的初始分支名称:

main

此设置不影响现有仓库。

07 调整 PATH 环境#

(选择推荐项)

您希望如何从命令行使用 Git?

仅从 Git Bash 使用 Git

这是最谨慎的选择,因为您的 PATH 将完全不会被修改。您将只能从 Git Bash 中使用 Git 命令行工具。

从命令行以及第三方软件中使用 Git

(推荐)此选项仅将一些最小的 Git 包装器添加到您的 PATH 中,以避免使用可选的 Unix 工具污染您的环境。您将能够从 Git Bash、命令提示符和 Windows PowerShell 以及任何在 PATH 中寻找 Git 的第三方软件中使用 Git。

从命令提示符中使用 Git 和可选的 Unix 工具

Git 和可选的 Unix 工具都将被添加到您的 PATH 中。

警告:这将覆盖 Windows 工具,例如“find”和“sort”。仅在您了解其影响的情况下使用此选项。

08 选择 SSH 可执行文件#

(建议保持默认)

您希望 Git 使用哪个 Secure Shell 客户端程序?

使用捆绑的 OpenSSH

这将使用 Git 自带的 ssh.exe。

使用外部的 OpenSSH

这将使用外部的 ssh.exe。Git 不会安装自己的 OpenSSH(及相关)二进制文件,而是使用在 PATH 中找到的它们。

09 选择 HTTPS 传输后端#

(建议保持默认)

您希望 Git 使用哪个 SSL/TLS 库进行 HTTPS 连接?

使用 OpenSSL 库

服务器证书将使用 ca-bundle.crt 文件进行验证。

使用本机 Windows Secure Channel 库

服务器证书将使用 Windows 证书存储进行验证。 此选项还允许您使用公司内部根 CA 证书,例如通过 Active Directory 域服务分发的证书。

10 配置行尾转换#

(建议保持默认)

Git 应如何处理文本文件中的行尾?

按 Windows 风格检出,提交 Unix 风格的行尾

Git 在检出文本文件时会将 LF 转换为 CRLF。在提交文本文件时,CRLF 会被转换为 LF。对于跨平台项目,这是在 Windows 上的推荐设置(“core.autocrlf”设置为“true”)。

按原样检出,提交 Unix 风格的行尾

Git 在检出文本文件时不执行任何转换。在提交文本文件时,CRLF 会被转换为 LF。对于跨平台项目,这是在 Unix 上的推荐设置(“core.autocrlf”设置为“input”)。

按原样检出,按原样提交

Git 在检出或提交文本文件时不执行任何转换。对于跨平台项目,不建议选择此选项(“core.autocrlf”设置为“false”)。

11 配置与 Git Bash 一起使用的终端模拟器#

(建议保持默认)

您想将哪个终端模拟器与 Git Bash 一起使用?

使用 MinTTY(MSYS2 的默认终端) Git Bash 将使用 MinTTY 作为终端模拟器,它具有可调整大小的窗口、非矩形选择和 Unicode 字体。Windows 控制台程序(如交互式 Python)必须通过 winpty 启动才能在 MinTTY 中工作。

使用 Windows 的默认控制台窗口

Git 将使用 Windows 的默认控制台窗口(“cmd.exe”),它能很好地与 Win32 控制台程序(如交互式 Python 或 node.js)配合使用,但默认回滚非常有限,需要配置为使用 Unicode 字体才能正确显示非 ASCII 字符,并且在 Windows 10 之前,其窗口无法自由调整大小,且仅允许矩形文本选择。

12 选择 git pull 的默认行为#

(建议保持默认)

默认情况下 git pull 应该做什么?

快进或合并

尽可能快进当前分支到获取的分支,否则创建一个合并提交。

变基

将当前分支变基到获取的分支。如果没有要变基的本地提交,这等同于快进。

仅快进

快进到获取的分支。如果不可能则失败。这是 git pull 的标准行为。

13 选择凭据助手#

(建议保持默认)

应配置哪个凭据助手?

Git Credential Manager

使用跨平台的 Git Credential Manager。 在此处查看有关 Git Credential Manager 未来的更多信息。

不使用凭据助手。

14 配置额外选项#

(建议保持默认)

您希望启用哪些功能?

启用文件系统缓存

对于某些操作,文件系统数据将被批量读取并缓存在内存中(“core.fscache”设置为“true”)。这提供了显著的性能提升。

启用符号链接

启用符号链接(需要 SeCreateSymbolicLink 权限)。请注意,现有仓库不受此设置影响。

点击Install等待完成即可

(呼~好累啊……

部署 IndexTTS-2#

IndexTTS-2 是什么

IndexTTS-2 是哔哩哔哩发布的一款支持情感表达与时长可控的自回归零样本开源语音合成模型,能够在零样本条件下精准复刻音色,并独立控制情感,实现高自然度与高同步性的语音生成。

index-tts
/
index-tts
Waiting for api.github.com...
00K
0K
0K
Waiting...
NOTE

以下内容改编自IndexTTS-2GitHub仓库说明文档

Help

遇到报错怎么办?文章末尾加入了一些我遇到的问题以及具体解决方法,或者,点击这里跳转到WSL部署(强烈推荐)

1 在仓库中启用Git-LFS#

PowerShell
git lfs install

2 下载代码#

依次执行:

PowerShell
git clone https://github.com/index-tts/index-tts.git
NOTE

此处git clone会报错,缺失的是example文件夹下的演示文件,不影响使用,如有需要,请前往https://github.com/index-tts/index-tts下载

PowerShell
cd index-tts
PowerShell
git lfs pull # 下载大文件
TIP

在 Git Clone 命令后附加文件夹名称IndexTTS-2可将文件保存到IndexTTS-2目录下

PowerShell
git clone https://github.com/index-tts/index-tts.git IndexTTS-2
PowerShell
cd IndexTTS-2
PowerShell
git lfs pull # 下载大文件

3 安装依赖#

WARNING

请确保已安装NVIDIA CUDA Toolkit 12.8及以上。

DeepSpeed在部分Windows环境较难安装(比如我的电脑……悲🥲)

使用uv安装依赖时,会自动创建虚拟环境,将所有依赖安装到.venv目录:

Linux:

PowerShell
uv sync --all-extras

Windows(推荐):

PowerShell
uv sync --extra webui

如果PyPI 官方源https://pypi.org/simple)下载缓慢,建议通过南京大学开源镜像站下载:

PowerShell
uv sync --all-extras --default-index "https://mirror.nju.edu.cn/pypi/web/simple"
TIP

可选功能:

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

清理UV下载缓存

PowerShell
uv cache clean

4 下载模型#

NOTE

项目首次运行会自动下载部分小模型,由于中国大陆无法访问HuggingFace,需要提前设置临时环境变量:

PowerShell

PowerShell
$env:HF_ENDPOINT="https://hf-mirror.com"

CMD

PowerShell
set HF_ENDPOINT=https://hf-mirror.com

如果想要永久化的话,你也可以在系统中添加名为HF_ENDPOINT的环境变量,只要确保其值为https://hf-mirror.com(这是HuggingFace的镜像站)即可解决网络问题

使用HuggingFace镜像站

PowerShell
$env:HF_ENDPOINT="https://hf-mirror.com"

下载模型

PowerShell
uv tool install "huggingface-hub[cli,hf_xet]"
PowerShell
hf download IndexTeam/IndexTTS-2 --local-dir=checkpoints

PyTorch GPU 加速检测#

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

PowerShell
uv run tools/gpu_check.py

Web演示#

PowerShell
uv run webui.py

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

可通过命令行参数开启FP16 推理(降低显存占用)、DeepSpeed 加速CUDA 内核编译加速等。可运行以下命令查看所有选项:

PowerShell
uv run webui.py -h

快速启动#

如果你觉得每次启动都要手动输命令很麻烦,你可以自己写一个一键启动的批处理脚本:

PowerShell
uv run webui.py

你可以在后面加上允许的参数,就像uv run webui.py --fp16 --cuda_kernel这样,将命令复制下来另存为一个bat批处理脚本文件,例如go-webui.bat,放在与webui.py相同的目录内,以后每次启动都运行这个批处理脚本即可(虽然这毫无技术含量🤣)

报错了?#

页面文件过小?#

如果遇到页面文件过小的错误,请手动设置页面文件的大小,直到不再报错为止。

DeepSpeed 报错?#

LINK : fatal error LNK1181: 无法打开输入文件“aio.lib”

LINK : fatal error LNK1181: 无法打开输入文件“cufile.lib”

…………

请使用Linux操作系统部署IndexTTS-2……毕竟DeepSpeed是为Linux设计的

WSL 部署#

WSL是什么?

适用于 Windows 的 Linux 子系统(WSL)是Windows操作系统的一项功能,它使您能够在Windows上直接运行Linux文件系统,以及Linux命令行工具和图形界面应用程序,同时与传统的Windows桌面和应用程序并存。

为什么不使用Hyper-V创建完整虚拟机?

答:也可以,但是Hyper-V资源占用太大,操作比较麻烦,而WSL轻量级的且与Windows无缝集成

Windows Subsystem for Linux 文档 - Microsoft Learn

WSL 的基本命令 - Microsoft Learn

安装 WSL2#

管理员身份运行PowerShell并执行:

PowerShell
wsl --install
TIP

请确保网络稳定,以免像这样遇到403 错误

PowerShell
PS C:\Users\Admin> wsl --install
已禁止(403)。

设置WSL默认版本为WSL2(通常不需要操作,默认安装的应该就是WSL2

PowerShell
wsl --set-default-version 2
NOTE

默认情况下,已安装的 Linux 分发版将为 Ubuntu(目前是Ubuntu 24.04.4 LTS

PowerShell
PS C:\Users\Admin> wsl --install
正在下载: 适用于 Linux Windows 子系统 2.6.3
正在安装: 适用于 Linux Windows 子系统 2.6.3
已安装 适用于 Linux Windows 子系统 2.6.3。
操作成功完成。
正在下载: Ubuntu
正在安装: Ubuntu
已成功安装分发。可以通过 “wsl.exe -d Ubuntu” 启动它
正在启动 Ubuntu...
Provisioning the new WSL instance Ubuntu
This might take a while...
Create a default Unix user account: # 在此处输入你的用户名,有效的用户名必须以小写字母或下划线开头,可以包含小写字母、数字、下划线和破折号。
New password: # 在此处输入密码,注意,密码文本不会显示
Retype new password: # 再次输入密码
passwd: password updated successfully
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

更改安装位置#

WSL 安装的 Linux 发行版默认位置为

Terminal window
"C:\Users\你的用户名\AppData\Local\wsl"

这些东西全丢 C 盘,时间久了,C 盘空间不得“爆炸”嘛……

列出发行版

PowerShell
wsl --list --all

你应该会看到类似的输出:

PowerShell
PS C:\Users\Admin> wsl --list --all
适用于 Linux Windows 子系统分发:
Ubuntu (默认值)

终止 WSL 进程

PowerShell
wsl --shutdown

执行迁移

PowerShell
wsl --manage <发行版名称> --move <目标路径>

例如,我可以这样写:

PowerShell
wsl --manage Ubuntu --move "E:\WSL\Ubuntu"

这将会把Ubuntuext4.vhdx虚拟磁盘文件移动到E:\WSL\Ubuntu目录下

安装依赖#

Git是内置的,我们接下来安装Git LFSUVCUDA以及cuDNN

1 安装Git LFS

添加 packagecloud 仓库

WSL
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash

类似输出:

WSL
admin@Windows11:/mnt/c/Users/Admin$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
[sudo] password for admin: # 在这里输入你的密码
Detected operating system as Ubuntu/noble.
Checking for curl...
Detected curl...
Checking for gpg...
Detected gpg...
Detected apt version as 2.8.3
Running apt-get update... done.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/github_git-lfs.list...done.
Importing packagecloud gpg key... Packagecloud gpg key imported to /etc/apt/keyrings/github_git-lfs-archive-keyring.gpg
done.
Running apt-get update... done.
The repository is setup! You can now install packages.

安装软件包

WSL
sudo apt-get install git-lfs

类似输出:

WSL
admin@Windows11:/mnt/c/Users/Admin$ sudo apt-get install git-lfs
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
git-lfs
0 upgraded, 1 newly installed, 0 to remove and 9 not upgraded.
Need to get 8927 kB of archives.
After this operation, 19.2 MB of additional disk space will be used.
Get:1 https://packagecloud.io/github/git-lfs/ubuntu noble/main amd64 git-lfs amd64 3.7.1 [8927 kB]
Fetched 8927 kB in 9s (973 kB/s)
Selecting previously unselected package git-lfs.
(Reading database ... 40809 files and directories currently installed.)
Preparing to unpack .../git-lfs_3.7.1_amd64.deb ...
Unpacking git-lfs (3.7.1) ...
Setting up git-lfs (3.7.1) ...
Git LFS initialized.
Processing triggers for man-db (2.12.0-4build2) ...

2 安装UV

WSL
curl -LsSf https://astral.sh/uv/install.sh | sh

类似输出:

WSL
admin@Windows11:/mnt/c/Users/Admin$ curl -LsSf https://astral.sh/uv/install.sh | sh
downloading uv 0.10.4 x86_64-unknown-linux-gnu
no checksums to verify
installing to /home/admin/.local/bin
uv
uvx
everything's installed!
To add $HOME/.local/bin to your PATH, either restart your shell or run:
source $HOME/.local/bin/env (sh, bash, zsh)
source $HOME/.local/bin/env.fish (fish)

配置环境变量(写入Shell配置文件):

WSL
echo 'source $HOME/.local/bin/env' >> ~/.bashrc

重新加载配置文件:

WSL
source ~/.bashrc

3 安装CUDA Toolkit 12.8

警告

不需要WSL里面安装NVIDIA GPU 驱动程序

依次执行:

命令来源:CUDA Toolkit 12.8 Downloads | NVIDIA Developer

文件较大,请确保网络连接通畅

更换当前目录(为什么?因为这个目录是用户文件夹,能直接从Windows 文件资源管理器进入,方便操作):

WSL
cd /home/admin
WSL
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
WSL
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
WSL
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-wsl-ubuntu-12-8-local_12.8.0-1_amd64.deb
WSL
sudo dpkg -i cuda-repo-wsl-ubuntu-12-8-local_12.8.0-1_amd64.deb
WSL
sudo cp /var/cuda-repo-wsl-ubuntu-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
WSL
sudo apt-get update
WSL
sudo apt-get -y install cuda-toolkit-12-8

配置环境变量(写入Shell配置文件):

WSL
echo 'export PATH=/usr/local/cuda-12.8/bin:$PATH' >> ~/.bashrc
WSL
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc

重新加载配置文件:

WSL
source ~/.bashrc

4 安装cuDNN

依次执行:

命令来源:cuDNN 9.19.0 Downloads | NVIDIA Developer

文件较大,请确保网络连接通畅

更换当前目录(若已在此目录中请忽略)

WSL
cd /home/admin
WSL
wget https://developer.download.nvidia.com/compute/cudnn/9.19.0/local_installers/cudnn-local-repo-ubuntu2404-9.19.0_1.0-1_amd64.deb
WSL
sudo dpkg -i cudnn-local-repo-ubuntu2404-9.19.0_1.0-1_amd64.deb

类似输出:

WSL
admin@Windows11-Admin:~$ sudo dpkg -i cudnn-local-repo-ubuntu2404-9.19.0_1.0-1_amd64.deb
[sudo] password for admin:
Selecting previously unselected package cudnn-local-repo-ubuntu2404-9.19.0.
(Reading database ... 54611 files and directories currently installed.)
Preparing to unpack cudnn-local-repo-ubuntu2404-9.19.0_1.0-1_amd64.deb ...
Unpacking cudnn-local-repo-ubuntu2404-9.19.0 (1.0-1) ...
Setting up cudnn-local-repo-ubuntu2404-9.19.0 (1.0-1) ...
The public cudnn-local-repo-ubuntu2404-9.19.0 GPG key does not appear to be installed.
To install the key, run this command:
sudo cp /var/cudnn-local-repo-ubuntu2404-9.19.0/cudnn-local-9EC59F07-keyring.gpg /usr/share/keyrings/ # 执行这里的命令

下面这条命令以上条命令执行后的输出sudo cp /var/cudnn-local-repo-ubuntu2404-9.19.0/cudnn-local-9EC59F07-keyring.gpg /usr/share/keyrings/为准:

WSL
sudo cp /var/cudnn-local-repo-ubuntu2404-9.19.0/cudnn-local-9EC59F07-keyring.gpg /usr/share/keyrings/
WSL
sudo apt-get update
WSL
sudo apt-get -y install cudnn9-cuda-12

配置环境变量(写入Shell配置文件):

WSL
echo 'export PATH=/usr/local/cuda-12.8/bin:$PATH' >> ~/.bashrc
WSL
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc

重新加载配置文件:

WSL
source ~/.bashrc

验证安装

WSL
nvcc --version

若输出类似:

WSL
admin@Windows11-Admin:~$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:20:09_PST_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0

则表明安装成功

部署 IndexTTS-2#

更换当前目录(为什么?因为这个目录是用户文件夹,能从Windows 文件资源管理器直接进入,UV也默认安装在这里):

WSL
cd /home/admin

把其中的admin替换为你的实际用户名

1 在仓库中启用Git-LFS

WSL
git lfs install

2 下载代码

依次执行:

WSL
git clone https://github.com/index-tts/index-tts.git IndexTTS-2
NOTE

此处git clone会报错,缺失的是example文件夹下的演示文件,不影响使用,如有需要,请前往https://github.com/index-tts/index-tts下载

WSL
cd IndexTTS-2
WSL
git lfs pull # 下载大文件

安装Python虚拟环境

下载 Python

WSL
uv python install

创建虚拟环境

WSL
uv venv

激活虚拟环境

WSL
source .venv/bin/activate

安装依赖

WSL
uv sync --all-extras

使用HuggingFace镜像站

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

下载模型

WSL
uv tool install "huggingface-hub[cli,hf_xet]"
WSL
hf download IndexTeam/IndexTTS-2 --local-dir=checkpoints
TIP

清理UV下载缓存

WSL
uv cache clean

PyTorch GPU 加速检测

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

WSL
uv run tools/gpu_check.py

Web 演示

WSL
uv run webui.py

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

可通过命令行参数开启FP16 推理(降低显存占用)、DeepSpeed 加速CUDA 内核编译加速等。可运行以下命令查看所有选项:

WSL
uv run webui.py -h

例如,你可以这样启动 Web 演示,这将同时启动FP16 推理DeepSpeed 加速以及CUDA 内核编译加速

WSL
uv run webui.py --fp16 --deepspeed --cuda_kernel

如果你发现 WebUI 的界面是英文的,请修改webui.py文件的第54行

原文:

webui.py
i18n = I18nAuto(language="Auto")

修改:

webui.py
i18n = I18nAuto(language="zh_CN")

这将强制禁用语言检测并将界面语言为简体中文

下一次启动:

启动WSL

PowerShell
wsl

进入IndexTTS-2目录:

WSL
cd ~/IndexTTS-2

(具体目录以你的实际部署情况为准)

WSL
uv run webui.py --fp16 --deepspeed --cuda_kernel

关闭WSL

PowerShell
wsl --shutdown

生成的文件在哪里?#

如图所示(点击放大图片):

压缩虚拟硬盘映像文件#

NOTE

WSL2 的 vhdx 具有动态特性,即当磁盘文件创建时,初始化一个最大的上限容量(默认是 1TB ),当里面数据增加时,vhdx 所占的空间随之增加,直到上限,但当里面的数据被移除时,vhdx 所占的空间并不会随之减小。这导致即使在WSL里删除了文件,也无法即时释放磁盘的存储空间。

参考:如何管理 WSL 磁盘空间 | Microsoft Learn

首先你需要关闭WSL

PowerShell
wsl --shutdown

以管理员身份运行终端

PowerShell
diskpart

类似输出:

PowerShell
Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。
安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\Admin> diskpart
Microsoft DiskPart 版本 10.0.26100.1150
Copyright (C) Microsoft Corporation.
在计算机上: WINDOWS11-ADMIN
DISKPART>

输入并执行:

PowerShell
select vdisk file="<vhdx文件路径>"

例如:

PowerShell
Microsoft DiskPart 版本 10.0.26100.1150
Copyright (C) Microsoft Corporation.
在计算机上: WINDOWS11-ADMIN
DISKPART>select vdisk file="E:\WSL\Ubuntu\ext4.vhdx"
DiskPart 已成功选择虚拟磁盘文件。
DISKPART>

压缩磁盘(依次执行):

PowerShell
attach vdisk readonly
PowerShell
compact vdisk

若遇到报错:

PowerShell
DISKPART> compact vdisk
虚拟磁盘服务错误:
所请求的操作需要以只读方式
连接虚拟磁盘。

则先分离磁盘文件:

PowerShell
detach vdisk

再依次执行以下命令:

PowerShell
attach vdisk readonly
PowerShell
compact vdisk

就像这样:

PowerShell
DISKPART> compact vdisk
虚拟磁盘服务错误:
所请求的操作需要以只读方式
连接虚拟磁盘。
DISKPART> detach vdisk
DiskPart 已成功分离虚拟磁盘文件。
DISKPART> attach vdisk readonly
100 百分比已完成
DiskPart 已成功连接虚拟磁盘文件。

最后你应该看到:

PowerShell
DISKPART> compact vdisk
100 百分比已完成
DiskPart 已成功压缩虚拟磁盘文件。

退出 DiskPart:

PowerShell
detach vdisk
PowerShell
exit

大功告成:

PowerShell
DISKPART> detach vdisk
DiskPart 已成功分离虚拟磁盘文件。
DISKPART> exit
退出 DiskPart...
PS C:\Users\Admin>

此时你再去文件资源管理器里看看,你的磁盘空间应该得到了一定程度的的释放

IndexTTS-2 本地部署指南
https://auspiceshirley.dev/posts/indextts2/
作者
Shirley Auspice
发布于
2026-02-21
许可协议
CC BY-NC-SA 4.0