ok ,那么今天给大家分享一下之前看到过的一个 音频克隆项目
使用体验音色效果没有那么高的效果,不过开源嘛,搞来玩一玩试看看。
源地址: https://github.com/index-tts/index-tts
关于 IndexTTS
IndexTTS 是一个基于 GPT 风格的文本转语音 (TTS) 模型,主要基于 XTTS 和 Tortoise 算法。
它能够通过拼音纠正汉字发音,并通过标点符号控制任意位置的停顿。
我们增强了系统的多个模块,包括改进说话人条件特征表示,并集成 BigVGAN2 以优化音频质量。我们的系统基于数万小时的数据进行训练,达到了最佳性能,超越了目前流行的 TTS 系统,例如 XTTS 、CosyVoice2 、Fish-Speech 和 F5-TTS 。
源项目基于 torch ,
本文实践项目是改用 VLLM 进行的项目 https://github.com/Ksuriuri/index-tts-vllm
vllm 暂不支持 windows 运行,所以需要通过 wsl 虚拟机虚拟 linux 系统
目前 wsl 主力版本为 wsl2 所以我们采用 wsl2
自行开启魔法,以防被 443 拒绝
wsl --install
wsl --install Ubuntu-22.04
安装完往后可以在开始菜单找到并且固定
也可以通过命令行启动
在刚安装好的虚拟机里面进行安装
修改为国内镜像
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
编辑文件 vi/etc/apt/sources.list 文件
sudo vi /etc/apt/sources.list
按 dd 清除每一行,按 i 進入 insert ,按右鍵黏貼,按 esc 退出 insert ,:wq 保存後離開。 (**WSL2 安装 Debian(Ubuntu)并配置国内 apt 源 - 知乎**)
执行更新
sudo apt update
安装 pip
sudo apt install pip
安装 uv , 安装 gcc 和 g++
pip install uv
pip install gcc
pip install g++
windows 需要安装 cuda driver
wls2 需要安装不包含 driver 的 cuda tookit
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-9
export CUDA_HOME="/usr/local/cuda-12.9"
export PATH="/usr/local/cuda-12.9/bin:$PATH"
输入一下命令确保 ok
nvidia-smi
git clone https://github.com/Ksuriuri/index-tts-vllm.git
cd index-tts-vllm
un .venv
uv python install 3.10
uv pip install -r requirements.txt
需要转换为 transformers 库兼容的版本,
bash convert_hf_format.sh /path/to/your/model_dir
/path/to/your/model_dir 需要修改成你需要保存的位置
这个是我的
bash convert_hf_format.sh /home/leia/IndexTTS-1.5/
将项目中的 webui.py 的 model_dir 修改为模型权重下载路径
运行下命令启动程序
VLLM_USE_V1=0 python webui.py
往后再启动就是
leia@leia:~/index-tts-vllm$
source .venv/bin/activate
.venv 为我们创建的虚拟环境
运行成功的截图
该项目使用 fastapi 封装了 api 接口,调用如下命令可以启动相关示例:
VLLM_USE_V1=0 python api_server.py --model_dir /home/leia/IndexTTS-1.5 --port 11996
编写如下 python 文件 testindex-tts-vllm.py ,
import requests
url = "http://127.0.0.1:11996/tts_url"
data = {
"text": "你好,我叫 leia ,很高兴认识你",
"audio_paths": [
"spk_1234232323.wav",
"spk_2344423234.wav"
]
}
response = requests.post(url, json=data)
with open("output.wav", "wb") as f:
f.write(response.content)