几秒音频克隆你的音色:OpenVoice 语音克隆本地部署完整实战
2026/9/1 13:24:44 网站建设 项目流程

几秒音频克隆你的音色:OpenVoice 语音克隆本地部署完整实战

【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice

想让视频、播客、游戏角色都用上"自己的声音",却被闭源 API 的收费和账号限制卡住?OpenVoice 是 MIT 和 MyShell 开源的即时语音克隆方案:给它几秒参考音频,就能复制出你的音色,再用这个音色说中英文、换情感风格,MIT 协议免费商用。这篇带你从零在本地跑通它,再上手两个最实用的进阶玩法。

一分钟认识 OpenVoice

这节给你一份项目底细,读完你就知道它适不适合你。

  • 定位:音频基础模型级的即时语音克隆技术方案,不是开箱即用的产品,目标用户是开发者和研究者
  • 核心能力:精准复制参考音频的音色(tone color),并支持多语言、多口音输出
  • 风格控制:对情感、口音、节奏、停顿、语调等做细粒度控制,内置耳语、兴奋、悲伤等多种说话风格
  • 零样本跨语言:参考语音和目标语音的语言都不需要在训练集里,就能跨语言克隆
  • V2 升级:音质更好,原生支持英语、西班牙语、法语、中文、日语、韩语六种语言
  • 许可证:MIT,V1 和 V2 均免费商用
  • 硬件门槛:建议 NVIDIA GPU,无 GPU 时模型可回退 CPU,但部分切分流程直接要求 GPU
  • 代码入口:核心推理类在 openvoice/api.py,即 BaseSpeakerTTS 和 ToneColorConverter 两个主类

它是怎么做到的

这节用大白话讲清原理,你之后调参、排查问题都会顺很多。

OpenVoice 把语音克隆拆成两步,像"画家画内容、调色师定配色"。第一步由 BaseSpeakerTTS(基础说话人 TTS 模型,负责把文本合成语音)画内容:口音、情感、节奏都由它决定;第二步由 ToneColorConverter(音色转换器)定配色:它先从你的参考音频里提取一个代表"声音长相"的向量——术语叫音色嵌入,即把一个人的嗓音压缩成一串数字——再把这份音色覆盖到 TTS 生成的语音上。

说白了,转换器只换音色,不改内容。这也解释了它为什么能跨语言:文本内容交给 TTS,音色交给转换器,两者互不干扰,所以用中文 TTS 合成的语音,也能直接"换皮"成任何人的声音。

从零跑通

这节给你最短安装路径和一个最小示例,跟着敲就能听到第一句克隆音频。

本地部署最快路径

用 conda 建一个 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 .

接着打开 docs/USAGE.md,按里面的官方链接下载 V1 检查点压缩包,解压到checkpoints目录(用 V2 则解压到checkpoints_v2,并额外安装 MeloTTS)。装好后一条命令启动 Gradio 界面:

python -m openvoice_app

看到什么界面说明成功了

浏览器会自动打开标题为 "MyShell OpenVoice" 的页面。在 Text Prompt 输入一句话,Style 选 default,Reference Audio 上传一段 10 秒左右的干净录音,勾选 Agree 后点 Send——Synthesised Audio 区域出现可播放的音频,且音色贴近你的参考录音,就算跑通了。

不想开网页?用最小代码示例

想在自己的代码里调用,demo_part1.ipynb 就是官方最小示例,核心四步:

import torch from openvoice import se_extractor from openvoice.api import BaseSpeakerTTS, ToneColorConverter device = 'cuda' if torch.cuda.is_available() else 'cpu' base_tts = BaseSpeakerTTS('checkpoints/base_speakers/EN/config.json', device=device) base_tts.load_ckpt('checkpoints/base_speakers/EN/checkpoint.pth') source_se = torch.load('checkpoints/base_speakers/EN/en_default_se.pth').to(device) converter = ToneColorConverter('checkpoints/converter/config.json', device=device) converter.load_ckpt('checkpoints/converter/checkpoint.pth') target_se, name = se_extractor.get_se('resources/example_reference.mp3', converter, vad=True) base_tts.tts('Hello, this is OpenVoice.', 'outputs/tmp.wav', speaker='default', language='English') converter.convert('outputs/tmp.wav', source_se, target_se, output_path='outputs/out.wav')

运行后outputs/out.wav能正常播放、音色贴近参考音频,说明代码级调用也通了。

进阶玩法

这节挑两个最有价值的进阶场景,每个都按"场景→做法→效果"给你完整路径。

玩法一:同一音色换风格说话

场景:你想让克隆出的声音既能正常播报,也能耳语、发怒、装开心。做法:OpenVoice 的英文基础说话人内置了 default、whispering、cheerful、terrified、angry、sad、friendly 等多种风格说话人,在 Gradio 的 Style 下拉框直接选,或在代码里把speaker参数换成对应风格,完整流程见 demo_part1.ipynb。效果:音色始终是你的,语气情绪按所选风格走,做有声书和配音时一句话就能切换情绪。

玩法二:零样本跨语言克隆

场景:你只有一段中文录音,却想让"你"用英文说话(反过来也行)。做法:分别加载checkpoints/base_speakers/ENcheckpoints/base_speakers/ZH两套基础说话人,用同一份 target_se 音色嵌入,先让目标语言的 TTS 合成语音,再用 ToneColorConverter 的 convert 方法覆盖音色,demo_part2.ipynb 里有现成代码。效果:即使目标语言不在训练集里,输出语音也能基本保持原说话人的音色,实现零样本跨语言。

踩坑自救

这节把官方 QA 里最常见的真问题整理成表,遇到问题直接对号入座。

现象原因处理
运行时提示 Silero 模型下载失败openvoice/se_extractor.py 的 get_vad_segments 需联网拉取 silero-vad 模型,断网就失败按 docs/QA.md 手动下载该模型压缩包,解压到 ~/.cache/torch/hub/snakers4_silero-vad_master
报错 "input audio is too short"参考音频太短,VAD 切不出可用语音段换一段 10 秒以上、语句完整的干净录音
生成音频有噪声、音质差参考音频带背景噪声、过短、多人说话或含长段空白换清晰单人录音;若参考文件与之前重名,先删掉 processed 缓存目录再重新提取
口音、情绪不像参考人OpenVoice 只克隆音色,口音和情绪由基础说话人 TTS 决定换一个对应口音/情绪的基础说话人模型,或选用合适风格
无 GPU 时跑得极慢或报 CUDA 错误模型默认优先 cuda,se_extractor 的 whisper 切分分支直接要求 GPU配 NVIDIA GPU 运行;纯 CPU 环境保持 vad=True,绕开 whisper 分支

接下来可以玩什么

这节给你几条延伸路线,都带仓库内真实路径,照着点就能深入。

  • demo_part3.ipynb:OpenVoice V2 示例,配合 MeloTTS 原生合成英语、中文、日语等六种语言,音质优于 V1
  • docs/USAGE.md:官方使用说明,收录 Windows、Docker 等社区贡献的安装指南
  • openvoice/text/:文本清洗与音标预处理模块,想了解多语言文本如何进入模型就从这里看起
  • openvoice/api.py:两个核心类所在文件,想接入自己训练的基础说话人,替换这里的 BaseSpeakerTTS 即可

OpenVoice 把"换音色"拆成了 TTS 生成与音色覆盖两步,你只需把参考音频质量管好,剩下的交给它。现在就按"从零跑通"那节装好环境,用你自己的一段 10 秒录音,克隆出属于你的第一句声音。

【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询