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

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 开发来说。
  • 依赖、模型等占用的空间较多,看看这张图应该就不言而喻了:

  • 原声生成的语音还是挺不错的,只是缺乏一些辨识度。
http://www.dtcms.com/a/271960.html

相关文章:

  • Qt中处理多个同类型对象共享槽函数应用
  • git多分支管理
  • 缺陷的生命周期(Bug Life Cycle)是什么?
  • Java 正则表达式白皮书:语法详解、工程实践与常用表达式库
  • WWDC 25 风云再起:SwiftUI 7 Charts 心法从 2D 到 3D 的华丽蜕变
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(四十二) -> 动态修改编译配置
  • 全面解析 wxPython:构建原生桌面应用的 Python GUI 框架
  • 【计算机基础理论知识】C++篇(二)
  • [python] 数据拷贝浪费内存,原地修改暗藏风险:如何平衡内存使用效率与数据完整性?
  • 【SpringBoot实战系列】SpringBoot3.X 整合 MinIO 存储原生方案
  • C++类对象多态底层原理及扩展问题
  • Python-GEE遥感云大数据分析与可视化(如何建立基于云计算的森林监测预警系统)
  • Yolov模型参数对比
  • Docker的/var/lib/docker/目录占用100%的处理方法
  • 变压器初级(原边)和次级(副边)的感应电动势、电压方向如何标注?
  • 安卓应用启动崩溃的问题排查记录
  • 《Effective Python》第十三章 测试与调试——使用 Mock 测试具有复杂依赖的代码
  • 【笔记分享】集合的基数、群、环、域
  • Python毕业设计232—基于python+Django+vue的图书管理系统(源代码+数据库)
  • EXCEL_单元格中图片调整代码留存
  • 什么是Kibana
  • 【C++】第十四节—模版进阶(非类型模版参数+模板的特化+模版分离编译+模版总结)
  • 保姆级搭建harbor私有仓库与docker-ce教程与使用教程
  • 机器学习基础:从理论到实践的完整指南
  • 解锁医疗新视界:医患共决策时间轴AI可视化工具
  • Linux面试问题-软件测试
  • Web前端:table标签的用法与属性
  • 酒店IPTV系统:重塑数字化时代的宾客体验生态
  • 图计算怎么用?从数据到关系的魔力
  • 实时风险监控系统工具设计原理:2025异常检测算法与自动化响应机制