语音DIY更换数据包(免费版)
> 给你的 AI 助手换上你想要的声音。本地合成、数据不出门、换声零改码。
> 本包为免费版:不含支付功能与授权限制。
触发词
- 中文:语音DIY、换声音、声音克隆、音色更换、自定义语音、本地TTS、GPT-SoVITS、语音包
- English: voice diy, voice swap, voice clone, local tts, custom voice, gpt-sovits
- 适用场景关键词:AI 伴侣、数字人、语音助手、本地部署、数据隐私
包内文件
| 文件 | 作用 |
|---|---|
scripts/pangha_tts.py |
TTS 引擎封装:GSV 优先、edge-tts 自动兜底、连续 3 次失败熔断 60s |
scripts/diana_speak.py |
播放端:逐句合成 + 流式播放(内存解码不落盘),被打断即闭嘴 |
scripts/gsv_launch.py |
GPT-SoVITS 服务无窗口启动器(pythonw,适合挂计划任务) |
docs/diana_audio_persona.md |
音频设备播报人格模板(可自行改写语气) |
voice_env_example.txt |
声音配置环境变量示例 |
语音DIY更换指南.md |
完整教程(三级方案 + 常见问题) |
快速开始
方案 A:换现成声音(5 分钟,无需录音)
setx TTS_EDGE_VOICE "zh-CN-YunxiNeural"
重启语音进程即生效。候选:zh-CN-XiaoxiaoNeural(默认女声)/ zh-CN-XiaoyiNeural / zh-CN-YunxiNeural / zh-CN-YunyangNeural。
方案 B:参考音频零样本克隆(推荐)
- 录 5–10 秒干净音频(安静环境、普通话、32kHz 单声道为佳);
- 逐字听写文稿(必须与音频一字不差);
- 三个环境变量:
setx TTS_GSV_URL "http://127.0.0.1:9880/tts"
setx TTS_GSV_REF_AUDIO "D:\my_voice\my_voice.wav"
setx TTS_GSV_PROMPT_TEXT "这里填你录音的逐字文稿。"
- 启动 GSV 服务(见下),重启语音进程。
方案 C:训练专属音色(最像本人)
用 GPT-SoVITS 官方 WebUI:5–10 分钟带情绪录音 → 降噪/切分/打标 → 微调训练 → 在 scripts/gsv_launch.py 中把权重路径改为你的产物,并同步设置参考音频环境变量。
GSV 服务启动
pythonw scripts/gsv_launch.py
- 无窗口常驻(pythonw 直跑,勿用 python.exe——会闪黑窗);
- 日志在脚本同目录
_gsv_voice.log; - 验证:POST
http://127.0.0.1:9880/tts,body 含text / text_lang / ref_audio_path / prompt_text / prompt_lang。
内置可靠性机制(免配置)
- 自动兜底:GSV 连续 3 次失败 → 熔断 60 秒,期间自动切 edge-tts,链路永不卡死;
- 流式播放:逐句合成边下边播,短句首音 0.5–1.6 秒;
- 打断友好:播放循环每句前检查打断标志,用户开口立即闭嘴。
环境变量一览
| 变量 | 作用 | 默认值 |
|---|---|---|
TTS_EDGE_VOICE |
edge-tts 兜底声音 | zh-CN-XiaoxiaoNeural |
TTS_GSV_URL |
GSV 服务地址 | http://127.0.0.1:9880/tts |
TTS_GSV_REF_AUDIO |
参考音频绝对路径 | 作者音色(diana_xx) |
TTS_GSV_PROMPT_TEXT |
参考音频逐字文稿 | 作者音色对应文稿 |
不设置任何变量 = 作者默认配置,行为与原版完全一致。
常见问题
| 现象 | 处理 |
|---|---|
| 换了变量没生效 | setx 是用户级变量,必须重启语音进程才读到 |
| GSV 报 400 | ref_audio_path 必须绝对路径;prompt_text 与音频不一致是最常见原因 |
| 声音忽男忽女 | edge 兜底声音与 GSV 音色性别不一致,统一即可 |
| 首次合成慢 | 模型冷启动 10–20s,热态恢复 0.5–1.6s |
依赖
- 方案 A:仅需
edge-tts(pip install edge-tts,联网使用微软免费接口) - 方案 B/C:GPT-SoVITS 环境(含 api_v2.py)+
requests - 播放:ffmpeg(加入 PATH)
行为与隐私声明
- GSV 为本地合成,语音数据不出本机;方案 A 的 edge-tts 走微软免费接口(文本上云);
- 本包不含任何支付、授权、上报代码;
- 克隆声音前请确认拥有该声音的授权,仅限本人声音或已获明确授权的对象。