Windows/Linux离线部署IndexTTS2

其实按照官方的流程安装也能成功,只不过我这里简单说一下windows和linux安装的区别,并且在离线情况下如何部署IndexTTS2。

官方链接:index-tts/docs/README_zh.md at main · index-tts/index-tts

一、在线部署

1、uv安装

如果你用windows,并且使用官方推荐的uv进行安装,只需要注意的是使用--extra webui

bash 复制代码
uv sync --extra webui --default-index "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"

linux环境使用全部功能--all-extras

bash 复制代码
uv sync --all-extras --default-index "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"

模型安装推荐直接使用modelscope,因为在运行时也会自动连接huggingface下载一些小模型所以建议先配置好HF镜像源

windows使用

bash 复制代码
set HF_ENDPOINT="https://hf-mirror.com"

linux使用

bash 复制代码
export HF_ENDPOINT="https://hf-mirror.com"

2、conda / pip 安装

如果不想使用uv,而是选择conda或者pip也可以,主要就是将pyproject.toml文件中需要安装的库和版本提取出来,生成一个requirements.txt,使用pip安装就行,可以参考:

bash 复制代码
accelerate==1.8.1
cn2an==0.5.22
cython==3.0.7
descript-audiotools==0.7.2
ffmpeg-python==0.2.0
g2p-en==2.1.0
jieba==0.42.1
json5==0.10.0
keras==2.9.0
librosa==0.10.2.post1
matplotlib==3.8.2
modelscope==1.27.0
munch==4.0.0
numba==0.58.1
numpy==1.26.2
omegaconf>=2.3.0
opencv-python==4.9.0.80
pandas==2.3.2
safetensors==0.5.2
sentencepiece>=0.2.1
tensorboard==2.9.1
textstat>=0.7.10
tokenizers==0.21.0
torch==2.8.*
torchaudio==2.8.*
tqdm>=4.67.1
transformers==4.52.1
gradio>=5.44.1
einops==0.8.1

wetext>=0.0.9
WeTextProcessing

模型安装和上面一样

二、离线安装

如果你需要部署到一个没有网络的服务器上,你就需要提前下载好所有模型,并且将代码中的所有HF下载和加载模型的路径改为本地路径才可以。

环境就推荐直接使用conda+pip的形式配置。

1、模型下载

下面是项目中模型的下载方式,除了IndexTeam/IndexTTS-2都需要在HF上下载

bash 复制代码
# ==== download IndexTTS-2 =====
modelscope download --model IndexTeam/IndexTTS-2             --local_dir /home/users/models/IndexTeam/IndexTTS-2
sed -ri 's# "nvidia/bigvgan_v2_22khz_80band_256x"# "/home/users/models/nvidia/bigvgan_v2_22khz_80band_256x"#g' /home/users/models/IndexTeam/IndexTTS-2/config.yaml
# modelscope download --model IndexTeam/IndexTTS-1.5         --local_dir /home/users/models/IndexTeam/IndexTTS-1.5
# modelscope download --model IndexTeam/Index-TTS            --local_dir /home/users/models/IndexTeam/Index-TTS

# ==== download https://huggingface.co/facebook/w2v-bert-2.0 into models/facebook/w2v-bert-v2.0 =====
hf download facebook/w2v-bert-2.0                            --local-dir /home/users/models/facebook/w2v-bert-2.0
hf download amphion/MaskGCT semantic_codec/model.safetensors --local-dir /home/users/models/amphion/MaskGCT
hf download funasr/campplus                                  --local-dir /home/users/models/funasr/campplus
hf download nvidia/bigvgan_v2_22khz_80band_256x bigvgan_generator.pt config.json --local-dir /home/users/models/nvidia/bigvgan_v2_22khz_80band_256x
hf download Plachta/JDCnet bst.t7                            --local-dir /home/users/models/Plachta/JDCnet

如果你的网络下载huggingface上的模型速度很慢,那也可以使用modelscope替代。以下就是modelscope上IndexTTS2所需要的所有模型。

bash 复制代码
modelscope download --model IndexTeam/IndexTTS-2 --local_dir checkpoints
modelscope download --model facebook/w2v-bert-2.0 --local_dir models/facebook/w2v-bert-2.0
modelscope download --model amphion/MaskGCT semantic_codec/model.safetensors --local_dir models/amphion/MaskGCT
modelscope download --model iic/speech_campplus_sv_zh-cn_16k-common campplus_cn_common.bin --local_dir models/iic/speech_campplus_sv_zh-cn_16k-common
modelscope download --model nv-community/bigvgan_v2_22khz_80band_256x bigvgan_generator.pt --local_dir models/nv-community/bigvgan_v2_22khz_80band_256x
modelscope download --model nv-community/bigvgan_v2_22khz_80band_256x config.json --local_dir models/nv-community/bigvgan_v2_22khz_80band_256x

2、代码修改

由于项目中有许多连接HF下载模型的代码,所以我们需要将其改成我们自己的模型路径(除了IndexTeam/IndexTTS-2),其中所有需要的模型都可以通过上面这几个modelscope命令下载。

(1)from_pretrained()路径修改

首先自己在vscode中搜索模型路径,比如facebook/w2v-bert-2.0,

将里面的路径替换成模型的绝对路径,比如/home/user/indextts/models/facebook/w2v-bert-2.0

(2)hf_hub_download()替换成os.path.join()

搜索funasr/campplus会发现有hf_hub_download()函数,这时候我们就要将其替换成os.path.join()

(3)checkpoints\config.yaml文件修改

nvidia/bigvgan_v2_22khz_80band_256x模型是用config.yaml文件中的vocoder.name加载的,所以需要修改配置文件

将模型路径改为绝对路径就好了

环境配置好、模型下载好、文件改好之后就直接运行python webui.py就能直接跑起来了!

相关推荐
DeeplyMind5 分钟前
Linux 内核补丁提交(Upstream)完整指南
linux·upstream
三道渊8 分钟前
Linux进程通信与信号处理全解析
linux·服务器·网络
AI_Claude_code10 分钟前
ZLibrary访问困境方案六:自建RSS/Calibre内容同步服务器的完整指南
运维·服务器·网络·爬虫·python·tcp/ip·http
Java后端的Ai之路11 分钟前
sudo 命令详解:Linux 权限管理的“万能钥匙“
linux·运维·服务器·sudo
AI_零食12 分钟前
开源鸿蒙跨平台Flutter开发:生日纪念日提醒应用
运维·flutter·开源·harmonyos·鸿蒙
ID_1800790547313 分钟前
Python解析小红书(XHS)笔记评论 API,json数据返回参考
java·服务器·数据库
努力努力再努力wz14 分钟前
【C++高阶系列】告别内查找局限:基于磁盘 I/O 视角的 B 树深度剖析与 C++ 泛型实现!(附B树实现源码)
java·linux·开发语言·数据结构·c++·b树·算法
mhkxbq21 分钟前
昆仑G5580、G5680 V2、G2280及泰山鲲鹏200,AI大数据优选服务器
大数据·服务器·人工智能
艾莉丝努力练剑29 分钟前
【QT】Qt常用控件与布局管理深度解析:从原理到实践的架构思考
linux·运维·服务器·开发语言·网络·qt·架构
以太浮标30 分钟前
华为eNSP模拟器综合实验之- WLAN瘦AP配置实战案例详解
运维·网络·网络协议·华为·智能路由器·信息与通信