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就能直接跑起来了!

相关推荐
吠品14 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
XMAIPC_Robot14 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
AOwhisky15 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
重生的黑客15 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice
Urbano15 小时前
夹克与商务单西口袋工序自动化技改研究报告
运维·自动化
骑上单车去旅行16 小时前
MD5校验对比脚本
linux·服务器·windows
平生幻16 小时前
Linux 常用命令
linux
期待着201316 小时前
docker 安装 ,在centos7.9
运维·docker·容器
踏月的造梦星球16 小时前
DM8 DSC 单机双实例部署
运维·开发语言·数据库
MXsoft61817 小时前
平台化是智能运维发展的必然趋势吗?
运维