VoiceStudio 本地微调 TTS 指南:如何最快练出专属音色
【免费下载链接】VoiceStudioVoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription & audiobook creation in 646 languages.项目地址: https://gitcode.com/GitHub_Trending/om/VoiceStudio
VoiceStudio 是一个开源、完全本地运行的语音合成平台。这篇教程带你跑通 OmniVoice 微调全流程:几小时干净人声、2 张 GPU、5000 步,音色直接写进模型权重,数据全程不出机器。
最终效果预览:训完到底拿到什么
先回答"训完手上有什么",再决定要不要动手。
拿到的是一个 checkpoint 目录。输出目录下任意一个检查点(比如checkpoint-5000)都能直接加载进 OmniVoice 引擎。之后日常合成只需要给文本,不用再每次喂参考音频。
两种情况不用训:
- 零样本克隆已经够稳,参考音频又不属于敏感资产,训练只是白花算力。
- 语音数据不足 1 小时。这种情况下一段好的 3~10 秒参考音频,比勉强微调的效果更可靠。
确定要训,先核对前置条件。
前置条件核对:硬件、数据与磁盘下限
动手前逐项过一遍,避免分词阶段白跑。
| 项目 | 下限 | 说明 |
|---|---|---|
| GPU | 2 张 | accelerate 每张卡起一个进程,进程数与卡数一致 |
| 语音数据 | 几小时 | 干净单人人声即可 |
| 音频格式 | wav / flac / mp3 | 分词时统一重采样到 24 kHz,不用手工转码 |
| 磁盘 | 预留充足空间 | tar 分片与检查点全部落在本地目录 |
环境就绪,开始处理数据。
数据准备:写清单与音频分词
目标:把一堆音频文件变成训练引擎能直接读的 WebDataset 分片。
第一步写 JSONL 清单,一行一条样本,包含唯一 ID、音频绝对路径、转写文本,外加可选语言代码。例如:{"id": "s001", "audio_path": "/data/audio/s001.wav", "text": "你好,世界", "language_id": "zh"}。训练集与开发集拆成两个文件,开发集只参与评估、不进梯度。
第二步跑分词脚本omnivoice.scripts.extract_audio_tokens:每条音频被编码成 8 层离散 token(可以理解为模型能计算的数字序列),打包进 tar 分片并配对一份元数据 jsonl,末尾生成data.lst清单。示例脚本 内置了这一步,改好清单路径和 GPU 编号即可跑。字段细节见数据准备文档。
清单和分片都齐了,启动训练。
启动训练:一条命令跑通微调
微调不从零开始:配置里把init_from_checkpoint指向 OmniVoice 预训练检查点,模型继承基础能力,只学你的音色。
默认参数对几小时数据刚好够用:5000 步、峰值学习率 5e-5、bf16 混合精度(低精度计算,省显存且几乎不掉质量)、每卡每 batch 8192 token、每 500 步存一个检查点。
accelerate launch \ --gpu_ids "0,1" \ --num_processes 2 \ -m omnivoice.cli.train \ --train_config config/train_config_finetune.json \ --data_config config/data_config_finetune.json \ --output_dir exp/omnivoice_finetune训练中断后,把配置里的resume_from_checkpoint指向已有检查点即可接续。日志落在输出目录的tensorboard子目录,用tensorboard --logdir指过去,损失与评估曲线实时可看。参数细节见训练文档。
跑完再往下走。
用数字验收:WER、SIM-o 与 UTMOS 三项指标
损失一路下降不是验收单,要用三个客观数字判断合不合格。
| 指标 | 是什么 | 判断标准 |
|---|---|---|
| WER | 合成语音用 ASR 转写回来与原文比对 | 越低越好,说明说得越清楚 |
| SIM-o | 参考与合成的说话人嵌入相似度 | 越高越好,说明越像你本人 |
| UTMOS | 神经网络预测的 MOS | 越高越好,说明听起来越自然 |
项目自带一键评估脚本examples/run_eval.sh,覆盖 LibriSpeech-PC、Seed-TTS 等标准测试集,比人耳听感更可靠。三项都优于基线才算通过。
验收通过,再考虑可选的进阶路线。
进阶分支:Emilia 大规模与抗噪管线
微调之上还有两条可选路线,都可以跳过。
| 路线 | 配置 | 适用场景 |
|---|---|---|
| Emilia 大规模训练 | 8 卡、30 万步、学习率 1e-4、不做预训练初始化 | 多语言、多风格的大模型 |
| 抗噪数据管线 | 两个可选脚本按需开启 | 参考音频带噪声,要求推理时更稳 |
Emilia 路线分三步:把原始数据(EN、ZH)与训练/开发两份 JSONL 清单放进data/emilia/manifests/;对四个分割逐一跑同一个分词步骤;最后按 8 进程拉起训练。examples/run_emilia.sh覆盖了全程。
抗噪路线有两个脚本:denoise_audio.py把原始音频先过一遍 Sidon 语音增强模型,剥掉背景噪声;extract_audio_tokens_add_noise.py思路相反,分词时故意掺入环境噪声与房间混响,让推理时喂嘈杂参考也能稳住。两者都不强制,可叠在微调或 Emilia 路线之上。
checkpoint 就绪,接回工作台。
接入日常:checkpoint 加载进引擎
checkpoint 的价值在于天天能合。
在 Settings → Engines 里把训好的检查点管理并启用。OmniVoice 以进程内方式加载,无需单独安装。
启用后,语音克隆、配音、有声书等能力都随这张音色工作。打开工作台,输入一句台词,扬声器里出来的就是那个声音。
整条链路是本地闭环:清单、分片、检查点都留在自己的机器上,数据不出机器。更多细节可查 训练文档 与数据准备文档。
【免费下载链接】VoiceStudioVoiceStudio is the open-source, fully-local ElevenLabs alternative — voice cloning, voice design, video dubbing, dictation, transcription & audiobook creation in 646 languages.项目地址: https://gitcode.com/GitHub_Trending/om/VoiceStudio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考