OpenVoice 快速上手指南:一段 10 秒录音克隆音色,还支持跨语言输出

📅 发布时间:2026/9/1 10:55:20
OpenVoice 快速上手指南:一段 10 秒录音克隆音色,还支持跨语言输出
OpenVoice 快速上手指南一段 10 秒录音克隆音色还支持跨语言输出【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice想给小说里的角色配上专属声音或者用家人的声音录制一段纪念音频商业克隆服务往往收费不菲代码和模型也不在你手里。OpenVoice 是 MIT 与 MyShell 开源的即时语音克隆工具给它一段 515 秒的参考音频它就能用这个人的音色朗读你指定的文本还能让克隆出的声音切换语言、调整情感与口音。OpenVoice 能做什么OpenVoice 的核心能力可以概括为三点准确的音色克隆。只克隆参考音频的音色即 timbre可以理解为声音的颜色区别于口音和情感生成多语言、多口音的语音。灵活的样式控制。情感、口音、节奏、停顿、语调这些风格参数由基础说话人模型控制克隆音色不锁死风格。零样本跨语言克隆。参考音频的语言和目标语言都不需要在训练集里出现过只要目标语言有一个可用的基础说话人模型即可。2024 年 4 月发布的 V2 在 V1 基础上做了三点改进对比项V1V2音频质量基线换用新训练策略质量更高、更鲁棒语言支持依赖基础说话人模型语言不限原生支持英语、西班牙语、法语、中文、日语、韩语商业使用MIT 许可MIT 许可免费商用一分钟理解原理OpenVoice 的思路是把生成语音拆成两件事基础说话人 TTS 负责把文本念出来并带上想要的风格和语言音色转换器Tone Color Converter负责把这段语音的音色换皮成参考说话人的音色。具体流程是文本加上风格参数口音、情感、语调等送入基础说话人模型产出目标语言的语音同时参考音频经过音色提取器Tone color extractor得到音色特征转换器内部利用 IPA国际音标对齐的特征在抹掉原始音色的同时保留风格再解码输出。两段特征靠tau参数默认 0.3控制音色替换的强度。还有一个容易被忽略的细节转换器的输出会默认嵌入一段基于 wavmark 的音频水印用于标识由 OpenVoice 生成推理时可通过enable_watermark参数关闭openvoice/api.py。不写代码先体验不想碰命令行也可以先跑本地 Gradio 界面python -m openvoice_app --share浏览器打开后粘贴参考音频、输入文本即可试听。项目方还部署了多个语言的在线演示服务可直接上手感受效果操作路径见下图注意官方在 docs/QA.md 里明确说OpenVoice 是一项技术而不是成品个别声音克隆效果不完美属于正常情况它面向的是开发者和研究者。三步完成 OpenVoice 安装安装对 V1 和 V2 完全一致都在 Linux 环境下进行conda create -n openvoice python3.9 conda activate openvoice git clone https://gitcode.com/GitHub_Trending/op/OpenVoice cd OpenVoice pip install -e .pip install -e .会自动装好 requirements.txt 里的 librosa、gradio、jieba 等依赖。模型权重需要单独下载V1 和 V2 各一套按 docs/USAGE.md 中的说明下载 V1 检查点压缩包解压到checkpoints目录若用 V2再下载 V2 检查点解压到checkpoints_v2目录V2 还需要基础说话人 MeloTTS 和日语分词数据额外执行python -m unidic downloadMeloTTS 安装方式同样见 docs/USAGE.md 的 V2 小节。有 NVIDIA GPU 建议用 CUDA 版本 PyTorch推理会明显更快纯 CPU 也能跑只是速度慢。最短上手路径三次调用完成克隆装好后本地克隆一个声音只需要三步对应 demo_part1.ipynb 的核心内容第一步加载基础说话人模型和音色转换器各两行from openvoice.api import BaseSpeakerTTS, ToneColorConverter base_speaker BaseSpeakerTTS(checkpoints/base_speakers/EN/config.json, devicedevice) base_speaker.load_ckpt(checkpoints/base_speakers/EN/checkpoint.pth) converter ToneColorConverter(checkpoints/converter/config.json, devicedevice) converter.load_ckpt(checkpoints/converter/checkpoint.pth)第二步从参考音频提取音色特征target_se内置 VAD 会自动切掉静音段from openvoice import se_extractor target_se, audio_name se_extractor.get_se(reference.mp3, converter, vadTrue)第三步先让基础说话人念出目标文本再用转换器换皮base_speaker.tts(text, output_pathbase.wav, speakerdefault) converter.convert(base.wav, src_se, target_se, output_pathcloned.wav)其中src_se是基础说话人自己的音色特征英文模型直接加载checkpoints/base_speakers/EN/en_default_se.pth即可。V2 的完整用法见 demo_part3.ipynb音色特征存放在checkpoints_v2/ses目录。跨语言语音克隆怎么做跨语言克隆不需要额外步骤。原理是目标语言由基础说话人模型决定参考音频只提供音色。所以流程变成参考音频任意语言用get_se提取target_se选一个会说目标语言的基础说话人V2 可直接用 MeloTTS原生覆盖英、西、法、中、日、韩六种语言其他语言可接自训练或开源的 TTS 模型照常convert输出就是目标语言的克隆语音。demo_part2.ipynb 演示了用第三方 TTS 当基础说话人、同一段文本生成多种语言克隆音频的完整写法。官方 FAQ 也指出只要你有某个语言的基础说话人OpenVoice 就能支持那个语言因为最难的音色转换器已经帮你训练好了。让克隆效果更好的参考音频标准get_se的效果很大程度取决于输入音频建议对照下表检查检查项建议时长515 秒完整语句说话人全程只有一个人说话背景噪声干净无噪嘈杂录音会直接带进结果静音段避免长时间空白VAD 会切但留白过多仍会拖累特征质量文件名每人一个唯一文件名最后一条是新手最容易踩的坑se_extractor会按文件名把提取结果缓存到processed目录且不会自动覆盖。如果你换了同名文件想重新提取旧缓存会静默生效表现就是换了参考音频克隆出来的还是原来的声音。解决方式改文件名或删掉processed里对应的缓存。克隆效果不理想的排查方法按出现频率从高到低排查口音、情感和参考音频不像。这是设计使然不是 bug。OpenVoice 只克隆音色口音和情感由基础说话人模型决定。想要带特定口音或情感的输出应换一个自带该风格的基础说话人模型而不是期待转换器复制这些特征docs/QA.md 有详细说明。音质差、有杂音。逐项确认参考音频是否干净、是否太短、是否多人说话、是否有长静音段、processed缓存是否过期。提示 Silero 模型下载失败。get_vad_segments首次运行会从网络拉取 Silero VAD 模型网络受限时会报错。解决方式是手动下载该模型包并解压到 torch hub 缓存目录如~/.cache/torch/hub/snakers4_silero-vad_master具体路径写法见 docs/QA.md 的 Silero 一节。想接更多语言。基础说话人可替换参考 demo_part2.ipynb 的接法V2 场景下直接换 MeloTTS 对应语言的模型即可。继续深入材料用途docs/USAGE.md完整安装与使用说明含社区贡献的 Windows、Docker 方案docs/QA.md官方常见问题音质、语言、安装问题都先查这里openvoice/api.pyBaseSpeakerTTS、ToneColorConverter的完整接口openvoice/se_extractor.py音色特征提取与 VAD 切分逻辑demo_part1.ipynb / demo_part2.ipynb / demo_part3.ipynb风格控制、跨语言克隆、V2 多语言三个官方示例OpenVoice 采用 MIT 许可V1 和 V2 均允许免费商用。把上面的最短路径跑通后剩下的工作基本就是按场景挑选或训练合适的基础说话人模型让克隆出的声音说你想让它说的语言。【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考