SuperAPI AI 工具集

piper-tts-training

通用与其它

查看项目

更新于 10-16 01:28

技能介绍

用途:为 Piper 的轻量 ONNX 运行时训练自定义文本转语音(TTS)语音,适合嵌入式设备上的快速离线 TTS。

主要能力与流程:

  1. 语料准备:收集 1300-1500+ 条覆盖较广音素范围的短语,可用 piper-recording-studio 语料为基础并加入领域短语;非美式英语需注意地区拼写。
  2. 音频生成:训练音频为 22050Hz 单声道 WAV。若用语音克隆(如 Chatterbox TTS),先按源采样率生成再转换:sox -v 0.95 input.wav -r 22050 -t wav output.wav,-v 0.95 用于防止重采样削波。录音需麦克风位置与房间声学一致、背景噪声小、语速自然。
  3. Whisper 质量校验:用 whisper 与 piper_phonemize 做音素级比对,失败样本最多重试 3 次,目标数据集覆盖率 95%+。
  4. 数据集格式:LJSpeech 结构,metadata.csv 为 {id}|{text} 管道分隔、无表头,音频放 wavs/。
  5. 预处理:python3 -m piper_train.preprocess --language en-gb --input-dir dataset/ --output-dir piper_training_dir/ --dataset-format ljspeech;澳/新/英音用 en-gb。
  6. 训练:微调(推荐)示例 python3 -m piper_train --dataset-dir piper_training_dir/ --accelerator gpu --devices 1 --batch-size 12 --max_epochs 3000 --resume_from_checkpoint ljspeech-2000.ckpt --checkpoint-epochs 100 --quality high --precision 32。显存不足可降 batch-size;小数据集可加 --validation-split 0.0 --num-test-examples 0;用 TensorBoard 观察 loss_disc_all。
  7. ONNX 导出:python3 -m piper_train.export_onnx checkpoint.ckpt output.onnx.unoptimized,再 onnxsim output.onnx.unoptimized output.onnx,并按训练 config.json 生成 output.onnx.json。

微调与从零训练:微调约 1300 条短语 + 1000 轮(普通 GPU 数天);从零约 13000+ 条短语 + 2000+ 轮(数周至数月)。

本地化:Piper 用 espeak-ng 音素化,美式发音会导致口音漂移;训练前对语料运行 scripts/convert_spelling.py,使用 en-gb 或 en-au,并检查音素。常见拼写转换如 -ize→-ise、-or→-our、-er→-re、-og→-ogue、-ense→-ence。

依赖与硬件:建议固定 pytorch-lightning==1.9.3、torch<2.6.0、piper-phonemize、onnxruntime-gpu、onnxsim,推荐 Docker 保证可复现。微调最低 8GB 显存 GPU(Pascal 或更新)、8GB 内存,Tesla P4 上 1000 轮约 5 天;从零训练时间约乘 200 倍。

限制与排错:CUDA OOM 降低 batch-size(试 8 或 4);检查点无法加载时核对 pytorch-lightning 版本;输出乱码多为轮数不足或数据集过小;口音错误需检查 espeak-ng 语言代码与语料拼写。资料未提供具体价格、平台支持范围与效果保证。