logo
0
0
Login
Forkfromzhenxizmt/voice_generate_and_aligent, behind:main5 commits

IndexTTS-vLLM CNB版

badge badge

原项目 https://modelscope.cn/studios/javahui/index-tts2-test/files

项目简介

该项目在 index-tts 的基础上使用 vllm 库重新实现了 gpt 模型的推理,加速了 index-tts 的推理过程。

重写了 api_server.py 接口。各种接口作用可以通过/docs查看。 添加了生成语音转字幕的功能。

这是作者的效果 推理速度在单卡 RTX 4090 上的提升为:

  • 单个请求的 RTF (Real-Time Factor):≈0.3 -> ≈0.1
  • 单个请求的 gpt 模型 decode 速度:≈90 token / s -> ≈280 token / s
  • 并发量:gpu_memory_utilization设置为0.25(约5GB显存)的情况下,实测 16 左右的> 并发无压力(测速脚本参考 simple_test.py

我测试的是1.5版本在L40上gpu_memory_utilization设置为0.1,并发量16,80个任务有一个生成失败。想要用至少又9G的空余显存空间

使用步骤

  1. 克隆本项目
  2. 云原生开发中已下载好模型、虚拟环境。

现在只有indextts1.5的模型文件。如果有需求,可以自行下载其他版本的模型文件。

# Index-TTS modelscope download --model kusuriuri/Index-TTS-vLLM --local_dir ./checkpoints/Index-TTS-vLLM # IndexTTS-1.5 modelscope download --model kusuriuri/Index-TTS-1.5-vLLM --local_dir ./checkpoints/Index-TTS-1.5-vLLM # IndexTTS-2 modelscope download --model kusuriuri/IndexTTS-2-vLLM --local_dir ./checkpoints/IndexTTS-2-vLLM

API

使用 fastapi 封装了 api 接口,启动示例如下,请将 --model_dir 改为你的模型的实际路径:默认使用Index-TTS-v1.5

python api_server.py --model_dir /your/path/to/Index-TTS

启动参数

  • --model_dir: 必填,模型权重路径
  • --host: 服务ip地址,默认为 6006
  • --port: 服务端口,默认为 0.0.0.0
  • --gpu_memory_utilization: vllm 显存占用率,默认设置为 0.1

请求示例

参考 api_example.py

魔搭平台原项目的新特性

  • v1/v1.5: 支持多角色音频混合:可以传入多个参考音频,TTS 输出的角色声线为多个参考音频的混合版本(输入多个参考音频会导致输出的角色声线不稳定,可以抽卡抽到满意的声线再作为参考音频)

魔搭平台原项目给的性能

Word Error Rate (WER) Results for IndexTTS and Baseline Models on the seed-test

modelzhen
Human1.2542.143
index-tts (num_beams=3)1.0051.943
index-tts (num_beams=1)1.1072.032
index-tts-vllm1.121.987

基本保持了原项目的性能

测试

目录在 test 文件下 参考 simple_test.py,需先启动 API 服务

About

ndexTTS-vLLM批量生成克隆音频和生成对应字幕的工具。 使用fastAPI提供生成音色和生成字幕接口。 在assets目录中可以注册需要克隆的音色。

Language
Python97.3%
Cuda1.3%
C0.8%
Shell0.4%
Others0.2%