doupoa
一个不甘落后的热血青年!
Ping通途说

CosyVoice2-0.5B在Windows下本地完全部署、最小化部署

1. 克隆项目

确保你的设备上安装了Git Git - Downloads

git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
cd CosyVoice
git submodule update --init --recursive

2. 创建虚拟环境

尝试过直接在windows直接安装pynini,编译过程中缺少一个Linux独有的OpenFST关键依赖库。因此必须通过Conda实现安装

安装 Conda / MiniConda: 请参阅 Download Now | Anaconda

安装后在Win开始菜单中找到 Anaconda Prompt 并打开,此时你的终端应该是 :

(base) C:\User\Administrator >

conda create -n cosyvoice python=3.10
conda activate cosyvoice
conda install -y -c conda-forge pynini==2.1.5

注意在执行 conda activate cosyvoice 后,确保你的终端 (base)变成 (cosyvoice)再执行下一步安装,否则会安装在系统Python中。

3. 安装所需库

直接安装就行了,如果出现缺少了哪个库就手动安装一下。比如(Cython)

pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

4. 下载模型

CosyVoice语音生成大模型2.0-0.5B · 模型库 官网的介绍给我写的懵懵的,如下图:

https://doupoa.site/wp-content/uploads/2025/02/1739806585-image-1024x617.png

但我们只要部署 CosyVoice2 - 0.5B,只用下载第一个模型就可以了。如果你需要下载其他版本请自行操作。(直接全部复制粘贴下了快一个小时了,阿里源都给我下限速了)

注:Webui支持4种不同的推理模式:预训练音色、3s极速复刻、跨语种复刻、自然语言控制,以往的CosyVoice1要实现以上功能需要分为4个模型。现在CosyVoice2 - 0.5B一个模型就能完成四种功能!

其中,自然语言控制在WebUI中使用受限,如需体验完整功能请使用代码推理或等待官方后续更新。或者参阅新一篇文章中的解决方案:CosyVoice2实现音色保存及推理 < Ping通途说

from modelscope import snapshot_download
snapshot_download('iic/CosyVoice2-0.5B', local_dir='pretrained_models/CosyVoice2-0.5B')

5. 测试

官方原文档给的是CosyVoice1.0的使用方法,我们先以启动WebUI为例。

打开webui.py的源码,可以看到默认加载的就是CosyVoice2的模型。直接运行python webui.py 即可。

https://doupoa.site/wp-content/uploads/2025/02/1739852762-image.png

可能出现的问题

如果启动时出现pydoc.ErrorDuringImport: problem in cosyvoice.flow.flow_matching - ModuleNotFoundError: No module named 'matcha'错误,请检查CosyVoice-main\third_party\Matcha-TTS 下是否有文件,在官方Git项目中这一块是使用了外链。如果没有请自行下载压缩包并解压

Matcha-TTS/configs at dd9105b34bf2be2230f4aa1e4769fb586a3c824e · shivammehta25/Matcha-TTS · GitHub

重新运行webui.py,可以看到成功进入webui界面。

https://doupoa.site/wp-content/uploads/2025/02/1739853185-image-1024x496.png

预训练音色为空的情况:

CosyVoice2-0.5B 没有 spk2info.pt ·议题 #729 ·FunAudioLLM/CosyVoice

根据上面的issus,需要手动下载spk2info.pt文件粘贴到pretrained_models/CosyVoice2-0.5B中,随后重新运行webui.py就能看到预训练模型:

https://doupoa.site/wp-content/uploads/2025/02/1739859790-image.png

以《饿殍·明末千里行》中满穗配音为基准进行各项测试,测试结果如下:

原声:

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

3s急速复刻:

CosyVoice 2.0 已发布!与 1.0 版相比,新版本提供了更准确、更稳定、更快和更好的语音生成能力。

有情感的语音生成:

在他讲述那个荒诞故事的过程中,他突然[laughter]停下来,因为他自己也被逗笑了[laughter]。

方言控制:

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

6. 最小化部署

成功运行了环境是好事,但不可能每次都要使用webui来手动转换音频。走过所有部署流程后,我们应该都知道哪些东西是没有必要安装的。

根据官方提供的使用案例,可以通过以下代码直接进行生成。

import sys
sys.path.append('third_party/Matcha-TTS')
from cosyvoice.cli.cosyvoice import CosyVoice, CosyVoice2
from cosyvoice.utils.file_utils import load_wav
import torchaudio

cosyvoice = CosyVoice2('pretrained_models/CosyVoice2-0.5B', load_jit=False, load_trt=False, fp16=False)

# 3秒复刻
prompt_speech_16k = load_wav('zero_shot_prompt.wav', 16000)
for i, j in enumerate(cosyvoice.inference_zero_shot('收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。', '希望你以后能够做的比我还好呦。', prompt_speech_16k, stream=False)):
    torchaudio.save('zero_shot_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)

# 精细微调,即情感生成
for i, j in enumerate(cosyvoice.inference_cross_lingual('在他讲述那个荒诞故事的过程中,他突然[laughter]停下来,因为他自己也被逗笑了[laughter]。', prompt_speech_16k, stream=False)):
    torchaudio.save('fine_grained_control_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)

# 指导生成
for i, j in enumerate(cosyvoice.inference_instruct2('收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。', '用四川话说这句话', prompt_speech_16k, stream=False)):
    torchaudio.save('instruct_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)

因此最小化部署CosyVoice2 - 0.5B,我们只需要准备以下依赖:

  • main.py - 你的代码
  • third_party/Matcha-TTS - CosyVoice2实现的关键模块
  • requirements.txt - 项目所需的库
  • pretrained_models/CosyVoice2-0.5B - CosyVoice2模型
  • Pynini - 主要用于文本检查和语义纠错。conda install -y -c conda-forge pynini==2.1.5

requirements.txt,仅供参考。

--extra-index-url https://download.pytorch.org/whl/cu121
--extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/ # https://github.com/microsoft/onnxruntime/issues/21684
conformer==0.3.2
diffusers==0.29.0
gdown==5.1.0
gradio==5.4.0
grpcio==1.57.0
grpcio-tools==1.57.0
hydra-core==1.3.2
HyperPyYAML==1.2.2
inflect==7.3.1
librosa==0.10.2
lightning==2.2.4
matplotlib==3.7.5
modelscope==1.15.0
networkx==3.1
omegaconf==2.3.0
onnx==1.16.0
onnxruntime==1.18.0
openai-whisper==20231117
protobuf==4.25
pydantic==2.7.0
pyworld==0.3.4
rich==13.7.1
soundfile==0.12.1
torch==2.3.1
torchaudio==2.3.1
transformers==4.40.1
WeTextProcessing==1.0.3
赞赏
# # # # # #
首页      LLM      CosyVoice2      CosyVoice2-0.5B在Windows下本地完全部署、最小化部署

doupoa

文章作者

诶嘿

发表回复

textsms
account_circle
email

Ping通途说

CosyVoice2-0.5B在Windows下本地完全部署、最小化部署
1. 克隆项目 确保你的设备上安装了Git Git - Downloads git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git cd CosyVoice git submodule update --init --recurs…
扫描二维码继续阅读
2025-02-18

Optimized by WPJAM Basic