OpenVoice 实战上手:十分钟克隆出专属音色,六种语言随便说
【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice
做播客出多语种版本,配音怕换人后味道变了,又想让智能助手用某个你熟悉的声音说话——这些需求背后其实是同一件事:怎么快速让「那个人的音色」开口说任意内容。OpenVoice 语音克隆就是干这个的,由 MIT 和 MyShell 开源,十几秒参考音频就能提取音色,再用它说英语、中文、日语等六种语言,V2 起采用 MIT 协议,商用免费。
它的工作方式很直接:先用一个基础 TTS 把文本读出来,再把你的参考音色「搬」到这段音频上。下面先让它在你的机器上出声,再回头讲原理。
十分钟跑通:环境、权重与第一声
先把环境装好
最小环境只要三样东西:Python 3.9、代码仓库、官方检查点。
conda create -n openvoice python=3.9 conda activate openvoice git clone https://gitcode.com/GitHub_Trending/op/OpenVoice cd OpenVoice pip install -e .装完这一步,openvoice包和依赖就都就位了,V1 和 V2 的安装方式完全一样。
检查点放到对的位置
检查点压缩包在官方 docs/USAGE.md 里给了下载地址:V1 解压到checkpoints目录,V2 解压到checkpoints_v2目录,目录名不能写错。
选 V2 的话还要装 MeloTTS(V2 用它当多语言基础说话人):
pip install git+https://github.com/myshell-ai/MeloTTS.git python -m unidic download三步拿到第一段克隆音频
核心流程三步:加载转换器 → 提取参考音色 → 转换输出。转换器只依赖checkpoints_v2/converter,先拿仓库自带的示例参考音频(resources/example_reference.mp3)试手:
import torch from openvoice import se_extractor from openvoice.api import ToneColorConverter device = "cuda:0" if torch.cuda.is_available() else "cpu" converter = ToneColorConverter('checkpoints_v2/converter/config.json', device=device) converter.load_ckpt('checkpoints_v2/converter/checkpoint.pth') target_se, audio_name = se_extractor.get_se('resources/example_reference.mp3', converter, vad=True)target_se就是你要克隆的音色向量,get_se会用 VAD 自动切掉静音再平均出特征。完整链路是:MeloTTS 先把文本读成 wav,converter.convert()再把这个 wav 的音色换成target_se,输出带目标音色的成品。demo_part3.ipynb 里有六语言、多口音说话人的完整示范,照着跑即可。
本地界面一行就能起(用的是 V1 的checkpoints,支持中、英输入并自动检测语言):
python -m openvoice_app --share版本怎么选:V1 还是 V2
- 新项目、商用、要多语言:选 V2。音质更好,内置英、西、法、中、日、韩,MIT 协议商用免费。
- 需要细粒度风格切换(耳语、怒吼这类):V1 的基础说话人模型自带风格参数,V2 里这块换成了 MeloTTS 的不同说话人,按场景取舍。
- 只想要开箱即用不装环境:官方在 USAGE 里列了一批已部署的多语言小部件,可以先在线听效果再决定本地部署。
原理说人话:演员、台本与录音室
把它想成剧组。基础 TTS 是演员,照着台本(你的文本)念词,腔调、情绪、口音都按他的演法来;你的参考音频则像一份「嗓音档案」。转换器干的活,是演员念完后把录音室的底噪整体换掉,让这段词听起来是档案里那个人在念。
关键在于音色和台词、风格是两条独立流水线:参考音频说什么语言不重要,念词时用什么语言也不重要,两边甚至可以互不相干——这就是它零样本跨语言克隆的来源。演员换人、台本换语言,音色档案照样成立。
功能地图:哪些能力什么时候用
即时音色克隆
- 做什么:十几秒参考音频 → 音色向量,任何音频都能换成这个音色。参考音频本身可以是任何语言。
- 什么时候用:所有场景的第一步,也是 V2 工作流里的第一步。
- 怎么设置:
get_se()默认走 VAD 切分(vad=True);每个说话人用不同的文件名,避免特征串缓存。
跨语言克隆
- 做什么:参考音色说参考音色没出现过的语言。
- 什么时候用:给外语内容配「同一张脸的声音」,多语种节目、字幕配音。
- 怎么设置:V2 用 MeloTTS 的英、西、法、中、日、韩模型当基础说话人;V1 里换
checkpoints/base_speakers/ZH这类基础模型即可。其他语言的路线见 docs/QA.md:只要有那个语言的基础说话人就能接进来,转换器最难的训练官方已经替你做完。
风格与语速控制
- 做什么:情绪、语气、快慢。
- 什么时候用:需要耳语、欢快这类效果,或调节节奏时。
- 怎么设置:V1 在
BaseSpeakerTTS.tts里指定speaker(friendly、cheerish 之外的选项见 demo_part1.ipynb:whispering、shouting、sad、angry 等),speed调语速;换风格后 source 音色向量也要换成对应的,比如en_style_se.pth。V2 的风格则通过选不同 MeloTTS 说话人实现。
本地 Gradio 演示
- 做什么:浏览器里直接输入文本、传参考音频、听结果,免写代码。
- 什么时候用:快速验证、给别人演示。
- 怎么设置:
python -m openvoice_app --share启动;目前本地演示支持中、英,且中文只有 default 风格。遇到问题先看三个 demo 和 docs/QA.md。
生成水印
- 做什么:给输出音频嵌入隐形标记,标识「出自 OpenVoice」。
- 什么时候用:你要把服务开放给公众使用时,防滥用。
- 怎么设置:
convert()传message即启用;初始化时enable_watermark=True(默认)才加载水印模型。注意官方保留检测任意 OpenVoice 输出音频的能力。
让效果更好的几个抓手
参考音频是第一变量。按官方 QA 的清单自查:够不够干净(无背景噪声)、够不够长、是不是只有一人在说、有没有长空静音。
convert()的tau控制音色混合比例,默认 0.3:调高一点,源音频的音色残留更多,适合你觉得「像了但不够像」时往回拉。
基础说话人本身决定音质上限。V2 用了更激进的数据增强和不同的训练策略,同一段文本下听感明显更稳;对质量要求高就直接用 V2。
| 参数/项 | 位置 | 作用 | 建议 |
|---|---|---|---|
tau | convert() | 目标音色混合比例 | 默认 0.3,音色不像时调高 |
speed | 基础 TTS | 语速 | 1.0 附近最自然 |
speaker | V1 基础 TTS | 风格(whispering 等) | 换风格记得同步换 source se |
vad | get_se() | 静音切分 | 默认 True,脏音频尤其需要 |
| 参考音频 | 输入 | 音色质量上限 | 干净、单人、无长静音 |
进阶玩法:把开源 TTS 或自训模型当基础说话人接进框架,音色转换器不换,语言就随基础说话人扩展,docs/QA.md 给了现成思路。
常见坑位与修法
- Silero 模型下载失败:
get_se走 VAD 时要联网拉 silero-vad,连不上 GitHub 就会卡住。手动把压缩包下下来解压到~/.cache/torch/hub/snakers4_silero-vad_master即可,QA 文档里还有更多版本方案。 - 「怎么不像」的口音与情绪:这是最常见的误解——OpenVoice 只克隆音色,不克隆口音和情绪。那两者来自基础说话人模型;想要某种口音,就换一个带该口音的基础说话人,而不是怪转换器。
- 输出发闷、有噪声:九成是参考音频的问题——有底噪、多人混说、空段太长,或者你复用了旧文件名却没清
processed目录,拿到的还是旧特征。换干净音频、清目录,重跑。 input audio is too short:VAD 之后有效语音不够,被 assert 拦住。参考音频剪短了,换一段更长的。- V2 跑不动、报找不到 MeloTTS:V2 把 MeloTTS 当基础说话人,漏装它和
python -m unidic download这两步就会挂,回头补上再试。
下一步去哪
- 安装与部署细节看 docs/USAGE.md,Windows、Docker 的社区指南也在里面。
- 按顺序读 demo_part1.ipynb(风格控制)、demo_part2.ipynb(跨语言)、demo_part3.ipynb(V2 多语言),三个 demo 就是三块能力地图。
- 遇到怪现象先查 docs/QA.md,官方会持续更新。
- V1/V2 均为 MIT 协议,商用、研究都免费,可以直接进生产评估。
现在可以动手:按上面的环境命令装好 V2,再跑一遍 demo_part3.ipynb,用resources/example_reference.mp3听出第一句带目标音色的输出——这就是你验证整条链路的最小闭环。
【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考