BlueTTSV2 — Multilingual text-to-speech With VC
6
159 commits
3 linked in READMEs
updated Aug 12, 2026
This Space: https://huggingface.co/spaces/notmax123/BlueV2
Interactive demo for BlueTTS, running the v2.5 checkpoint from notmax123/BlueTTS2.5-onnx through ONNX Runtime (CUDA where available, CPU otherwise). Project site: lightbluetts.com.
The PyTorch path is still in the tree but is off by default: BLUE_PT_REPO is versioned separately from the ONNX bundle, and voice styles and latent stats are checkpoint-specific, so mixing them degrades quality without erroring. Set BLUE_PT_MATCHES_ONNX_REPO to the PT repo id once a matching v2.5 checkpoint is published.
This Space was duplicated from thewh1teagle/lightblue-tts-hebrew and adapted for the current BlueTTS ONNX bundle.
g2p/russian_g2p.py. This is the front end the checkpoint was trained with; espeak-ng's ru voice cannot disambiguate homographs, cannot restore written-out ё, and collides ы with the German ü already in this vocab. Install with pip install -e '.[russian]' — RUAccent/RUPhon pin transformers<5, so they are optional and every other language works without them.The checkpoint was also trained on Yiddish, which is not exposed here: its front end (nikud + yiddish_g2p) does not ship with the export.
Four built-in speaker styles (pre-extracted style JSON):
| Voice | Gender | F0 | Source |
|---|---|---|---|
| Noa | female | 204 Hz | LibriTTS-R 1088 Christabel |
| Lily | female | 211 Hz | LibriTTS-R 6147 Liberty Stump |
| Daniel | male | 128 Hz | LibriTTS-R 6209 deckerteach |
| Adam | male | 112 Hz | LibriTTS-R 8088 Jason Bolestridge |
LibriTTS-R references are CC BY 4.0 (Google LLC).
Upload a reference clip to clone a voice. Cloning encodes the clip to latents
with the PyTorch autoencoder and then runs the bundle's own
reference_encoder.onnx, so the resulting style always matches the acoustic
model actually doing the synthesis.
This Space runs inference from app.py (vocabulary, phonemization, ONNX sessions). It does not install the upstream blue 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).
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/BlueTTS2.5-onnx into ./onnx_slim/ (see ONNX_DIR in app.py), and the Hebrew G2P weights from notmax123/RenikudPlus.
The bundle includes stats.npz and uncond.npz alongside the graphs, and both are load-bearing: v2.5 exports the bare vocoder, so latents are denormalized and folded by the caller, and the vector estimator no longer takes a cfg_scale input, so guidance runs off the unconditional embeddings. A v2 bundle is not a drop-in substitute — download_models.ONNX_BUNDLE_STAMP forces a re-fetch when it changes.
Training / finetuning / voice-export weights (PyTorch / Safetensors): 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.
Dependencies are listed in requirements.txt. With Python 3.12:
pip install -r requirements.txt
python download_models.py # once, to populate onnx_slim/
python app.py # or: gradio will launch from app_file when run by HF
To refresh requirements.txt from uv:
uv export --no-hashes --no-emit-project > requirements.txt
See the BlueTTS repository and the BlueTTS2.5-onnx model card for licensing of code and weights.
125 commits
24 commits
9 commits
1 commits
BlueTTSV2 — Multilingual text-to-speech With VC
6
159 commits
3 linked in READMEs
updated Aug 12, 2026
This Space: https://huggingface.co/spaces/notmax123/BlueV2
Interactive demo for BlueTTS, running the v2.5 checkpoint from notmax123/BlueTTS2.5-onnx through ONNX Runtime (CUDA where available, CPU otherwise). Project site: lightbluetts.com.
The PyTorch path is still in the tree but is off by default: BLUE_PT_REPO is versioned separately from the ONNX bundle, and voice styles and latent stats are checkpoint-specific, so mixing them degrades quality without erroring. Set BLUE_PT_MATCHES_ONNX_REPO to the PT repo id once a matching v2.5 checkpoint is published.
This Space was duplicated from thewh1teagle/lightblue-tts-hebrew and adapted for the current BlueTTS ONNX bundle.
g2p/russian_g2p.py. This is the front end the checkpoint was trained with; espeak-ng's ru voice cannot disambiguate homographs, cannot restore written-out ё, and collides ы with the German ü already in this vocab. Install with pip install -e '.[russian]' — RUAccent/RUPhon pin transformers<5, so they are optional and every other language works without them.The checkpoint was also trained on Yiddish, which is not exposed here: its front end (nikud + yiddish_g2p) does not ship with the export.
Four built-in speaker styles (pre-extracted style JSON):
| Voice | Gender | F0 | Source |
|---|---|---|---|
| Noa | female | 204 Hz | LibriTTS-R 1088 Christabel |
| Lily | female | 211 Hz | LibriTTS-R 6147 Liberty Stump |
| Daniel | male | 128 Hz | LibriTTS-R 6209 deckerteach |
| Adam | male | 112 Hz | LibriTTS-R 8088 Jason Bolestridge |
LibriTTS-R references are CC BY 4.0 (Google LLC).
Upload a reference clip to clone a voice. Cloning encodes the clip to latents
with the PyTorch autoencoder and then runs the bundle's own
reference_encoder.onnx, so the resulting style always matches the acoustic
model actually doing the synthesis.
This Space runs inference from app.py (vocabulary, phonemization, ONNX sessions). It does not install the upstream blue 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).
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/BlueTTS2.5-onnx into ./onnx_slim/ (see ONNX_DIR in app.py), and the Hebrew G2P weights from notmax123/RenikudPlus.
The bundle includes stats.npz and uncond.npz alongside the graphs, and both are load-bearing: v2.5 exports the bare vocoder, so latents are denormalized and folded by the caller, and the vector estimator no longer takes a cfg_scale input, so guidance runs off the unconditional embeddings. A v2 bundle is not a drop-in substitute — download_models.ONNX_BUNDLE_STAMP forces a re-fetch when it changes.
Training / finetuning / voice-export weights (PyTorch / Safetensors): 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.
Dependencies are listed in requirements.txt. With Python 3.12:
pip install -r requirements.txt
python download_models.py # once, to populate onnx_slim/
python app.py # or: gradio will launch from app_file when run by HF
To refresh requirements.txt from uv:
uv export --no-hashes --no-emit-project > requirements.txt
See the BlueTTS repository and the BlueTTS2.5-onnx model card for licensing of code and weights.
125 commits
24 commits
9 commits
1 commits