Voice Cloner — 实时语音克隆桌面应用
基于 SV2TTS 三阶段模型的语音克隆系统,支持系统音频实时捕获、声音注册与文本到语音合成。
系统音频 (WASAPI Loopback)
↓ [实时捕获 + VAD 自动切分]
语音片段
↓ [SV2TTS Encoder / GPT-SoVITS]
声音特征 → 注册到声音库
↓ [TTS 合成]
合成语音 → 播放 / 导出 WAV
面板
功能
Model
选择模型路径、自动检测 GPU/CPU、加载模型
Capture
WASAPI 环回捕获系统音频,VAD 自动切分语音段,试听预览
Register
选择音频文件(WAV/MP3/AMR/SILK) → 提取声音特征 → 注册声音
Synthesize
选择已注册声音 → 输入文本 → 合成语音 → 播放/保存
Library
浏览、搜索、删除已注册声音,导出/导入声音特征
LLM Settings
配置大模型接口(DeepSeek/Qwen/GLM),用于文本预处理和参数推荐
voice-cloner/
├── main.py # 入口文件
├── pyproject.toml # 项目依赖
│
├── app_config/
│ └── config.py # 全局配置(路径发现、配色系统、GPU 检测)
│
├── audio_capture/ # 实时音频捕获模块
│ ├── loopback.py # WASAPI Loopback 捕获(sounddevice + PyAudio 双后端)
│ ├── vad_detector.py # WebRTC VAD + 能量检测双模语音活动检测
│ └── voice_buffer.py # 语音段缓冲区管理(自动保存 WAV)
│
├── audio_decoder/
│ └── decoder.py # 统一音频解码层(WAV/MP3/AMR/SILK v3/AUD)
│
├── cloner/
│ ├── __init__.py
│ ├── engine.py # SV2TTS 三阶段管线(Encoder→Synthesizer→Vocoder)
│ ├── gptsovits_engine.py # GPT-SoVITS 引擎(零样本声音克隆)
│ ├── llm_client.py # LLM API 客户端(DeepSeek/Qwen/GLM)
│ ├── text_preprocessor.py # TTS 文本预处理(数字转读、多音字、中英混排)
│ ├── param_advisor.py # LLM 驱动的合成参数推荐
│ └── audio_enhance.py # 音频后处理增强
│
├── voice_manager/
│ └── manager.py # 声音库管理器(CRUD + JSON 持久化 + 单例)
│
├── gui/
│ ├── main_window.py # PyQt5 主窗口(暗色极简 Retro-Futuristic 风格)
│ ├── i18n.py # 中英文国际化(数据驱动,动态切换)
│ ├── panels/
│ │ ├── model_panel.py # 模型加载面板
│ │ ├── capture_panel.py # 音频捕获面板
│ │ ├── registration_panel.py # 声音注册面板
│ │ ├── synthesis_panel.py # 语音合成面板
│ │ ├── library_panel.py # 声音库管理面板
│ │ └── llm_settings_panel.py # LLM 配置面板
│ └── widgets/
│
├── voice_db/ # 声音库存储
├── captured_voices/ # 捕获的语音段存储
└── tests/ # 单元测试
引擎
说明
SV2TTS
Speaker Encoder(256维声纹)→ Tacotron2 → WaveRNN,16kHz 输出
GPT-SoVITS
BERT → GPT → VITS → BigVGAN,零样本克隆,32kHz 高保真输出
组件
技术
环回捕获
Windows WASAPI Loopback(sounddevice 主力 + PyAudio 回退)
语音检测
WebRTC VAD + 能量双模检测,30ms 帧级判断
流管理
播放锁 + 暂停/恢复机制 + 后台线程隔离,解决双流设备独占冲突
功能
实现
LLM 预处理
数字→中文读法、多音字消歧、中英混排,离线正则回退
参数推荐
LLM 根据文本语境和情感推荐 top_k/temperature/speed
框架 : PyQt5
风格 : 暗色极简 Retro-Futuristic(深空黑 + 霓虹青 + 暖琥珀)
国际化 : 数据驱动 i18n,中英文动态切换
Windows 10/11
Python 3.9+
PyTorch 2.0+
ffmpeg(用于 AMR/SILK 解码)
SV2TTS 模型权重(首次运行自动下载)
# 1. 克隆本项目
git clone https://github.com/RWRHACKER/voice-cloner.git
cd voice-cloner
# 2. 克隆 SV2TTS 到同级目录
cd ..
git clone https://github.com/CorentinJ/Real-Time-Voice-Cloning.git Real-Time-Voice-Cloning-master
# 3. (可选) 克隆 GPT-SoVITS 到同级目录
git clone https://github.com/RVC-Boss/GPT-SoVITS.git
# 4. 安装依赖
cd voice-cloner
pip install -e .[cpu] # CPU 版本
# 或 pip install -e .[cuda] # GPU 版本
# 5. 安装 ffmpeg (Windows)
# 下载: https://ffmpeg.org/download.html
# 解压后将 bin/ 目录加入系统 PATH
加载模型 → 在「模型」面板选择引擎并加载
捕获语音 → 在「捕获」面板点击开始,外放音频即可自动采集
注册声音 → 选中捕获的语音段,命名并注册到声音库
合成语音 → 在「合成」面板选择声音,输入文本,生成克隆语音
变量
说明
默认值
SV2TTS_PATH
SV2TTS 项目路径
../Real-Time-Voice-Cloning-master
在应用内「LLM Settings」面板配置:
Provider: DeepSeek / Qwen / GLM
API Key
Model 名称
MIT License