SimpleKhmerTTS

Decoder-only transformer TTS, using WavTokenizer as the audio codec and DDD-Cambodia/khmer-speech-dataset as dataset.

Samples

Text Audio
Sample 1
Sample 2
Sample 3
Sample 4

Setup

git clone https://github.com/FirstPotatoCoder/SimpleKhmerTTS.git
cd SimpleKhmerTTS
pip install -q -r requirements.txt
python scripts/download_weights.py

Run

python examples/run_inference.py " αž—αžΆαžŸαžΆαžαŸ’αž˜αŸ‚αžšαž˜αžΆαž“αž’αž€αŸ’αžŸαžšαž…αŸ’αžšαžΎαž“ αž αžΎαž™αž–αž·αž”αžΆαž€αžŸαžšαžŸαŸαžšαž”αž“αŸ’αžαž·αž…αŸ” αž—αžΆαžŸαžΆαž“αŸαŸ‡αž˜αžΆαž“αž”αŸ’αžšαžœαžαŸ’αžαž·αž™αžΌαžšαž’αž„αŸ’αžœαŸ‚αž„ αž“αž·αž„αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž™αŸ‰αžΆαž„αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαžœαž”αŸ’αž”αž’αž˜αŸŒαž€αž˜αŸ’αž–αž»αž‡αžΆαŸ”" --speaker_id 0

Or from Python:

from tts.inference import TTSPipeline

pipe = TTSPipeline(
    tts_weights="weights/tts.pt",
    wavtokenizer_weights="weights/wavtokenizer.ckpt",
    wavtokenizer_config="configs/wavtokenizer_config.yaml"
)

pipe.generate(" αž—αžΆαžŸαžΆαžαŸ’αž˜αŸ‚αžšαž˜αžΆαž“αž’αž€αŸ’αžŸαžšαž…αŸ’αžšαžΎαž“ αž αžΎαž™αž–αž·αž”αžΆαž€αžŸαžšαžŸαŸαžšαž”αž“αŸ’αžαž·αž…αŸ”", speaker_id=1, out_path="out.wav")

Limitations

  • The model sometimes hallucinates, generating babbling or garbled output on rare or unseen words, making it ill-suited for direct deployment β€” likely due to the limited amount of training data and codec's limited performance on Khmer audio.
  • Works best when generating ~3s to 10s of audio, matching the length distribution of its training data.
  • No chunking support yet β€” the current repo only supports clip-by-clip generation, one sample at a time.

Credits

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support