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

相关推荐
..空空的人1 小时前
C++基于protobuf实现仿RabbitMQ消息队列---技术认识1
服务器·网络·个人开发·protobuf·muduo
番茄灭世神1 小时前
升级新版arm-none-eabi-gcc的方法
linux·运维·arm开发
ylmzfun1 小时前
CI/CD技术全景解析:从理念到高效落地的自动化流水线
运维·ci/cd·自动化
hjs_deeplearning1 小时前
应用篇#4:Qwen2视觉语言模型(VLM)的服务器部署
服务器·人工智能·python·深度学习·语言模型
Ronin3051 小时前
【Linux网络】数据链路层
linux·网络·数据链路层·arp协议·局域网通信
Aze..1 小时前
PVE安装 Ubuntu 服务器版
运维·服务器·数据库
zt1985q2 小时前
fnOS 飞牛云 NAS 本地部署开源 TTS 文本转语音工具 EasyVoice 并实现外部访问
运维·服务器·网络协议·开源
TroubleBoy丶2 小时前
Docker可用镜像
java·linux·jvm·docker
java_logo2 小时前
PGADMIN4 Docker 容器化部署指南
运维·数据库·docker·postgresql·容器·数据库系统