# 阿里最强语音克隆模型CosyVoice安装与使用避坑教程
Win11 阿里最强语音克隆模型CosyVoice安装与使用避坑教程
阿里推出两款语音大模型,实测效果强于ChatTTS。一个是SenseVoice,主要是whisper的“听”;一个是CosyVoice,是“说”,内置音色、克隆音色的“说”。
之前Ai-China出过ChatTTS的教程,当时惊艳不已。但在实际使用过程中,ChatTTS是有一些问题的,最主要的就是固定音色。因为使用的是WebUI,生成长文本音频时无论怎样设置都是多种音色(甚至男女多人都出现了,明明设置的单音色)。实测CosyVoice完美解决了这个问题,而且几秒的音频即可克隆喜爱的音色。
今天就教大家如何避开安装使用CosyVoice过程中Ai-China亲历的坑。
安装CosyVoice
一、准备工作
1. Github作者主页 https://github.com/FunAudioLLM/CosyVoice
2. 安装好Git和Conda
(1) Git https://git-scm.com/downloads
(2)Conda https://docs.conda.io/en/latest/miniconda.html
安装上述miniconda即可,Anaconda太大,安装包就有近1G,安装时注意如下图一样勾选第2项
二、 克隆作者Github库
在想要安装的位置创建一个CosyVoice
文件夹,进入该文件夹,在地址栏输入cmd
或powershell
后回车,即打开命令行,在命令行依次输入以下命令:
1 | git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git # 克隆repo |
三、 创建Conda虚拟环境并在虚拟环境下安装
1 | conda create -n cosyvoice python=3.10 # 即创建一个名称为“cosyvoice”、python版本为“3.10”的虚拟环境,原作者选择的python版本是3.8 |
1. Python版本
原作者指定的python版本为3.8,但Ai-China实测安装时会弹出大量的Warning
,报SSL错误而无法完成安装,选择python 3.10则无此报错。而且,选择了3.8进行安装之后,最后也会报某些依赖项最低要求3.9之类。所以,Ai-China觉得可以放弃python 3.8了。
2. requirements.txt中内容的调整
打开requirements.txt
文件,删掉最后一行的WeTextProcessing==1.0.3
,否则肯定是安装失败的,因为这个模块依赖 pynini
,而pynini在windows的pip下无法安装
然后在 requirements.txt 里增加一行 Matcha-TTS
如果要使用 api 服务,必须再增加2行内容,分别是 flask
和 waitress
onnxruntime这个模块的下载有问题,如下图所示:
或者现在就将高亮的两行改成onnxruntime==1.16.0
,如果之后下载还是报错ModuleNotFoundError: No module named 'onnxruntime'
,则运行命令
1 | conda install -c anaconda onnx |
单独安装onnxruntime
模块
3. 依赖项安装
输入pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
命令开始安装
……
……
漫长的等待过程,Ai-China等了1个小时10分钟左右
4. 预训练库安装
利用Git和下述命令导入预训练库,会生成一个pretrained_models
文件夹并将下述库文件放到里面
1 | # git模型下载,请确保已安装git lfs |
四、 利用Python运行CosyVoice
1. 添加到Python路径
首先将 third_party/Matcha-TTS
添加到你的 PYTHONPATH
.
1 | set PYTHONPATH=third_party/Matcha-TTS |
2. 利用下述代码制作一个Python可执行文件
1 | from cosyvoice.cli.cosyvoice import CosyVoice |
将以上代码保存为run_cosyvoice.py
文件,放到CosyVoice
文件夹根目录下
3. 执行py文件
在cmd
或powershell
下进入此根目录,如果你没有退出或更改,当前应该就在此目录下。如果已经退出或更改,请参照上文进入此目录和虚拟环境。
输入命令python run_cosyvoice.py
如果一切顺利的话,CosyVoice程序会开始运行,几秒后在CosyVoice
文件夹下生成几个音频文件,分别代表上述代码中的音色选择、推理文字生成等内容。如果想生成自己的文字变语音,在代码中修改相应的文字部分即可。
但是,以Ai-China反复装过不下10次的经验来看,如果此时就已经可用了,那表明你的人品可以中千万彩票了。
4. 执行python run_cosyvoice.py
后通常会报的错误:
(1) ModuleNotFoundError: No module named 'ttsfrd'
解决方案:
1 | git clone https://www.modelscope.cn/speech_tts/speech_kantts_ttsfrd.git ./speech_kantts_ttsfrd |
(2) ModuleNotFoundError: No module named 'tn'
此报错的原因是缺少WeTextProcessing
,解决方案:
1 | conda install -c anaconda sox #先安装sox,不知有无影响 |
(3) ModuleNotFoundError: No module named 'onnxruntime'
无法正常下载安装,那就从anaconda库中下载安装,解决方案:
1 | conda install -c anaconda onnx |
(4) ERROR: Failed building wheel for Matcha_TTS Failed to build Matcha_TTS ERROR: Could not build wheels for Matcha_TTS, which is required to install pyproject.toml-based projects
看TTS
字样,就知道Matcha_TTS
是一个重要模块,它的出错,解决起来很棘手。
这个报错就是因为Windows中对于编译特定Python包的最低要求,包括Microsoft Visual C++ 14.0或以上。
为了心心念念的CosyVoice,Ai-China义无反顾地下载安装了Microsoft Visual C++,实在是大,最低要求的安装包都近5G
然后再安装Matcha_TTS
pip install matcha-tts
,世界瞬间平滑安静了许多。
(5) diffusers
版本冲突
1 | ERROR: Cannot install -r requirements.txt (line 31) and diffusers==0.27.2 because these package versions have conflicting dependencies. |
可以看出,有的要求版本0.27,有的要求0.25,还有的要求0.21,还真是众口难调啊
解决方案:
修改requirements.txt
,你们的要求,朕都准了!
将diffusers
那一行改为diffusers>=0.21.2,<=0.27.2
。
(6) 运行WebUItyping_extensions
报错
1 | 运行 `python webui.py --port 50000 --model_dir pretrained_models/CosyVoice-300M` 后报错(注意使用python3运行无反应) |
(7) 其他缺失报错下载失败
有样学样,如果pip install
命令安装下载出错,可以添加-i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
镜像参数,多数都能正常下载。也可以如上所说,使用conda/anaconda命令或库下载安装。
注意:一定要看requirements.txt中规定的依赖项都安装完,之所以选择python 3.10也是因为这一点(只有它能完整安装依赖项)。一旦不完整,就会各种模块子模块缺失报错,人工手动安装不过来!
五、 其他更方便的使用方式
1. 官方WebUI
使用命令python webui.py
命令行运行快结束的时候,需要找一下,会提示running on:
,后面就是本地地址
输入浏览器后
但Ai-China第一次运行WebUI的时候,提示就不一样。记得是0.0.0.0:50000
,如果想在Public网上运行的话,需要修改webui.py
文件末行,加上share=True
之类。这里值得一提的是,0.0.0.0
实际上是一种“本地网络”的表述,在windows的浏览器中输入0.0.0.0
并无任何作用(Linux下可以)。需要换成任何表述本地网络的地址:127.0.0.1:50000
localhost:50000
甚至是你的主机本地IP(192.168.x.x):端口号
也完全没问题。
这个WebUI应该是把几个预训练模型整合到了一起,下面介绍将各个不同模型分开来使用的方法。
2. 根据模型启用WebUI
(1) 克隆音色生成
1 | @echo off |
将以上内容保存为克隆音色生成.bat
(2) 内置音色+语气微调
1 | @echo off |
将此内容保存为内置音色+语气微调.bat
(3) 内置音色生成
1 | @echo off |
也保存为内置音色生成.bat
将以上3个文件放置到CosyVoice文件夹根目录下,需要使用哪种,直接双击对应的bat
文件即可。双击会自动打开浏览器新页面,但会稍等一下刷新页面才会出现WebUI。可以看出,此方法也是调用WebUI,只不过作了区分。另外要注意,虽然端口已经作了区分,但还是尽量不要同时运行上述2或3个程序,容易爆显存。
PS:本文主要参考
官网
CosyVoice:阿里最强语音克隆模型体验并封装API接口