TTSModel / README.md
Mwau's picture
Update README.md
b9ab1d2 verified
|
Raw
History Blame
3.41 kB
metadata
language:
  - sw
license: cc-by-nc-4.0
base_model: facebook/mms-tts-swh
tags:
  - text-to-speech
  - tts
  - vits
  - swahili
  - mms
datasets:
  - google/WaxalNLP
pipeline_tag: text-to-speech

waxal_swahili-tts-mms

A Swahili text-to-speech model, finetuned from Meta's MMS-TTS Swahili checkpoint on the swa_tts split of google/WaxalNLP, using the VITS finetuning recipe from ylacombe/finetune-hf-vits.

Model details

  • Base model: facebook/mms-tts-swh (Meta's Massively Multilingual Speech TTS, Swahili)
  • Architecture: VITS (single-speaker)
  • Training data: google/WaxalNLP, swa_tts config — 1,387 train utterances (805 after duration/length filtering), single Swahili speaker, 16kHz audio, sourced via the Loud & Clear initiative.
  • Training checkpoint: step 4,500 / 20,200 planned steps (~22 epochs of ~805 examples)
  • Sample rate: 16,000 Hz
  • Language: Swahili (swh / ISO 639-3)

Training configuration

Setting Value
Learning rate 2e-5
Batch size 8
Precision fp16
Max clip duration 20s
Min clip duration 0.5s
Loss weights mel=35, kl=1.5, disc=3, gen/fmaps/duration=1

Training used the finetune-hf-vits recipe with transformers==4.35.1, datasets==2.14.7, accelerate==0.24.1, numpy<2.0 (this specific combination was required to avoid dependency-incompatibility crashes on Colab).

Usage

import numpy as np
from transformers import pipeline
import scipy.io.wavfile

synthesiser = pipeline("text-to-speech", model="Mwau/waxal_swahili-tts-mms")
speech = synthesiser("Habari yako, karibu Kenya.")

audio = np.squeeze(speech["audio"])  # squeeze extra dims before saving/playing
scipy.io.wavfile.write("output.wav", rate=speech["sampling_rate"], data=audio)

Verified loading cleanly with transformers pipeline("text-to-speech", ...) — no missing/unexpected weight warnings on load.

Intended use

Research and experimentation with Swahili TTS, particularly cross-lingual/low-resource TTS transfer techniques. Not yet suitable for production or user-facing applications given the early training stage.

Limitations

  • Single speaker, single dataset: trained on one speaker's recordings from one dataset; may not generalize well to varied Swahili dialects, accents, or speaking styles.
  • No formal evaluation yet: no MOS, WER, or MCD scores have been computed for this checkpoint. Qualitative spot-checks against WAXAL's held-out test split suggest intelligible but rough output.
  • Small dataset: ~800 training utterances after filtering is a small corpus for TTS; may overfit to the training speaker's specific vocal characteristics.

License

This model is derived from facebook/mms-tts-swh, which is released under CC-BY-NC-4.0 (non-commercial). This finetuned model inherits that license. The swa_tts training data is released under CC-BY-SA-4.0.

Acknowledgements