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/11/2 10:26:00

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

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

2026/11/1 11:35:21

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

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

2026/11/2 10:25:09

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

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

2026/11/2 10:25:55

机器人与多智能体系统技术演进与RMAS 2026会议前瞻

1. 机器人与多智能体系统领域的技术演进 机器人与多智能体系统(Multi-Agent Systems, MAS)作为人工智能和自动化领域的重要分支,近年来呈现出快速发展的态势。从工业机器人到服务机器人,从单一智能体到复杂多智能体协作&#xff0…

2026/11/2 10:25:54

COMSOL求解器配置实战:选型、非线性收敛与后处理

1. 求解器不是黑盒:先搞清楚它在替我们做什么刚接触 COMSOL 那阵子,我习惯性地点完“计算”,然后盯着进度条发呆。模型跑完了就看个云图,跑不动了就加内存、换电脑,实在不行就把网格划粗一点。后来被一个多物理场耦合的…

2026/11/2 10:25:54

Harness:面向本地大模型的轻量级胶水框架

1. Harness到底是什么?别被“工程”“插件”“失败加载”这些词绕晕了最近在技术社区和开发者群里,Harness这个词出现频率高得有点反常——不是作为某个老牌CI/CD平台的名字,而是和DeepSeek、CodeBuddy、ClaudeCode、Skill、RPA这些词紧密捆绑…

2026/11/2 10:25:54

OpenCode Harness智能体运行时:可调试、可审计的代码级执行底盘

1. OpenCode 智能体不是“另一个AI聊天框”,而是可嵌入、可调试、可审计的代码级智能体运行时OpenCode 这个名字在2024年下半年开始密集出现在技术社区和工程团队的内部分享中,但它真正被大量开发者注意到,是在一次某头部金融科技公司内部架构…

2026/11/2 10:25:54

目标导向型代理模式:原理、实现与应用场景

1. 目标导向型代理模式解析 目标导向型代理模式(Goal-Oriented Agentic Pattern)是智能体设计模式中的核心范式之一。这种模式赋予AI系统明确的目标意识,使其能够自主规划行动路径,持续监控目标进展,并根据环境变化动态…

2026/11/2 10:20:53

Paperclip视频制作全攻略:从AI生成到复古字幕渲染

"Paperclip",一枚回形针。在现实世界里,它是办公桌上最不起眼的小东西:两根钢丝弯两下,把一堆乱七八糟的纸夹在一起。但在最近的网络热词序列里,同一个词却指向了一种完全不同的玩法——一条条AI生成的离谱画…

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
免费获取方案
☎咨询二维码 ☎ ↑