> 技术文档 > AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

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 的台式机:

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

1.1 文件下载

话不多说了,进入主题,先下载源码和模型文件:

  • 源码(1.17MB) https://github.com/FunAudioLLM/CosyVoice
  • 模型(3.9GB) https://www.modelscope.cn/models/iic/CosyVoice2-0.5B

模型文件列表:

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

1.2 环境搭建

Python 代码的运行需要各种依赖,也是最让小白头疼的地方,使用Anaconda会方便很多,以下是官网的搭建脚本:

# 创建虚拟环境conda create -n cosyvoice -y python=3.10conda activate cosyvoice# 安装依赖pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

安装过程出现的问题:

# 无法下载 torchCollecting 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:10 WARNING: 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\' 错误:

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

使用命令 pip install matcha后,再次启动报pydoc.ErrorDuringImport: problem in cosyvoice.flow.flow_matching - ModuleNotFoundError: No module named \'matcha.models\';\'matcha\' is not a package 错误:

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

解决办法,下载 Matcha-TTS源码,解压到 third_party\\Matcha-TTS目录下:

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

再次启动,访问 localhost:8000即可打开如下界面:

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

不能高兴的太早!

1.3.2 报错 2

 embedding = self.spk2info[spk_id][\'embedding\']KeyError: \'\'

启动时已初见端倪:

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

源码里有 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文件,下载后,再次启动:

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

页面正常了。

2.正式测试

感谢大佬《doupoa》的博文《CosyVoice2-0.5B在Windows下本地完全部署、最小化部署》指导,以下测试结果数据已上传网盘,感兴趣的小伙伴儿可以下载试听。

原声: 我知道,那件事之后,良爷可能觉得有些事都是老天定的,人怎么做都没用,但我觉得不是这样的。原声.wav

有情感的语音生成: 在他讲述那个荒诞故事的过程中,他突然[laughter]停下来,因为他自己也被逗笑了[laughter]。有情感的语音生成.wav

方言控制: 用四川话说这句话 | 收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。方言控制.wav

3s急速复刻: 从不谈起自己的故事,仿佛没有过去,是个谜一般的少女。性格沉着冷静,战斗风格异常干练高效,像是经历过常年的训练。3s极速复刻.wav

3s 极速复刻上传的 prompt 音频是之前测试 wisper 的 B站视频录音文件,杂音较多,合唱的声音还是挺不错的,原始文件是 28s,使用原始文件生成语音报错(有可能是电脑配置不行),进行 7s 的 Trim后正常生成。

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

prompt 原始文件:whisperTest.mp3

3.简单总结

  • Windows 本地部署流程还是有一点儿困难的,特别是对于一个 Java 开发来说。
  • 依赖、模型等占用的空间较多,看看这张图应该就不言而喻了:

AI【应用 03】Windows环境部署 TTS CosyVoice2.0 详细流程记录(Matcha-TTS、spk2info.pt等文件分享)

  • 原声生成的语音还是挺不错的,只是缺乏一些辨识度。

蓝巨星K歌软件