如何快速微调专属 TTS 模型:VoiceStudio 多卡训练完整实战教程
【免费下载链接】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 是一款开源、完全本地运行的 TTS 语音合成平台,本文教你完成 TTS 微调:用几小时音频训练出专属音色模型,或用 Emilia 数据集做大规模多语言训练。全程只有三条命令——准备数据清单、音频分词、多卡训练,数据不出本机。
明确微调目标与适用场景
🎯 一句话目标:训一个属于你的音色或语言风格的 TTS 模型,产出可直接用于推理的检查点。
- 数据门槛低:微调只需几小时清晰录音加转写文本
- 硬件弹性大:2 卡做个人微调,8 卡做 Emilia 大规模训练
- 产出明确:
exp/omnivoice_finetune/checkpoint-5000这类目录即是成品模型 - 时间可控:微调默认 5000 步,不需要跑几天
备好 TTS 微调数据与训练环境
- 环境:NVIDIA GPU + CUDA,装好项目 Python 依赖和
accelerate(HuggingFace 的多卡训练启动器) - 数据:写一个 JSONL 清单,每行一条样本,含唯一 ID、音频路径、转写文本、语言代码
{"id": "sample_001", "audio_path": "/data/audio/001.wav", "text": "Hello world", "language_id": "en"}- 音频支持 wav/flac/mp3,会自动重采样到 24 kHz,无需预处理
- 走 Emilia 大规模训练的话,另需把 EN/ZH 的 train/dev 四份 JSONL 放到
data/emilia/manifests/ - 现成脚本参考 examples/run_finetune.sh 与 examples/run_emilia.sh,格式细节见 docs/data_preparation.md
跑通多卡训练:从音频分词到模型产出
第 1 步做音频分词:把音频编码成 8 层离散 token(相当于把声音"文字化"),再打包成 WebDataset tar 分片——上千条样本塞进一个大压缩包,训练时磁盘 I/O 压力大幅下降:
CUDA_VISIBLE_DEVICES="0,1" python -m omnivoice.scripts.extract_audio_tokens \ --input_jsonl data/my_data_train.jsonl \ --tar_output_pattern data/finetune/tokens/train/audios/shard-%06d.tar \ --jsonl_output_pattern data/finetune/tokens/train/txts/shard-%06d.jsonl \ --tokenizer_path eustlb/higgs-audio-v2-tokenizer \ --nj_per_gpu 3 --shuffle True第 2 步用accelerate启动多卡微调,GPU 与进程数一一对应:
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- 为什么够快:微调配置默认从
k2-fsa/OmniVoice预训练权重初始化(init_from_checkpoint),5000 步即可贴合你的音色 - 8 卡 Emilia 训练只需换 Emilia 两份配置文件,并改成
--gpu_ids "0,1,2,3,4,5,6,7" --num_processes 8 - 训好的模型在 Settings → Engines 页面管理,默认进程内运行、无需额外安装
验证 TTS 微调结果是否达标
- 看损失曲线:训练日志自动写入 TensorBoard
tensorboard --logdir exp/omnivoice_finetune/tensorboard- 看检查点产出:
--output_dir下出现checkpoint-5000目录,说明微调完整跑完 - 跑标准指标:用测试文本生成语音后评估,三个核心指标如下
| 指标 | 含义 | 方向 |
|---|---|---|
| WER | 词错误率,衡量可懂度 | 越低越好 |
| SIM-o | 说话人与参考音色的相似度 | 越高越好 |
| UTMOS | 预测 MOS 自然度 | 越高越好 |
指标计算方式与测试集选择见 docs/evaluation.md。
调出更稳的训练参数
| 参数 | 说明 | 微调默认值 |
|---|---|---|
steps | 总训练步数 | 5000 |
learning_rate | 峰值学习率 | 5e-5 |
batch_tokens | 每卡每 batch token 数 | 8192 |
init_from_checkpoint | 预训练初始化 | k2-fsa/OmniVoice |
save_steps | 检查点保存间隔 | 500 |
- 数据量少时学习率不要上调,5e-5 足够稳
- 训练中断后,在配置里设
resume_from_checkpoint指向最近检查点即可续训 - 参考音频嘈杂时,先用 omnivoice/scripts/denoise_audio.py 做 Sidon 降噪,或分词时用 omnivoice/scripts/extract_audio_tokens_add_noise.py 混入环境噪声做增强,提升推理鲁棒性
- 全部参数说明:docs/training.md;数据进阶:docs/data_preparation_advanced.md
三条命令就能从一份 JSONL 清单走到一个能直接推理的专属 TTS 模型检查点:2 卡 5000 步搞定个人音色,8 卡扩展到 Emilia 多语言训练——全程本地、开源、可控。
【免费下载链接】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),仅供参考