Khmer-TTS / README.md
AnotherPotatoCoder's picture
Upload README.md with huggingface_hub
5491fb4 verified
|
Raw
History Blame Contribute Delete
3 kB
metadata
license: mit
language:
  - km
tags:
  - text-to-speech
  - tts
  - khmer

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