跳到主要内容

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 与数据版本。完整说明见 官方微调文档。

开发者精选

查看全部 →