全程断网可跑,5 分钟搞定,复制即能用。
一、一次性准备(断网也够用)
- 安装 Docker Desktop 官网下载 → 勾选 Use WSL2 based engine → 启动。
- 检查 GPU 驱动 PowerShell 执行:nvidia-smi右上角出现
CUDA Version: 12.x即可,无需额外装 CUDA Toolkit。 - 构建官方基础镜像(仅需一次)
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git cd CosyVoice docker build -f runtime/python/Dockerfile -t cosyvoice2:v2.0 . - 下载并解压 3 份模型/资源 全部放到
D:\CosyVoice\pretrained_models,结构如下:D:\CosyVoice\pretrained_models
├─ CosyVoice2-0.5B ≈3 GB 主模型
├─ wetext ≈80 MB G2P前端
└─ CosyVoice-ttsfrd ≈1.2 GB 资源包(必须)下载地址:- CosyVoice2-0.5B:ModelScope → 下载全部wetext:ModelScope → 下载全部CosyVoice-ttsfrd:ModelScope → 下载全部
二、单命令启动(复制即跑)
打开 PowerShell,一行回车:
docker run -d --gpus all --name cv2 -p 8000:8000 -v D:/CosyVoice/pretrained_models/CosyVoice2-0.5B:/workspace/pretrained_models/CosyVoice2-0.5B -v D:/CosyVoice/pretrained_models/wetext:/root/.cache/modelscope/hub/pengzhendong/wetext -e BATCH_SIZE=1 --entrypoint bash cosyvoice2:v2.0 -c "pip uninstall -y deepspeed ruamel.yaml ruamel.yaml.clib && pip install 'ruamel.yaml<0.18' --no-deps && python3 -u /opt/CosyVoice/CosyVoice/webui.py --port 8000 --model_dir /workspace/pretrained_models/CosyVoice2-0.5B"
三、验证 & 使用
- 等待日志输出docker logs -f cv2出现:Running on local URL: http://0.0.0.0:8000按
Ctrl+C退出日志。 - 浏览器打开http://localhost:8000输入文本 → 选音色 → Generate,2-3 秒出音频。
四、常用操作
| 任务 | 命令 |
|---|---|
| 再次启动 | docker start cv2 |
| 停止 | docker stop cv2 |
| 查看日志 | docker logs -f cv2 |
| 删除容器 | docker rm cv2 |
模型已落地本地,重启无下载,完全离线。
五、打造自己的镜像(推送到 Docker Hub)
把刚才“每次 pip 降级”这种临时动作固化到镜像里,以后任何机器一条 docker run benson80/cosyvoice2 就能跑,无需再下载模型、再卸载 deepspeed。
1. 准备 Dockerfile(与官方同步,仅加三行修复)
新建空文件夹,放入文件 Dockerfile:
# 与官方 runtime 保持一致
FROM cosyvoice2:v2.0
# 1. 提前卸掉会编译报错的包
RUN pip uninstall -y deepspeed ruamel.yaml ruamel.yaml.clib \
&& pip install --no-cache-dir "ruamel.yaml<0.18" --no-deps
# 2. 把默认工作目录切到 CosyVoice 代码根
WORKDIR /opt/CosyVoice/CosyVoice
# 3. 声明启动命令(模型路径留空,让用户挂载)
CMD ["python3", "-u", "webui.py", "--port", "8000", "--model_dir", "/workspace/pretrained_models/CosyVoice2-0.5B"]
2. 本地构建 & 打标签
docker build -t benson80/cosyvoice2:latest .
3. 登录并推送
docker login
docker push benson80/cosyvoice2:latest
首次推送完成后,你的公开仓库就有了 “开箱即用” 的 CosyVoice2 镜像。
4. 使用自己的镜像(任意机器)
模型准备步骤不变,只是镜像名换成自己的:
docker run -d --gpus all --name cv2 -p 8000:8000 -v D:/CosyVoice/pretrained_models/CosyVoice2-0.5B:/workspace/pretrained_models/CosyVoice2-0.5B -v D:/CosyVoice/pretrained_models/wetext:/root/.cache/modelscope/hub/pengzhendong/wetext -e BATCH_SIZE=1 benson80/cosyvoice2
无需再 pip 降级、无需再卸载 deepspeed,日志直接出现:
Running on local URL: http://0.0.0.0:8000
浏览器打开 http://localhost:8000 立即合成语音!
✅ 至此,你拥有:
- 一份 离线可用 的详细部署教程
- 一个 修复好依赖 的公开镜像
benson80/cosyvoice2 - 任何 Windows/WSL2 机器,复制一行命令即可跑 CosyVoice2