TTSModel / README.md
Mwau's picture
Update README.md
b9ab1d2 verified
|
Raw
History Blame
3.41 kB
---
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](https://huggingface.co/facebook/mms-tts-swh) checkpoint on the `swa_tts` split of [google/WaxalNLP](https://huggingface.co/datasets/google/WaxalNLP), using the [VITS finetuning recipe](https://github.com/ylacombe/finetune-hf-vits) 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](https://huggingface.co/datasets/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
```python
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
- [Meta MMS](https://huggingface.co/facebook/mms-tts-swh) for the base checkpoint
- [WAXAL / google/WaxalNLP](https://huggingface.co/datasets/google/WaxalNLP) for the training data
- [ylacombe/finetune-hf-vits](https://github.com/ylacombe/finetune-hf-vits) for the finetuning recipe