OpenVoice 语音克隆完整指南:4 步跑通本地部署,让克隆的声音说多种语言

发布时间:2026/11/2 9:09:06

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),仅供参考
延伸阅读

更多相关文章

2026/10/25 14:20:26

Deep Q-Learning实战:交叉路口自适应信号控制与训练优化

简介:面向智能交通与强化学习研究者,这是一份基于SUMO的深度Q学习交通信号控制完整示例框架,源自硕士论文的简化代码,适合希望快速上手DRL与SUMO联调的初学者或论文复现者。项目围绕“在交叉路口选择最优相位以最大化通行效率”展…

2026/11/1 11:35:21

从SpaceX看宏大技术愿景的工程验证:成本、复用与闭环

SpaceX 提出“公司价值将超过地球”这种说法时,大多数人听到的是一句市值口号。但如果把它当成一个工程命题来看,真正值得拆解的并不是估值数字,而是它背后的技术能力、成本结构和发展路径。一家航天公司要支撑所谓“冲出地球”的价值判断&am…

2026/10/30 10:28:13

C/C++集成Live2D实时驱动:视线追踪与眨眼交互方案

最近在做一个桌面虚拟形象交互项目时,需要在纯 C/C 环境下把 Live2D 模型跑起来,并且实时驱动表情、视线和触摸动作。真正用 C/C Dear ImGui 集成 Live2D,再叠加视线追踪、眨眼检测和触摸触发动作的完整方案并不多见。本文基于实际项目经验&…

2026/11/2 9:05:33

零基础Python AI学习路线:四阶段从入门到应用开发实战

1. 为什么“保姆级”路线反而最容易把人带偏先把话说在前头:市面上打着“保姆级”旗号的 Python AI 学习路线,我翻过不下几十份,真正能让人从零走到能跑通一个 AI 应用的,不到三成。大部分路线的问题不在于内容错,而在…

2026/11/2 9:05:33

脑机接口语义拼图技术实现自然语言解码突破

1. 项目背景与核心突破脑机接口(Brain-Computer Interface, BCI)技术近年来在单字识别和简单指令解码方面取得了显著进展,但实现连续自然语言输出始终是难以攻克的瓶颈。浙江大学联合研究团队在ICLR 2026发表的这项研究,创新性地提…

2026/11/2 9:05:33

C++五子棋实战工程:人机对战+双人联机+AI算法验证

简介:这是一份面向C初学者与游戏编程入门者的五子棋实战项目资源,聚焦算法逻辑、类设计与人机交互实现,帮助学习者掌握游戏开发核心流程。资源包含7个文件,涵盖3个可执行程序(支持鼠标/键盘操作的“人对人”“人对机”…

2026/11/2 9:05:33

TM20K电商广告推荐序列建模:从RNN到Transformer与GNN的实战解析

1. 从TM20K这个数据集说起:电商广告推荐里的序列建模到底在解决什么电商广告推荐这个场景,做过的朋友都知道,它跟传统的信息流推荐有一个本质区别:用户的每一次点击、加购、下单,背后都带着极强的意图连续性。你在淘宝…

2026/11/2 9:05:33

Python AI入门指南:从环境搭建到第一个手写数字识别项目

1. 为什么Python是AI入门的首选语言1.1 从零基础到AI应用的最短路径很多人一听到“AI”两个字,第一反应是数学难、门槛高、需要读一堆论文。我刚开始接触这个领域的时候也是这么想的,直到真正动手跑通第一个模型,才发现事情远没有想象中那么复…

2026/11/2 9:00:30

前端工程师转AI应用开发:三个月实战学习路线图

动手写这篇之前,我先把话说在前面:网上讲“AI应用”的教程很多,但大部分要么是理论堆砌,要么是一堆装满名词的购物清单。真正想从一个写页面的前端,转成能独立搞定AI应用前端的工程师,缺的不是资料&#xf…

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业级SPI隔离设计:硬件抗扰与信号完整性实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

PLFM_RADAR:主动探测数据通道,构建低误报的数据感知系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业SPI隔离设计:MAX14431与STM32F746硬件抗干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑