A high-speed, high-fidelity Text-to-Speech model optimized for real-time conversational AI applications.
KaniTTS uses a two-stage pipeline combining a large language model with an efficient audio codec for exceptional speed and audio quality. The architecture generates compressed token representations through a backbone LLM, then rapidly synthesizes waveforms via neural audio codec, achieving extremely low latency.
Key Specifications:
Nvidia RTX 5080 Benchmarks:
Pretraining:
Voices Datasets
Voices:
david — David, English (British)puck — Puck, English (Gemini)kore — Kore, English (Gemini)andrew — Andrew, Englishjenny — Jenny, English (Irish)simon — Simon, Englishkatie — Katie, Englishseulgi — Seulgi, Koreanbert — Bert, Germanthorsten — Thorsten, German (Hessisch)maria — Maria, Spanishmei — Mei, Chinese (Cantonese)ming — Ming, Chinese (Shanghai OpenAI)karim — Karim, Arabicnur — Nur, ArabicIt’s a lightweight so you can install, load a model, and speak in minutes. Designed for quick starts and simple workflows—no heavy setup, just pip install and run. More detailes...
pip install kani-tts
pip install -U "transformers==4.57.1" # for LFM2 !!!
from kani_tts import KaniTTS
model = KaniTTS('nineninesix/kani-tts-370m')
# Generate audio from text
audio, text = model("Hello, world!")
# Save to file (requires soundfile)
model.save_audio(audio, "output.wav")
This model support multiple speakers. You can check if your model supports speakers and select a specific voice:
from kani_tts import KaniTTS
model = KaniTTS('nineninesix/kani-tts-370m')
# Check if model supports multiple speakers
print(f"Model type: {model.status}") # 'singlspeaker' or 'multispeaker'
# Display available speakers (pretty formatted)
model.show_speakers()
# Or access the speaker list directly
print(model.speaker_list) # ['andrew', 'katie', ...]
# Generate audio with a specific speaker
audio, text = model("Hello, world!", speaker_id="andrew")
from kani_tts import KaniTTS
model = KaniTTS(
'nineninesix/kani-tts-370m',
temperature=0.7, # Control randomness (default: 1.0)
top_p=0.9, # Nucleus sampling (default: 0.95)
max_new_tokens=2000, # Max audio length (default: 1200)
repetition_penalty=1.2, # Prevent repetition (default: 1.1)
suppress_logs=True, # Suppress library logs (default: True)
show_info=True, # Show model info on init (default: True)
)
audio, text = model("Your text here")
You can listen to generated audio directly in Jupyter notebooks or IPython:
from kani_tts import KaniTTS
from IPython.display import Audio as aplay
model = KaniTTS('nineninesix/kani-tts-370m')
audio, text = model("Hello, world!")
# Play audio in notebook
aplay(audio, rate=model.sample_rate)
| Text | Audio |
|---|---|
| I do believe Marsellus Wallace, MY husband, YOUR boss, told you to take me out and do WHATEVER I WANTED. | |
| What do we say to the god of death? Not today! | |
| What do you call a lawyer with an IQ of 60? Your honor | |
| You mean, let me understand this cause, you know maybe it's me, it's a little fucked up maybe, but I'm funny how, I mean funny like I'm a clown, I amuse you? |
Models:
Examples:
Links:
Built on top of LiquidAI LFM2 350M as the backbone and Nvidia NanoCodec for audio processing.
Prohibited activities include:
By using this model, you agree to comply with these restrictions and all applicable laws.
Have a question, feedback, or need support? Please fill out our contact form and we'll get back to you as soon as possible.
@misc {sb_2025,
author = { SB },
title = { gemini-flash-2.0-speech },
year = 2025,
url = { https://huggingface.co/datasets/shb777/gemini-flash-2.0-speech },
doi = { 10.57967/hf/4237 },
publisher = { Hugging Face }
}
@misc{toyin2025arvoicemultispeakerdatasetarabic,
title={ArVoice: A Multi-Speaker Dataset for Arabic Speech Synthesis},
author={Hawau Olamide Toyin and Rufael Marew and Humaid Alblooshi and Samar M. Magdy and Hanan Aldarmaki},
year={2025},
eprint={2505.20506},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2505.20506},
}
@misc {thorsten_müller_2024,
author = { {Thorsten Müller} },
title = { TV-44kHz-Full (Revision ff427ec) },
year = 2024,
url = { https://huggingface.co/datasets/Thorsten-Voice/TV-44kHz-Full },
doi = { 10.57967/hf/3290 },
publisher = { Hugging Face }
}
@misc{carlosmenaciempiessfem2019,
title={CIEMPIESS FEM CORPUS: Audio and Transcripts of Female Speakers in Spanish.},
ldc_catalog_no={LDC2019S07},
DOI={https://doi.org/10.35111/xdx5-n815},
author={Hernandez Mena, Carlos Daniel},
journal={Linguistic Data Consortium, Philadelphia},
year={2019},
url={https://catalog.ldc.upenn.edu/LDC2019S07},
}
A high-speed, high-fidelity Text-to-Speech model optimized for real-time conversational AI applications.
KaniTTS uses a two-stage pipeline combining a large language model with an efficient audio codec for exceptional speed and audio quality. The architecture generates compressed token representations through a backbone LLM, then rapidly synthesizes waveforms via neural audio codec, achieving extremely low latency.
Key Specifications:
Nvidia RTX 5080 Benchmarks:
Pretraining:
Voices Datasets
Voices:
david — David, English (British)puck — Puck, English (Gemini)kore — Kore, English (Gemini)andrew — Andrew, Englishjenny — Jenny, English (Irish)simon — Simon, Englishkatie — Katie, Englishseulgi — Seulgi, Koreanbert — Bert, Germanthorsten — Thorsten, German (Hessisch)maria — Maria, Spanishmei — Mei, Chinese (Cantonese)ming — Ming, Chinese (Shanghai OpenAI)karim — Karim, Arabicnur — Nur, ArabicIt’s a lightweight so you can install, load a model, and speak in minutes. Designed for quick starts and simple workflows—no heavy setup, just pip install and run. More detailes...
pip install kani-tts
pip install -U "transformers==4.57.1" # for LFM2 !!!
from kani_tts import KaniTTS
model = KaniTTS('nineninesix/kani-tts-370m')
# Generate audio from text
audio, text = model("Hello, world!")
# Save to file (requires soundfile)
model.save_audio(audio, "output.wav")
This model support multiple speakers. You can check if your model supports speakers and select a specific voice:
from kani_tts import KaniTTS
model = KaniTTS('nineninesix/kani-tts-370m')
# Check if model supports multiple speakers
print(f"Model type: {model.status}") # 'singlspeaker' or 'multispeaker'
# Display available speakers (pretty formatted)
model.show_speakers()
# Or access the speaker list directly
print(model.speaker_list) # ['andrew', 'katie', ...]
# Generate audio with a specific speaker
audio, text = model("Hello, world!", speaker_id="andrew")
from kani_tts import KaniTTS
model = KaniTTS(
'nineninesix/kani-tts-370m',
temperature=0.7, # Control randomness (default: 1.0)
top_p=0.9, # Nucleus sampling (default: 0.95)
max_new_tokens=2000, # Max audio length (default: 1200)
repetition_penalty=1.2, # Prevent repetition (default: 1.1)
suppress_logs=True, # Suppress library logs (default: True)
show_info=True, # Show model info on init (default: True)
)
audio, text = model("Your text here")
You can listen to generated audio directly in Jupyter notebooks or IPython:
from kani_tts import KaniTTS
from IPython.display import Audio as aplay
model = KaniTTS('nineninesix/kani-tts-370m')
audio, text = model("Hello, world!")
# Play audio in notebook
aplay(audio, rate=model.sample_rate)
| Text | Audio |
|---|---|
| I do believe Marsellus Wallace, MY husband, YOUR boss, told you to take me out and do WHATEVER I WANTED. | |
| What do we say to the god of death? Not today! | |
| What do you call a lawyer with an IQ of 60? Your honor | |
| You mean, let me understand this cause, you know maybe it's me, it's a little fucked up maybe, but I'm funny how, I mean funny like I'm a clown, I amuse you? |
Models:
Examples:
Links:
Built on top of LiquidAI LFM2 350M as the backbone and Nvidia NanoCodec for audio processing.
Prohibited activities include:
By using this model, you agree to comply with these restrictions and all applicable laws.
Have a question, feedback, or need support? Please fill out our contact form and we'll get back to you as soon as possible.
@misc {sb_2025,
author = { SB },
title = { gemini-flash-2.0-speech },
year = 2025,
url = { https://huggingface.co/datasets/shb777/gemini-flash-2.0-speech },
doi = { 10.57967/hf/4237 },
publisher = { Hugging Face }
}
@misc{toyin2025arvoicemultispeakerdatasetarabic,
title={ArVoice: A Multi-Speaker Dataset for Arabic Speech Synthesis},
author={Hawau Olamide Toyin and Rufael Marew and Humaid Alblooshi and Samar M. Magdy and Hanan Aldarmaki},
year={2025},
eprint={2505.20506},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2505.20506},
}
@misc {thorsten_müller_2024,
author = { {Thorsten Müller} },
title = { TV-44kHz-Full (Revision ff427ec) },
year = 2024,
url = { https://huggingface.co/datasets/Thorsten-Voice/TV-44kHz-Full },
doi = { 10.57967/hf/3290 },
publisher = { Hugging Face }
}
@misc{carlosmenaciempiessfem2019,
title={CIEMPIESS FEM CORPUS: Audio and Transcripts of Female Speakers in Spanish.},
ldc_catalog_no={LDC2019S07},
DOI={https://doi.org/10.35111/xdx5-n815},
author={Hernandez Mena, Carlos Daniel},
journal={Linguistic Data Consortium, Philadelphia},
year={2019},
url={https://catalog.ldc.upenn.edu/LDC2019S07},
}