Request access to VoxPocket v3

Access is approved by hand by the author. Please tell us where you are from and what you will use it for. Do not use this model to impersonate real people.

Log in or Sign Up to review the conditions and access this model content.

VoxPocket v3: small Khmer text-to-speech

VoxPocket is a 0.6B Khmer TTS model (44.1 kHz). It was fine-tuned from VoxCPM 1.5 on real Khmer speech and on synthetic speech distilled from VoxCPM2. It reads Khmer, Khmer mixed with English words, and plain English. It can clone a voice from a short clip and take a style or a voice description.

๐Ÿ—ฃ๏ธ Try it in your browser, no download needed: VoxPocket v3 demo. It has ready voices, styles and voice design.

Use

from voxcpm.core import VoxCPM
import soundfile as sf

m = VoxCPM.from_pretrained(hf_model_id="INGMUYLEANG/VoxPocket-v3", load_denoiser=False)
sr = m.tts_model.sample_rate  # 44100

# 1) clone a voice: a clean 4โ€“9 s clip + exactly what is said in it
wav = m.generate(text="แžŸแžฝแžŸแŸ’แžแžธแž”แž„แž”แŸ’แžขแžผแž“แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž‚แŸ’แž“แžถ แžขแžšแž‚แžปแžŽแž…แŸ’แžšแžพแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแŸ”",
                 prompt_wav_path="my_voice.wav", prompt_text="<words spoken in my_voice.wav>",
                 cfg_value=2.0, inference_timesteps=10)
sf.write("clone.wav", wav, sr)

# 2) clone + style: put the style in brackets before the text
wav = m.generate(text="(sad, low and slow tone)แžŸแžฝแžŸแŸ’แžแžธแž”แž„แž”แŸ’แžขแžผแž“แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž‚แŸ’แž“แžถแŸ”",
                 prompt_wav_path="my_voice.wav", prompt_text="<words spoken in my_voice.wav>")

# 3) design a voice, no clip: describe it in brackets
wav = m.generate(text="(A young woman, clear and bright voice, cheerful tone)แžŸแžฝแžŸแŸ’แžแžธแž”แž„แž”แŸ’แžขแžผแž“แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž‚แŸ’แž“แžถแŸ”")

Tips:

  • Reference clips: keep them short, about 4โ€“9 s, and clean, with the exact words that are spoken.
  • Long text: split it into sentences.
  • Styles: the phrases used in training work best, for example sad, low and slow tone, excited and energetic, whispering quietly, happy, smiling tone, calm, slow and steady, serious and clear news-reader tone.

Results

The test reads 40 held-out Khmer sentences with the same voice clip. A Khmer speech recognizer listens back, and we count letter errors (lower is better):

model median mean sentences with > 10% errors
VoxPocket v2 12.2% 13.4% 21 / 40
VoxPocket v3 7.6% 8.4% 13 / 40

v3 is better on 24 sentences, the same on 6, and worse on 10.

Training

  • Starting point: VoxPocket v2 (VoxCPM 1.5 base), fine-tuned on NVIDIA GPUs.
  • Data: about 433 h in total.
    • 237 h of real Khmer speech
    • 177 h of synthetic VoxCPM2 speech, all checked by a speech recognizer: Khmer, mixed, English, clone, style and designed voices
    • 18 h of clip + style pairs, so a cloned voice can change tone
  • The synthetic part is published as INGMUYLEANG/voxpocket-khmer-tts-v3.

Limits

  • Styles on cloned voices are still weak: the tone changes only a little. Designed voices (no clip) follow descriptions better.
  • Rare words and names are sometimes swapped for common ones. English loanwords inside Khmer can sound Khmer-ish.
  • English is basic. The model is made for Khmer first.
  • Do not use it to impersonate real people or to make deceptive audio. Only clone voices you have permission to use.
Downloads last month
6
Safetensors
Model size
0.8B params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for INGMUYLEANG/VoxPocket-v3

Finetuned
(8)
this model

Dataset used to train INGMUYLEANG/VoxPocket-v3

Space using INGMUYLEANG/VoxPocket-v3 1