Instructions to use jsbeaudry/Fatiman-TTS-v2-onnx with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Pocket-TTS
How to use jsbeaudry/Fatiman-TTS-v2-onnx with Pocket-TTS:
from pocket_tts import TTSModel import scipy.io.wavfile tts_model = TTSModel.load_model("jsbeaudry/Fatiman-TTS-v2-onnx") voice_state = tts_model.get_state_for_audio_prompt( "hf://kyutai/tts-voices/alba-mackenna/casual.wav" ) audio = tts_model.generate_audio(voice_state, "Hello world, this is a test.") # Audio is a 1D torch tensor containing PCM data. scipy.io.wavfile.write("output.wav", tts_model.sample_rate, audio.numpy()) - Notebooks
- Google Colab
- Kaggle
Fatiman-TTS-v2 โ ONNX for phones
Fatiman-TTS-v2, the Haitian Creole fine-tune of Pocket TTS
trained on human speech only, exported to ONNX for on-device use with ONNX Runtime. The files and the interface
are the same as Fatiman-TTS-v1-onnx, so an app that
loads v1 can load v2 by changing the repository name.
Files
| file | what | size |
|---|---|---|
text_conditioner_int8.onnx |
token ids โ text embeddings | 16 MB |
flow_lm_main_kv_q4.onnx |
24-layer backbone LM, append-only KV, 4-bit weights (MatMulNBits, block 32) | 190 MB |
flow_lm_flow_int8.onnx |
flow head: conditioning + noise โ 32-dim latent (one LSD step) | 10 MB |
mimi_decoder_int8.onnx |
Mimi decoder: latents โ 24 kHz audio, streaming state (identical to v1's) | 23 MB |
bundle.json |
dims, state manifests, kv layout, lm_file, Mimi pass-through outputs (same as v1) |
|
tokenizer.json |
the fine-tune's Unigram tokenizer | |
bos_before_voice.f32 |
BOS embedding inserted before the voice prompt (float32, 1024) | |
voices/*.f32, voices/voices.json |
the nine voice prompt embeddings (float32 [1, frames, 1024]), computed in PyTorch for v2 |
The LM was exported with the scripts in Fatiman-TTS-v1-onnx/export.
There is no INT8 alternative LM for v2 yet.
The LM interface (append-only KV)
- inputs:
sequence [1, S, 32](NaN = BOS),text_embeddings [1, X, 1024],past_k_i/past_v_i [1, P, 16, 64]for i = 0..23 (P may be 0) - outputs:
conditioning [1, 1024],eos_logit [1, 1],new_k_i/new_v_i [1, S+X, 16, 64]
- Voice: run once with
text_embeddings = [bos_before_voice, voice frames]and empty past. Keep the outputs as that voice's prefix. - Each text chunk: reset the cache to the voice prefix, then run the text embeddings.
- Each frame: run
sequence= the previous latent (NaN for the first frame) โ flow head (s=0,t=1,x ~ N(0, 0.7),x += flow) โ latent. - Stop a few frames after
eos_logit > -4.
Spell numbers and symbols out before speaking (17 โ disรจt), as in training.
Quality
A local check of this export against v1's (3 voices ร 8 sentences) gave the same average CER, about 4.9%, for both. For the full results of the model, see the Fatiman-TTS-v2 card.
Consent
The nine voices are published with their speakers' signed consent. Never use this model to imitate someone's voice without their permission, or to deceive.
License
CC-BY-4.0, as the base model. Based on Pocket TTS by Kyutai.