AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)
通过网盘分享的文件:CSDN_CosyVoice
链接: https://pan.baidu.com/s/1dJvB3vAnEQ9Li8PFvqhbzQ?pwd=3ngj 提取码: 3ngj
包含全部离线使用文件:
- CosyVoice2-0.5B(全量数据)
- CosyVoice-testFiles(生成的音频)
- CosyVoice-main.zip
- Matcha-TTS-main.zip
- spk2info.pt
- torch-2.3.1+cu121-cp310-cp310-win_amd64.whl
Windows环境部署 TTS CosyVoice2.0 详细流程记录
- 1.离线部署
- 1.1 文件下载
- 1.2 环境搭建
- 1.3 运行报错
- 1.3.1 报错 1
- 1.3.2 报错 2
- 2.正式测试
- 3.简单总结
1.离线部署
CosyVoice 2.0 已发布!与 1.0 版相比,新版本提供了更准确、更稳定、更快和更好的语音生成能力。关注技术细节的可以看看官网的《介绍》。源码里的 README.md
文件详细描述了 2.0 的新特性、安装、模型下载和使用方法,本文主要记录一个小白的本地部署完整过程。部署环境为一台老旧的没有 GPU 的台式机:
1.1 文件下载
话不多说了,进入主题,先下载源码和模型文件:
- 源码(1.17MB) https://github.com/FunAudioLLM/CosyVoice
- 模型(3.9GB) https://www.modelscope.cn/models/iic/CosyVoice2-0.5B
模型文件列表:
1.2 环境搭建
Python 代码的运行需要各种依赖,也是最让小白头疼的地方,使用Anaconda
会方便很多,以下是官网的搭建脚本:
# 创建虚拟环境
conda create -n cosyvoice -y python=3.10
conda activate cosyvoice# 安装依赖
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
安装过程出现的问题:
# 无法下载 torch
Collecting torch==2.3.1 (from -r requirements.txt (line 35))Downloading https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp310-cp310-win_amd64.whl (2423.5 MB)- -------------------------------------- 0.1/2.4 GB 1.8 MB/s eta 0:22:10WARNING: Connection timed out while downloading.# 在另一台 Linux 电脑上下载
wget -c https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp310-cp310-win_amd64.whl# 进行离线安装
pip install .\torch-2.3.1+cu121-cp310-cp310-win_amd64.whl -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
离线安装 torch-2.3.1+cu121-cp310-cp310-win_amd64.whl
后继续使用 pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
安装其他依赖。
1.3 运行报错
修改 --model_dir
的默认目录:
if __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argument('--port',type=int,default=8000)parser.add_argument('--model_dir',type=str,default=r'D:\tmp\CosyVoice2-0.5B',help='local path or modelscope repo id')
运行 webui.py
,或使用命令运行:
python pathTo\webui.py --port 50000 --model_dir pathTo\CosyVoice2-0.5B\
1.3.1 报错 1
启动时报 pydoc.ErrorDuringImport: problem in cosyvoice.flow.flow_matching - ModuleNotFoundError: No module named 'matcha'
错误:
使用命令 pip install matcha
后,再次启动报pydoc.ErrorDuringImport: problem in cosyvoice.flow.flow_matching - ModuleNotFoundError: No module named 'matcha.models';'matcha' is not a package
错误:
解决办法,下载 Matcha-TTS
源码,解压到 third_party\Matcha-TTS
目录下:
再次启动,访问 localhost:8000
即可打开如下界面:
不能高兴的太早!
1.3.2 报错 2
embedding = self.spk2info[spk_id]['embedding']
KeyError: ''
启动时已初见端倪:
源码里有 spk2info.pt
的配置:
self.frontend = CosyVoiceFrontEnd(configs['get_tokenizer'],configs['feat_extractor'],'{}/campplus.onnx'.format(model_dir),'{}/speech_tokenizer_v1.onnx'.format(model_dir),'{}/spk2info.pt'.format(model_dir),configs['allowed_special'])
但是 CosyVoice2-0.5B
目录下没有 spk2info.pt
文件,下载后,再次启动:
页面正常了。
2.正式测试
感谢大佬《doupoa》的博文《CosyVoice2-0.5B在Windows下本地完全部署、最小化部署》指导,以下测试结果数据已上传网盘,感兴趣的小伙伴儿可以下载试听。
原声: 我知道,那件事之后,良爷可能觉得有些事都是老天定的,人怎么做都没用,但我觉得不是这样的。原声.wav
有情感的语音生成: 在他讲述那个荒诞故事的过程中,他突然[laughter]停下来,因为他自己也被逗笑了[laughter]。有情感的语音生成.wav
方言控制: 用四川话说这句话 | 收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。方言控制.wav
3s急速复刻: 从不谈起自己的故事,仿佛没有过去,是个谜一般的少女。性格沉着冷静,战斗风格异常干练高效,像是经历过常年的训练。3s极速复刻.wav
3s 极速复刻上传的 prompt 音频是之前测试 wisper 的 B站视频录音文件,杂音较多,合唱的声音还是挺不错的,原始文件是 28s,使用原始文件生成语音报错(有可能是电脑配置不行),进行 7s 的 Trim
后正常生成。
prompt 原始文件:whisperTest.mp3
3.简单总结
- Windows 本地部署流程还是有一点儿困难的,特别是对于一个 Java 开发来说。
- 依赖、模型等占用的空间较多,看看这张图应该就不言而喻了:
- 原声生成的语音还是挺不错的,只是缺乏一些辨识度。