OpenVoice 语音克隆完整指南:4 步跑通本地部署,让克隆的声音说多种语言
OpenVoice 语音克隆完整指南4 步跑通本地部署让克隆的声音说多种语言【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice想让旁白用女儿的声音手头却只有她 10 秒的录音又不想专门训练模型。OpenVoice 是 MIT 与 MyShell 开源的即时语音克隆工具几秒参考音频就能复制音色让这声音说多种语言。本文按原理、本地部署、高频场景带你跑通。 速览OpenVoice 是什么项目速览定位一个音色转换器不重训 TTS只把现有语音的音色换成参考人的V1 版本支持风格控制与跨语言克隆自带英文、中文基础说话人其他语言需自备V2 版本音质更好原生支持英、西、法、中、日、韩六种语言搭配 MeloTTS 使用快速体验本地网页python -m openvoice_app --share许可证MIT商业和研究都免费 原理音色和风格为什么要分开要解决的问题传统做法是给每个人单独训练一个 TTS 模型成本高、周期长。你真正想要的往往只是用这个人的音色而情感、口音、语速这些还是想自己控制。关键设计OpenVoice 把语音生成拆成两个角色。基础说话人 TTS 模型决定怎么说话——情感、口音、节奏都由它管音色转换器只负责用谁的声音说话——先把参考音频编码成一个音色向量再解码基础说话人输出的音频时只替换其中的音色其余特征原样保留。整个过程按 IPA国际音标可以理解为语音的音标字典做对齐所以换语言时音色也不会跑偏。带来的效果一段参考音频可以在多种语言间复用想换情感或口音只需换一个基础说话人模型音色转换器不用重训。OpenVoice 的 IPA 对齐流程左侧基础说话人 TTS 负责风格右侧编码器-流匹配-解码器只替换音色 从零跑通4 步装好并克隆第一段声音第 1 步建好环境并安装项目做什么创建 Python 3.9 环境装好依赖。项目要求 Python ≥3.9依赖在 setup.py 中锁定版本。conda create -n openvoice python3.9 conda activate openvoice git clone https://gitcode.com/GitHub_Trending/op/OpenVoice cd OpenVoice pip install -e .验证成功运行python -c import openvoice; print(ok)能打印ok即可。第 2 步放好模型文件做什么下载检查点模型权重包。V1 解到项目根目录的checkpoints/V2 解到checkpoints_v2/。下载入口见官方使用文档 docs/USAGE.md。用 V2 的话还需按该文档安装 MeloTTS并执行python -m unidic download验证成功ls checkpoints能看到base_speakers和converter两个目录。第 3 步初始化模型提取音色做什么加载基础说话人和音色转换器从参考音频提取目标音色向量。仓库自带示例音频可直接试用真实录音时请给每个说话人起唯一文件名缓存按文件名区分。import torch from openvoice import se_extractor from openvoice.api import BaseSpeakerTTS, ToneColorConverter device cuda:0 if torch.cuda.is_available() else cpu ckpt_base, ckpt_converter checkpoints/base_speakers/EN, checkpoints/converter base_speaker_tts BaseSpeakerTTS(f{ckpt_base}/config.json, devicedevice) base_speaker_tts.load_ckpt(f{ckpt_base}/checkpoint.pth) tone_color_converter ToneColorConverter(f{ckpt_converter}/config.json, devicedevice) tone_color_converter.load_ckpt(f{ckpt_converter}/checkpoint.pth) target_se, _ se_extractor.get_se(resources/example_reference.mp3, tone_color_converter, vadTrue)验证成功processed/下出现以文件名命名的目录里面有se.pth音色向量缓存。这里vadTrue表示用 VAD 切分音频VAD 是自动判断音频里哪一段有人说话的工具能把长录音切成短段再提取音色。第 4 步生成第一段克隆音频做什么先让基础说话人合成一段语音再交给音色转换器换成参考人的音色。source_se torch.load(f{ckpt_base}/en_default_se.pth).to(device) base_speaker_tts.tts(This audio is generated by OpenVoice., outputs/tmp.wav, speakerdefault, languageEnglish, speed1.0) tone_color_converter.convert(outputs/tmp.wav, src_sesource_se, tgt_setarget_se, output_pathoutputs/output_en_default.wav)验证成功outputs/里出现tmp.wav基础音色和output_en_default.wav克隆结果。两个文件对比播放第二句应是参考人的音色。完整示例在 demo_part1.ipynb。场景实战三个高频用法场景一如何调整情感、语速和说话风格风格由基础说话人控制。英文基础说话人支持 8 种风格friendly、cheerful、excited、sad、angry、terrified、shouting、whispering换风格时要同步换对应的音色向量en_style_se.pth。speed参数可调语速0.9 会慢一点。source_se torch.load(f{ckpt_base}/en_style_se.pth).to(device) base_speaker_tts.tts(text, outputs/tmp.wav, speakerwhispering, languageEnglish, speed0.9) tone_color_converter.convert(outputs/tmp.wav, src_sesource_se, tgt_setarget_se, output_pathoutputs/output_whispering.wav)验证成功outputs/output_whispering.wav是耳语效果音色不变。注意中文基础说话人目前只支持 default 风格。场景二如何让同一音色说中文和英文V1 的跨语言做法很直接换基础说话人音色向量不动。target_se提取一次中英通用。zh_tts BaseSpeakerTTS(checkpoints/base_speakers/ZH/config.json, devicedevice) zh_tts.load_ckpt(checkpoints/base_speakers/ZH/checkpoint.pth) zh_tts.tts(今天天气真好我们一起出去吃饭吧。, outputs/tmp.wav, speakerdefault, languageChinese) tone_color_converter.convert(outputs/tmp.wav, src_setorch.load(checkpoints/base_speakers/ZH/zh_default_se.pth).to(device), tgt_setarget_se, output_pathoutputs/output_chinese.wav)V2 则原生支持英、西、法、中、日、韩六语用 MeloTTS 当基础说话人各语言对应的源音色向量在checkpoints_v2/base_speakers/ses/里流程见 demo_part3.ipynb。想扩展更多语言只要换一个该语言的基础说话人即可原理演示见 demo_part2.ipynb。场景三本地网页界面怎么开不想写代码直接启动 Gradio 网页版python -m openvoice_app --share验证成功终端打印出访问地址浏览器打开后输入文本、上传参考音频即可克隆。网页会自动检测输入文本是中文还是英文并选对应模型--share会额外生成一个临时公网链接方便手机试听。实现代码在 openvoice/openvoice_app.py。调优与提速现象原因解法长音频切分慢、等待久Whisper 按词边界切分要跑 medium 模型传vadTrue走 VAD 路径按约 10 秒切段不依赖 WhisperCPU 机器上 Whisper 切分报错代码中 Whisper 路径写死了 GPU 和 fp16用vadTrue绕过见 openvoice/se_extractor.py输出音频里藏有水印ToneColorConverter默认开启 wavmark 隐形水印初始化时传enable_watermarkFalse关闭公开部署建议保留换了参考音频结果却不变get_se按文件名缓存到processed/不会自动覆盖删掉processed/下同名文件夹后再跑避坑指南5 个高频问题Q1运行 get_se 时报 Silero 下载失败机器无法联网拉取 silero-vad。手动下载 silero-vad 的 zip 包解压到~/.cache/torch/hub/snakers4_silero-vad_master详见 docs/QA.md。Q2生成的口音或情感不像参考人OpenVoice 只克隆音色口音和情感由基础说话人模型决定。想换就换基础说话人比如把 EN 检查点换成 ZH 检查点。Q3换了参考音频输出却没变化se_extractor把结果缓存在processed/目录且不覆盖。删掉该目录下同名文件夹再重新运行即可。Q4生成音频有杂音或音色发虚对照检查参考音频是否有背景噪声、是否过短、是否多人说话、是否有大段静音。换一条干净的单人短音频重跑。Q5中文输出能像英文那样换情感风格吗不能。中文基础说话人只支持 defaultwhispering、shouting 等 8 种风格目前只在英文基础说话人上可用。总结OpenVoice 把音色和风格拆开基础说话人管怎么说话转换器管用谁的声音一段参考音频即可跨语言复用MIT 协议可自由商用。后续可以关注 V2 原生语言覆盖的扩展以及社区接入的新基础说话人——每接入一个它就多会一种语言。【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
