--- title: BlueTTS - Multilingual TTS emoji: 🔊 colorFrom: blue colorTo: indigo sdk: gradio sdk_version: 6.9.0 app_file: app.py pinned: false python_version: "3.12" --- # BlueTTS — Multilingual text-to-speech **This Space:** [https://huggingface.co/spaces/notmax123/Blue](https://huggingface.co/spaces/notmax123/Blue) Interactive demo for **[BlueTTS](https://github.com/maxmelichov/BlueTTS)**: fast on-device synthesis with **ONNX Runtime**. Type text, pick a language and voice, and generate audio in the browser. Project site: [lightbluetts.com](https://lightbluetts.com/). This Space was duplicated from [thewh1teagle/lightblue-tts-hebrew](https://huggingface.co/spaces/thewh1teagle/lightblue-tts-hebrew) and adapted for the current BlueTTS ONNX bundle. ## Languages - **English, Spanish, German, Italian** — phonemization with **espeak-ng** (via phonemizer), aligned with the multilingual tokenizer in the app. - **Hebrew** — grapheme-to-phoneme via [Renikud](https://huggingface.co/thewh1teagle/renikud) (ONNX). ## Voices Two built-in speaker styles (pre-extracted style JSON): | Voice | File | | ------ | ----------------------- | | Female | `voices/female1.json` | | Male | `voices/male1.json` | ## Implementation note This Space runs **inference from `app.py`** (vocabulary, phonemization, ONNX sessions). It does **not** install the upstream [`blue`](https://github.com/maxmelichov/BlueTTS) Python package from GitHub (that package name replaced the old `lightblue-onnx` wheel and would conflict with pip’s expected name in a flat `requirements.txt`). ## Model weights ONNX checkpoints are **not** stored in this Space repo (file-size limits). On first startup, `download_models.py` fetches them from the public model repo **[notmax123/blue-onnx](https://huggingface.co/notmax123/blue-onnx)** into `./onnx_models/`. **Training / finetuning / voice-export weights** (PyTorch / Safetensors): **[notmax123/blue](https://huggingface.co/notmax123/blue)**. If you fork this Space and point downloads at a **private** repo, set a Hugging Face **write** token as the Space secret `HF_TOKEN` so authenticated downloads still work. ## Links - **This demo (Space):** [huggingface.co/spaces/notmax123/Blue](https://huggingface.co/spaces/notmax123/Blue) - **ONNX weights:** [notmax123/blue-onnx](https://huggingface.co/notmax123/blue-onnx) - **PyTorch / training weights:** [notmax123/blue](https://huggingface.co/notmax123/blue) - **Source code:** [maxmelichov/BlueTTS on GitHub](https://github.com/maxmelichov/BlueTTS) - **Hebrew G2P:** [thewh1teagle/renikud](https://huggingface.co/thewh1teagle/renikud) ## Local development Dependencies are listed in `requirements.txt`. With Python 3.12: ```bash pip install -r requirements.txt python download_models.py # once, to populate onnx_models/ python app.py # or: gradio will launch from app_file when run by HF ``` To refresh `requirements.txt` from **uv**: ```bash uv export --no-hashes --no-emit-project > requirements.txt ``` ## License See the [BlueTTS](https://github.com/maxmelichov/BlueTTS) repository and the [blue-onnx](https://huggingface.co/notmax123/blue-onnx) model card for licensing of code and weights.