VoxCPM1.5
VoxCPM 语音系列
准备转写准确的中英语音数据,从 LoRA 或全参数微调开始定制声音。跟随指南完成数据校验、训练配置与 checkpoint 验证,并使用训练集以外的文本检查音质与泛化。
VoxCPM1.5 支持 LoRA 与全参数微调。两种方式使用同一 JSONL 清单和训练脚本;多数说话人定制任务先从 LoRA 开始。官方微调文档给出的参考显存为 LoRA 约 12 GB、全参数约 24 GB。
准备环境
Bash
git clone https://github.com/OpenBMB/VoxCPM.git
cd VoxCPM
pip install -e .
python -c "from huggingface_hub import snapshot_download; snapshot_download('openbmb/VoxCPM1.5', local_dir='./pretrained_models/VoxCPM1.5')"
数据格式
JSON
{"audio":"data/audio_001.wav","text":"第一条音频的逐字转写。","duration":4.5}
{"audio":"data/audio_002.wav","text":"第二条音频的逐字转写。","duration":7.2}
| 项目 | VoxCPM1.5 要求 |
|---|---|
| 清单 | JSONL,每行包含 audio 与 text。 |
| 片段时长 | 官方文档建议 3–30 秒。 |
| 音频质量 | 单人、低噪声、低混响、音量一致。 |
| 转写 | 必须逐字匹配;不要把提示词或未发出的标点读法写入文本。 |
| 采样率 | 配置使用 sample_rate: 44100,必须匹配 VoxCPM1.5 的 AudioVAE 配置。 |
Bash
voxcpm validate --manifest train.jsonl --sample-rate 44100
LoRA 微调
Bash
cp conf/voxcpm_v1.5/voxcpm_finetune_lora.yaml conf/my_voxcpm15_lora.yaml
YAML
pretrained_path: ./pretrained_models/VoxCPM1.5
train_manifest: ./train.jsonl
val_manifest: ./val.jsonl
sample_rate: 44100
batch_size: 16
grad_accum_steps: 1
learning_rate: 0.0001
max_steps: 2000
save_interval: 1000
save_path: ./checkpoints/voxcpm15_lora
tensorboard: ./logs/voxcpm15_lora
lora:
enable_lm: true
enable_dit: true
enable_proj: false
r: 8
alpha: 16
dropout: 0.0
Bash
python scripts/train_voxcpm_finetune.py --config_path conf/my_voxcpm15_lora.yaml
以上参数来自仓库的 VoxCPM1.5 示例配置,是起始基线,不是所有数据集的最优值。显存不足时先降低 batch_size,再用 grad_accum_steps 保持有效 batch。
全参数微调
Bash
cp conf/voxcpm_v1.5/voxcpm_finetune_all.yaml conf/my_voxcpm15_full.yaml
python scripts/train_voxcpm_finetune.py --config_path conf/my_voxcpm15_full.yaml
全参数配置不含 lora 节点,示例学习率是 1e-5。小数据上更容易过拟合,必须保留验证集并保存多个 checkpoint。
多卡训练
Bash
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node=2 scripts/train_voxcpm_finetune.py --config_path conf/my_voxcpm15_lora.yaml
验证模型
Bash
# LoRA
python scripts/test_voxcpm_lora_infer.py --lora_ckpt checkpoints/voxcpm15_lora/step_0001000 --text "这是训练集以外的验证文本。" --output voxcpm15_lora.wav
# 全参数
python scripts/test_voxcpm_ft_infer.py --ckpt_dir checkpoints/voxcpm15_full/step_0001000 --text "这是训练集以外的验证文本。" --output voxcpm15_full.wav
评估与排查
| 问题 | 检查 |
|---|---|
| 音色相似但漏字 | 过拟合或转写不一致;使用未见文本比较更早 checkpoint。 |
| 音质下降 | 检查训练音频采样率、噪声、混响和是否错误启用降噪。 |
| 生成停不下来 | 检查 loss/stop、片段时长和异常样本。 |
| 结果不可 复现 | 记录模型 revision、仓库 commit、配置、数据清单哈希与随机种子。 |
LoRA WebUI 可通过 python lora_ft_webui.py 启动;正式实验仍应保存 YAML 与数据版本。完整说明见 官方微调文档。