--- license: other language: - en - es - ca - eu - gl - ja - zh - hi - it - pt - fr library_name: phoonnx pipeline_tag: text-to-speech tags: - tts - styletts2 - kokoro - onnx - phoonnx - offline - voice-cloning --- # phoonnx-styletts2 Mirror of StyleTTS2-family checkpoints exported to ONNX for [phoonnx](https://github.com/TigreGotico/phoonnx), OpenVoiceOS's offline TTS library. StyleTTS2 generates speech conditioned on a style vector that encodes prosody and timbre from a reference clip, which is what enables zero-shot cloning; `phoonnx` also treats the Kokoro checkpoints (a StyleTTS2 descendant, "misaki"-phonemized) as `styletts2`-engine voices since they share the same style-vector conditioning contract. See [docs/cloning.md](https://github.com/TigreGotico/phoonnx/blob/dev/docs/cloning.md) for the `styletts2_style` d-vector mechanism. This repository holds the raw ONNX weights, `config.json` files, and (for cloning-capable voices) `.bin` style vectors consumed by `phoonnx`'s `voice_index` (`styletts2.json`); it is not meant to be browsed for voices directly — use `phoonnx`'s voice manager, which resolves voice IDs to the files here. ## Contents | Directory | Voices | Language | Upstream | |---|---|---|---| | `ddatt-en-styletts2/` | `ddatt/en-styletts2` | en-US | community StyleTTS2 checkpoint by `ddatt`; original training source could not be located | | `bsc-es-styletts2/` | `bsc/es-styletts2` (zero-shot) + 6 named speakers `bsc/es-cml` | es | [`BSC-LT/styletts2-spanish-multispeaker`](https://huggingface.co/BSC-LT/styletts2-spanish-multispeaker) (Barcelona Supercomputing Center) | | `bsc-ca-styletts2/` | `bsc/ca-styletts2` (zero-shot) + 11 named speakers `bsc/ca-` | ca | [`BSC-LT/styletts2-catalan-multispeaker`](https://huggingface.co/BSC-LT/styletts2-catalan-multispeaker) (Barcelona Supercomputing Center) | | `hitz-eu-styletts2/` | one speaker each: `antton`, `maider` | eu | [`HiTZ/StyleTTS2-eu`](https://huggingface.co/HiTZ/StyleTTS2-eu) (HiTZ Center, University of the Basque Country) | | `hitz-eu-emo-styletts2/` | `antton`/`maider` x `happy`/`neutral`/`sad` | eu | [`HiTZ/StyleTTS2-eu_emo`](https://huggingface.co/HiTZ/StyleTTS2-eu_emo) (HiTZ Center) | | `proxectonos-gl-celtia/` | `proxectonos/celtia-styletts2` | gl | [`proxectonos/Nos_StyleTTS2-Celtia-GL`](https://huggingface.co/proxectonos/Nos_StyleTTS2-Celtia-GL) ([Proxecto Nós](https://nos.gal/gl/proxecto-nos), technical development by [Gradiant](https://www.gradiant.org/)) | | `proxectonos-gl-brais/` | `proxectonos/brais-styletts2` | gl | [`proxectonos/Nos_StyleTTS2-Brais-GL`](https://huggingface.co/proxectonos/Nos_StyleTTS2-Brais-GL) ([Proxecto Nós](https://nos.gal/gl/proxecto-nos), technical development by [Gradiant](https://www.gradiant.org/)) | | `kokoro-82m/` | `kokoro/*` (English voices, plus per-language configs for es/fr/hi/it/ja/pt/zh) | en-US + others | [`hexgrad/Kokoro-82M`](https://huggingface.co/hexgrad/Kokoro-82M); style vectors fetched at load time from [`onnx-community/Kokoro-82M-v1.0-ONNX`](https://huggingface.co/onnx-community/Kokoro-82M-v1.0-ONNX) | | `kokoro-v0.19/` | Kokoro v0.19 voices | en-US | [`hexgrad/kLegacy`](https://huggingface.co/hexgrad/kLegacy) (Kokoro v0.19) | | `kokoro-v1.1-zh/` | Kokoro v1.1 zh/en voices | zh, en-US | [`hexgrad/Kokoro-82M-v1.1-zh`](https://huggingface.co/hexgrad/Kokoro-82M-v1.1-zh) | ## Usage ```python import wave from phoonnx.model_manager import TTSModelManager manager = TTSModelManager() manager.load() manager.merge_default_voices() voice = manager.voices["kokoro/af_heart"].load() with wave.open("out.wav", "wb") as wav_file: voice.synthesize_wav("Hello, this is a test.", wav_file) ``` ## License `license: other` because the checkpoints in this repository come from different labs with different licenses. `phoonnx` itself is Apache-2.0. | Family | Voices | License | |---|---|---| | Kokoro (all versions) | `kokoro/*` | Apache-2.0 | | BSC Spanish StyleTTS2 | `bsc/es-styletts2`, `bsc/es-cml*` | Apache-2.0 | | BSC Catalan StyleTTS2 | `bsc/ca-styletts2`, `bsc/ca-*` | GPL-3.0 | | ProxectoNós Galician StyleTTS2 | `proxectonos/celtia-styletts2`, `proxectonos/brais-styletts2` | Apache-2.0 | | HiTZ Basque StyleTTS2 (base + emotion) | `hitz-eu-styletts2/*`, `hitz-eu-emo-styletts2/*` | Apache-2.0 | | `ddatt/en-styletts2` | `ddatt-en-styletts2/` | not determined — original upstream repo could not be located; treat as all-rights-reserved until clarified | The two BSC checkpoints are **multispeaker**. Neither upstream repository ships reference audio, so `bsc/es-styletts2` and `bsc/ca-styletts2` need a reference clip on every call. Alongside them each directory now carries one `.bin` style blob per named speaker, so the same checkpoint also serves ordinary preset voices: * `bsc-ca-styletts2/` — 11 [Festcat](https://huggingface.co/datasets/projecte-aina/festcat_trimmed_denoised) speakers: `bet eli eva jan mar ona pau pep pol teo uri`. * `bsc-es-styletts2/` — the 6 [CML-TTS](https://huggingface.co/datasets/ylacombe/cml-tts) Spanish speakers that hold the corpus: `3946 8882 9972 10246 11797 12367`. CML-TTS names speakers by number only. Each blob is 256 `float32` values (`ref_p` ++ `ref_s`), the mean of the style encoder's output over four reference clips of that speaker taken from the model's own training corpus. A named speaker still clones when you pass a reference clip. See [docs/bsc_multispeaker.md](https://github.com/TigreGotico/phoonnx/blob/dev/docs/bsc_multispeaker.md). The Galician voices are single-speaker: each ships a `style.bin` default style alongside the `style_encoder.onnx` used for cloning. They are phonemized with Cotovía notation (not IPA) — see [docs/galician.md](https://github.com/TigreGotico/phoonnx/blob/dev/docs/galician.md). Note the BSC Catalan checkpoint is GPL-3.0-licensed by its authors; this only governs the model weights themselves, not `phoonnx` (Apache-2.0), which merely loads them.