VoxCPM2-Flash
VoxCPM2 fine-tuned (LoRA, merged) on a Jarvis-style Khmer / English assistant voice, plus a distilled VoxCPM2-Flash diffusion head: guidance-free, 4-step DiT by default (also distilled for 1/2/4) instead of the original 10-step CFG decoder.
| base | openbmb/VoxCPM2 |
| LoRA | r=32, alpha=32, step_0000300, merged into model.safetensors |
| flash DiT | 12 layers, distill step 1500 |
| eval MSE vs teacher | 1step 0.377, 2step 0.285, 4step 0.285 |
Usage
pip install voxcpm soundfile
from huggingface_hub import snapshot_download
import sys, soundfile as sf
path = snapshot_download("nphearum/VoxCPM2-Flash")
sys.path.insert(0, path)
from voxcpm2_flash import load_flash_model
model = load_flash_model(path) # 4 steps; num_steps=1/2/4 to override
wav = model.generate(target_text="Good evening, sir. ការប្រជុំថ្ងៃស្អែកត្រូវបានលុបចោលហើយ។")
sf.write("out.wav", wav.squeeze().float().numpy(), model.sample_rate)
cfg_value / inference_timesteps are ignored by the flash decoder (guidance is distilled in).
model.safetensors alone is a normal VoxCPM2 checkpoint, so VoxCPM.from_pretrained("nphearum/VoxCPM2-Flash")
also works with the original 10-step decoder.
Training data
~45 synthetic clips (Khmer, English and code-switched assistant lines) generated by voice-cloning one reference recording with VoxCPM2. Small dataset: expect the voice to generalise imperfectly.
- Downloads last month
- 26