OpenVoice 语音克隆本地部署完整指南:3秒音频秒变你的专属 TTS
【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice
你手上有几秒的人声录音,想让这段声音念出任意文字,还能切换情绪、调整语速,甚至跨语言朗读?OpenVoice 就是干这个的。这篇指南带你从拉仓库到听到第一段合成语音,再把最常见的坑提前标出来,省去反复折腾的时间。
环境准备:先对一遍这份清单
OpenVoice 官方只支持 Linux 环境,如果你用 Windows 或 macOS,可以参考 docs/USAGE.md 末尾社区贡献的安装方式。
| 检查项 | 要求 | 备注 |
|---|---|---|
| 操作系统 | Linux | 官方安装流程仅针对 Linux |
| Python 版本 | 3.9 | 用 conda 隔离,别用系统自带的 |
| PyTorch | 自行安装 | GPU 环境需匹配 CUDA 版本 |
| 磁盘空间 | 约 2 GB | 主要是模型权重文件 |
依赖全部锁定在 requirements.txt 里,pip install -e .会一次装齐,包括librosa==0.9.1、faster-whisper==0.9.0、gradio==3.48.0等。
最短路径:先听到第一段合成语音
下面这几条命令跑完,你就能在终端里听到 OpenVoice 生成的声音了。
# 创建独立环境,Python 版本必须 3.9 conda create -n openvoice python=3.9 -y conda activate openvoice # 克隆仓库并安装 git clone https://gitcode.com/GitHub_Trending/op/OpenVoice cd OpenVoice pip install -e .模型权重不随仓库分发,需要单独下载:V1 的 checkpoint 压缩包解压到项目根目录下的checkpoints/文件夹,V2 解压到checkpoints_v2/(下载地址见 docs/USAGE.md 对应章节)。
核心代码就四步,直接照抄:
import torch from openvoice import se_extractor from openvoice.api import BaseSpeakerTTS, ToneColorConverter device = "cuda:0" if torch.cuda.is_available() else "cpu" # 1. 加载基础 TTS 和音色转换器 base_tts = BaseSpeakerTTS('checkpoints/base_speakers/EN/config.json', device=device) base_tts.load_ckpt('checkpoints/base_speakers/EN/checkpoint.pth') converter = ToneColorConverter('checkpoints/converter/config.json', device=device) converter.load_ckpt('checkpoints/converter/checkpoint.pth') # 2. 从参考音频提取音色向量 target_se, _ = se_extractor.get_se('resources/example_reference.mp3', converter, target_dir='processed', vad=True)再调用base_tts.tts()生成一段中间音频,接着用converter.convert()把音色"换"成你的,就完事了。原理上它把音色和风格拆开处理:基础 TTS 负责"说什么、怎么说",转换器只负责"用谁的声音说",互不干扰。
场景拆解:三个高频用法
换个情绪、换个语速
基础 TTS 的speaker参数控制说话风格,可选值有:friendly、cheerful、excited、sad、angry、terrified、shouting、whispering。比如想生成一段耳语:
# speaker 换成 whispering,speed 调低到 0.9 base_tts.tts("This audio is generated by OpenVoice.", "outputs/tmp.wav", speaker='whispering', language='English', speed=0.9)换完风格后别忘了重新加载对应的source_se文件(如en_style_se.pth),否则音色转换会对不上。完整示例在 demo_part1.ipynb 里,每个风格都有对应代码块。
中文 / 英文跨语言朗读
基础 TTS 内置了EN和ZH两个语言标记,直接传language='Chinese'即可切换。V2 版本则原生支持英语、西班牙语、法语、中文、日语、韩语六种语言,开箱即用。跨语言克隆的参考音频和输出文本可以是不同语言,不需要训练集里见过这种组合。具体写法看 demo_part2.ipynb,V2 用法看 demo_part3.ipynb。
不写代码,直接开 Gradio 界面
python -m openvoice_app --share浏览器打开本地地址就能上传参考音频、输入文字、点生成,适合先快速验证效果再回头改参数。
避坑指南:踩过的坑都在这了
| 现象 | 原因 | 怎么解决 |
|---|---|---|
| 生成音频背景有杂音 | 参考音频里有环境噪音、多人说话或大段静音 | 换一段干净、单人、无长静音的录音,参考 docs/QA.md 里的排查清单 |
| 换参考音频后效果没变 | se_extractor按文件名缓存到processed/文件夹,同名文件不会覆盖 | 给每段参考音频起唯一文件名,或手动删掉processed/目录 |
| 安装时报 Silero VAD 下载失败 | 机器无法访问 GitHub,se_extractor.py里的 VAD 模型拉不下来 | 手动下载对应 zip 包,解压到~/.cache/torch/hub/下(具体路径见 docs/QA.md) |
| 音色对了但情感 / 口音不像参考人 | OpenVoice 只克隆音色,不克隆情感和口音,风格由基础 TTS 模型决定 | 换用带目标情感的基础说话人模型,或调整speaker参数 |
| 参考音频太短(< 2 秒)效果差 | 音色向量提取信息不足 | 用3 秒以上的清晰人声,别追求"越短越好" |
进阶方向与更多资源
- 官方使用文档:docs/USAGE.md,涵盖 V1/V2 安装、Gradio 启动、各语言 checkpoint 说明
- 常见问题:docs/QA.md,质量排查、语言支持、安装报错都有
- 风格控制示例:demo_part1.ipynb,每种情感风格都有可直接跑的代码
- 跨语言克隆示例:demo_part2.ipynb
- V2 多语言示例:demo_part3.ipynb
- 水印功能:
ToneColorConverter默认开启wavmark水印(见 openvoice/api.py),公开部署时建议保留,避免语音被滥用 - 许可协议:V1 和 V2 均为MIT License,商业使用免费
【免费下载链接】OpenVoiceInstant voice cloning by MIT and MyShell. Audio foundation model.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVoice
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考