想给视频或课程配一段自己的中文旁白,可以在 Mac 上本地运行 CosyVoice 3,用本人或已获明确授权的参考录音生成另一段语音。

此前使用项目示例录音生成的样音暂不公开展示,待核对参考声音的授权范围后再决定是否恢复。以下保留本机部署步骤和历史测试记录;工具包不再预设参考声音。

此前测试中,9.36 秒的语音在 M1 Max 上用 CPU 生成约 33~37 秒;更换参考录音后的速度和听感尚未验证。它适合提前制作旁白,不适合要求实时响应的场景。模型文件约 10GB,安装依赖后建议预留至少 15GB 磁盘空间。

开始前准备

项目 需要准备
电脑 本文实测为 M1 Max、64GB 统一内存的 Mac;其他 Mac 的速度和兼容性未验证
磁盘 建议预留 15GB 以上,代码、依赖和模型都要占空间
时间 首次安装约 1 小时,模型下载时间取决于网络
工具 终端、Git、uv;不需要 API Key,也不按生成条数收费

CosyVoice 由阿里通义团队维护。Mac 上可用 CPU 运行,但本教程不保证所有 Apple 芯片机型都能顺利安装。项目的官方安装说明主要面向 Linux 环境;下文的 Mac 依赖组合按 2026 年 10 月 3 日的安装记录整理,2026 年 10 月 10 日在同一环境重新生成了样音。

官方模型仓库标注 Apache 2.0,但模型卡同时写有「仅供学术目的」的免责声明;页面没有解释这句话是否限制模型权重的商业使用。若要用于收费项目,先向维护者确认适用范围,再确认参考录音授权和客户素材许可。

1. 下载项目并安装依赖

如果还没装 uv,可先看《用 uv 安装 Python 和虚拟环境》。在终端里执行:

mkdir -p ~/ai-demo && cd ~/ai-demo
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
cd CosyVoice

--recursive 会同时下载项目需要的 Matcha-TTS 子模块。若下载中断,再执行:

git submodule update --init --recursive

创建 Python 3.10 环境,再安装 Mac 上验证过的依赖组合:

uv venv --python 3.10 --managed-python
source .venv/bin/activate
export UV_DEFAULT_INDEX=https://mirrors.aliyun.com/pypi/simple/

uv pip install "setuptools<70" wheel "numpy==1.26.4" "torch==2.3.1" "torchaudio==2.3.1"
uv pip install openai-whisper==20231117 "torch==2.3.1" "numpy==1.26.4" --no-build-isolation
uv pip install -r requirements.txt --index-strategy unsafe-best-match
uv pip install "scipy==1.14.1"

最后固定 SciPy 版本,是为了解决这次 Mac 环境里 SciPy 1.15.x 的加载错误。依赖安装后若看到 pip 提示包版本冲突,不要直接忽略;先确认以上命令执行完成,再继续下载模型。

2. 下载语音模型

项目提供的 Fun-CosyVoice3-0.5B-2512 模型仓库约 9.75GB。下载会占用不少磁盘和流量;先确认空间足够,再从项目根目录运行:

python - <<'PY'
from modelscope import snapshot_download

snapshot_download(
    'FunAudioLLM/Fun-CosyVoice3-0.5B-2512',
    local_dir='pretrained_models/Fun-CosyVoice3-0.5B',
)
PY

这是官方 README 使用的模型仓库和保存路径。模型文件比较大,下载中断时可重新运行命令继续;不要关闭终端直到下载结束。

3. 运行脚本生成语音

下载CosyVoice 3 Mac 示例工具包,解压后把 demo_cv3.py 放在 CosyVoice 项目根目录,也就是和 webui.py 同一层。包里还附有 README 和本节步骤。

先准备本人录音或已获明确授权的 WAV 文件,在脚本中填写 PROMPT_WAV 路径和 PROMPT_TEXT 逐字原文(不填写系统前缀),把 TEXT 改成要合成的文字。确认授权包含本次声音克隆用途后,将 VOICE_USE_CONFIRMED 改为 True,再从项目根目录执行:

source .venv/bin/activate
python demo_cv3.py

第一次加载会花一些时间。完成后,项目根目录会出现 output_0.wav,双击即可试听。

脚本默认留空参考音路径和转写文字,授权确认默认为 False;未填写或文件不存在时,会在加载模型前退出,不会自动回退到项目示例声音。录音尽量清楚、无背景音乐。若准备在 App、网站或交付作品中公开生成结果,还需确认授权包含相应的公开展示、传播及商业用途(如适用),并保留授权记录。这个确认开关只是操作提醒,不能替代真实授权。

同一参数下,本机两次生成用时约 33~37 秒,参考文本与录音内容相符。每台电脑的速度会不同;涉及数字、日期和符号时,请听完整段落并校对读法。当时运行未能从 ModelScope 获取 Wetext 前端(返回 403),但样音仍成功生成,因此不要把数字朗读准确性当成已验证结果。

常见问题

报错 No module named 'matcha'

先确认下载项目时使用了 --recursive。如果漏了子模块,在项目根目录执行:

git submodule update --init --recursive

脚本会把 third_party/Matcha-TTS 加到 Python 搜索路径;运行时也要从 CosyVoice 项目根目录启动。

生成速度慢怎么办?

本文使用 CPU 生成,9.36 秒音频耗时约 33 秒。换一段短文字先确认安装正常;如果要实时对话或大量批量处理,可以考虑使用项目支持的 NVIDIA GPU 环境。本文没有验证 Mac GPU 加速方案。

商用前要确认什么?

模型页面标注 Apache 2.0,同时有学术用途免责声明;商用前应向维护者确认该声明与模型权重许可的关系。即使模型许可允许使用,也不代表你自动拥有参考声音的使用权。不要用他人声音冒充本人;客户录音先取得授权。参考录音和生成内容保存在本机,备份或发送给他人前确认文件中不含未获许可的个人声音。

拿它挣钱

确认模型和素材许可适用于你的业务后,CosyVoice 可以作为视频旁白、课程配音或短片解说的制作工具。接单前先确认客户是否接受 AI 配音,保存声音授权记录,并试听校对每一段成品。报价可以按项目时长、修改次数和交付格式拆项;当地价格没有统一标准,先查看同平台同类服务的公开报价,再按自己的录音授权、校对和修改成本定价。

接下来可以看

本文的速度数据来自 M1 Max、64GB、macOS 27、Python 3.10 环境,实测日期为 2026 年 10 月 10 日。依赖安装命令沿用 10 月 3 日验证过的环境;2026 年 10 月 10 日重新验证了解压工具包后的推理;本次调整参考音输入要求后,尚未用新录音重新推理。CosyVoice 的安装方式、模型文件和许可可能更新,使用前请再查看官方代码仓库和模型卡。