背景
CosyVoice2.0是阿里通义开源的语音生成大模型的第二个正式版本,有比较优秀的音色,可实现快速低成本的声音复制功能。支持流式推理,合成延迟可以达到150ms。
部署步骤
1. 准备机器
本次使用的机器为4C16G的公有云机器,显卡为Nvidia T4 (基于 Turing 架构,有 2560 个 CUDA 核心,单精度浮点性能TFLOPS 8.1)。操作系统为Ubuntu 24
2. 安装显卡驱动
- 可以直接使用最新版本570(2025.4),对应cuda12.8。
- 驱动可以使用cuda包解压得到,只安装驱动即可。也可以使用apk包管理工具。
wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux.run
chmod +x cuda_12.8.1_570.124.06_linux.run
./cuda_12.8.1_570.124.06_linux.run --extract=/root/cuda128
cd cuda128
./NVIDIA-Linux-x86_64-570.124.06.run
3. 按照conda
注意为了保持python环境的一致性,这里使用conda来指定安装的python版本,如果python版本跨度较大,可能有很多莫名其妙的问题。安装参考如下:
wget -c https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
chmod +x Anaconda3-2023.03-1-Linux-x86_64.sh
# 使用 -b 只安装命令行, 使用 -u 参数更新安装
./Anaconda3-2023.03-1-Linux-x86_64.sh -u -b
# 添加执行目录到环境变量
export PATH=$PATH:/root/anaconda3/bin
# 注意会提示重启shell
4. 代码文件
注意代码仓库包括了子依赖,要下载完全,否则会缺少依赖,无法启动。如果服务器无法直接访问github,需要在下载完全部代码,包括子模块代码之后,再打包上传到服务器。
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
#如果有异常,执行如下命令
git submodule update --init --recursive
5. 下载模型
下载模型可以通过git-lfs。 如果没有git-lfs, 参考如下命令安装。
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
apt install git-lfs
下载对应模型
# git模型下载,请确保已安装git lfs
mkdir -p pretrained_models
git clone https://www.modelscope.cn/iic/CosyVoice2-0.5B.git pretrained_models/CosyVoice2-0.5B
git clone https://www.modelscope.cn/iic/CosyVoice-300M.git pretrained_models/CosyVoice-300M
git clone https://www.modelscope.cn/iic/CosyVoice-300M-25Hz.git pretrained_models/CosyVoice-300M-25Hz
git clone https://www.modelscope.cn/iic/CosyVoice-300M-SFT.git pretrained_models/CosyVoice-300M-SFT
git clone https://www.modelscope.cn/iic/CosyVoice-300M-Instruct.git pretrained_models/CosyVoice-300M-Instruct
# git clone https://www.modelscope.cn/iic/CosyVoice-ttsfrd.git pretrained_models/CosyVoice-ttsfrd
模型大小参考:
11G ./CosyVoice-300M
11G ./CosyVoice-300M-SFT
22G ./
6. 进行项目启动
# 创建虚拟环境
conda create -n cosy -y python=3.10
conda activate cosy
# pynini is required by WeTextProcessing, use conda to install it as it can be executed on all platform.
# (可选项)
#conda install -y -c conda-forge pynini==2.1.5
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
# If you encounter sox compatibility issues
# ubuntu
sudo apt-get install sox libsox-dev
7. 启动模型自带的gradio WebUI
启动脚本参考如下,以CosyVoice-300M-SFT模型为例。
# 非静默启动
python3 webui.py --port 7860 --model_dir pretrained_models/CosyVoice-300M-SFT/
# 静默启动
nohup python3 -u webui.py --port 7860 --model_dir pretrained_models/CosyVoice-300M-SFT/ >> run.log 2>&1 &
启动后如图所示:
cosyvoice2.0-webui.png
8. 启动API
python3 runtimes/fastAPI/server.py --port 7861 --model_dir pretrained_models/CosyVoice-300M-SFT/
# 执行使用POST form ,可以参考server.py的内容。
9. 关闭程序
# 官方默认端口是 50000
netstat -anp | grep 7860
kill -9 <pid>
问题和解决
- 如果出现依赖问题,检查下python版本是否3.10,之前用3.12 有报错Cython