当前位置: 首页 > news >正文

【Agent开发】部署IndexTTS

我们需要让Agent有“说话”的能力,因此我们部署一个TTS。这里我使用bilibili团队开发的IndexTeam/IndexTTS-1.5。

TTS 部署

项目地址:https://github.com/index-tts/index-tts
模型地址:https://modelscope.cn/models/IndexTeam/IndexTTS-1.5/

考虑到huggingface下载的缓慢,我上面放的是modelscope的地址,可以使用他们的命令行下载,省去我在宿主机下载完还要拷贝进WSL的问题。

在下载前,请先通过如下命令安装ModelScope

pip install modelscope

然后通过如下命令下载:

modelscope download --model IndexTeam/IndexTTS-1.5 --local_dir ./IndexTTS-1.5

接下来的操作,我使用基于WSL的Ubuntu 22.04完成,我的显卡为RTX4070,cuda版本如下:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Wed_Oct_30_01:18:48_Pacific_Daylight_Time_2024
Cuda compilation tools, release 12.6, V12.6.85
Build cuda_12.6.r12.6/compiler.35059454_0

首先克隆项目到本地:

git clone https://github.com/index-tts/index-tts.git

为TTS运行准备一个虚拟环境,我不喜欢conda,我就直接用pip的venv了:

python3 -m venv tts

激活环境:

source tts/bin/activate

然后安装 torchaudio ,我这里从清华源安装

pip install torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

切换到项目的根目录下,安装index-tts:

pip install -e .

安装完成就一切准备就绪了。

这里额外说下cuda的问题,我的Windows上是安装了CUDA的Toolkit的:
windows
但我通过WSL安装的Ubuntu里是没有安装的:
wsl
这不影响IndexTTS调用我的CUDA,之前我运行Qwen3的时候也没有影响,我也不清楚为什么。不过既然现在能用我就不动了。

运行

首先需要将下载的文件挪到项目目录下的checkpoints里,结构大概是这样的:

└── index-tts├── DISCLAIMER├── INDEX_MODEL_LICENSE├── LICENSE├── MANIFEST.in├── README.md├── assets│   ├── IndexTTS.png│   ├── img.png│   └── index_icon.png├── checkpoints│   ├── README│   ├── README.md│   ├── README.md:Zone.Identifier│   ├── README:Zone.Identifier│   ├── bigvgan_discriminator.pth│   ├── bigvgan_discriminator.pth:Zone.Identifier│   ├── bigvgan_generator.pth│   ├── bigvgan_generator.pth:Zone.Identifier│   ├── bpe.model│   ├── bpe.model:Zone.Identifier│   ├── config.yaml│   ├── config.yaml:Zone.Identifier│   ├── configuration.json│   ├── configuration.json:Zone.Identifier│   ├── dvae.pth│   ├── dvae.pth:Zone.Identifier│   ├── gitattributes│   ├── gitattributes:Zone.Identifier│   ├── gpt.pth│   ├── gpt.pth:Zone.Identifier│   ├── unigram_12000.vocab│   └── unigram_12000.vocab:Zone.Identifier

然后需要在项目目录下新建test_data,里面放一个input.wav作为参考音频。音频的采样率和大小没有要求。如果你暂时找不到音频,可以用tests目录下的sample_prompt.wav

然后在项目根目录执行:

python indextts/infer.py

代码里使用了不少相对定位,因此如果你换个目录执行,文件的位置也许要改。具体可以看代码。
这样你就生成了语音文件了,在项目目录下的gen.wav

生成的速度大概如下:

>> Reference audio length: 5.45 seconds
>> gpt_gen_time: 2.34 seconds
>> gpt_forward_time: 0.03 seconds
>> bigvgan_time: 0.25 seconds
>> Total inference time: 2.80 seconds
>> Generated audio length: 2.82 seconds
>> RTF: 0.9936
>> wav file saved to: gen.wav

应该说这个速度有很大的优化空间,特别是我们想把TTS作为后端长期部署在环境上,下一篇文章,我将介绍如何将目前的Demo改造为长期服务。


文章转载自:

http://JK499GkW.dqcmq.cn
http://e2Ig3T1V.dqcmq.cn
http://hZvIaOsI.dqcmq.cn
http://wDHVaSez.dqcmq.cn
http://6H986HuP.dqcmq.cn
http://amuF5v6P.dqcmq.cn
http://OXGL9ebp.dqcmq.cn
http://gLrdSGhL.dqcmq.cn
http://7ROFq0a5.dqcmq.cn
http://kTUc3iyH.dqcmq.cn
http://QlcnxQyq.dqcmq.cn
http://ZKa8iIqZ.dqcmq.cn
http://sWw8ErFT.dqcmq.cn
http://UXzPAY1I.dqcmq.cn
http://Qge8rmjs.dqcmq.cn
http://U1acWPuT.dqcmq.cn
http://xI1uGyps.dqcmq.cn
http://4TWKnYNA.dqcmq.cn
http://0DGTqXuf.dqcmq.cn
http://7pGNCFxZ.dqcmq.cn
http://5dC01Xrh.dqcmq.cn
http://v6F3b8ou.dqcmq.cn
http://iZTlzjqj.dqcmq.cn
http://5FKZgQy6.dqcmq.cn
http://qYXVoUEL.dqcmq.cn
http://Cb3SouES.dqcmq.cn
http://Z4ftdTRk.dqcmq.cn
http://oKHh80F6.dqcmq.cn
http://5xcZ645s.dqcmq.cn
http://tX3zZCHj.dqcmq.cn
http://www.dtcms.com/a/369506.html

相关文章:

  • 使用API接口获取淘宝商品详情数据需要注意哪些风险?
  • 消费品企业客户数据分散?CRM 系统来整合
  • STM32项目分享:面向复杂路段的可控智能交通信号灯设计
  • 【完整源码+数据集+部署教程】加工操作安全手套与手部检测系统源码和数据集:改进yolo11-cls
  • 当洗地机开始「懂你」:VTX316如何让科技更有温度
  • 深度学习模型在边缘计算设备上的部署
  • 【C++题解】贪心和模拟
  • 小学生学习机如何选?AI英语与护眼是关键
  • centos 系统如何安装open jdk 8
  • Git 工具的「安装」及「基础命令使用」
  • PCB 残胶怎么除?猎板分享高效且安全的去除工艺方案
  • 基于FPGA实现数字QAM调制系统
  • 【代码随想录算法训练营——Day2】链表——203.移除链表元素、707.设计链表、206.反转链表
  • GEO公司有哪些:AI时代品牌可见性策略全景分析
  • 迁移学习的案例
  • Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十七天
  • 极快文本嵌入推理:Rust构建高性能嵌入推理解决方案
  • 2025国赛C题创新论文+代码可视化 NIPT 的时点选择与胎儿的异常判定
  • MySQL高级进阶(流程控制、循环语句、触发器)
  • JavaScript 源码剖析:从字节码到执行的奇妙旅程
  • 内存纠错检错方法-SSCDSD
  • PostgreSQL收集pg_stat_activity记录的shell工具pg_collect_pgsa
  • AI助力决策:告别生活与工作中的纠结,明析抉择引领明智选择
  • 关于Linux生态的补充
  • 基于cornerstone3D的dicom影像浏览器 第四章 鼠标实现翻页、放大、移动、窗宽窗位调节
  • Java高级编程–网络编程
  • linux ubi文件系统
  • 2025年统计与数据分析领域专业认证发展指南
  • android 四大组件—Service
  • 告别线缆束缚!AirDroid Cast 多端投屏,让分享更自由