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:
On NovitaAI RTX 5090 using vLLM:
| GPU Model | VRAM | Cost ($/hr) | RTF |
|---|---|---|---|
| RTX 5090 | 32GB | $0.423 | 0.190 |
| RTX 4080 | 16GB | $0.220 | 0.200 |
| RTX 5060 Ti | 16GB | $0.138 | 0.529 |
| RTX 4060 Ti | 16GB | $0.122 | 0.537 |
| RTX 3060 | 12GB | $0.093 | 0.600 |
Lower RTF is better (< 1.0 means faster than real-time). Benchmarks conducted on Vast AI.
It’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-400m-de')
# Generate audio from text
audio, text = model("Hallo zusammen! Schön, dass du da bist.")
# 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-400m-de')
# 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) # ['bert', 'thorsten']
# Generate audio with a specific speaker
audio, text = model("Hallo zusammen! Schön, dass du da bist.", speaker_id="thorsten")
from kani_tts import KaniTTS
model = KaniTTS(
'nineninesix/kani-tts-400m-de',
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-400m-de')
audio, text = model("Hallo zusammen! Schön, dass du da bist.")
# Play audio in notebook
aplay(audio, rate=model.sample_rate)
bertthorsten| Text | Audio |
|---|---|
| Ich hätte nie gedacht, dass Erinnerungen so lebendig sein können. | |
| Was für ein unglaublicher Tag, voller kleiner Wunder! | |
| Hast du jemals das Gefühl, dass die Zeit einfach davonrennt? | |
| Warum habe ich das Gefühl, dass heute etwas Großes passiert? |
Models:
Examples:
Links:
Built on top of LiquidAI LFM2 350M as the backbone and Nvidia NanoCodec for audio processing.
Prohibited activities include:
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 {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 }
}
@inproceedings{emilialarge,
author={He, Haorui and Shang, Zengqiang and Wang, Chaoren and Li, Xuyuan and Gu, Yicheng and Hua, Hua and Liu, Liwei and Yang, Chen and Li, Jiaqi and Shi, Peiyang and Wang, Yuancheng and Chen, Kai and Zhang, Pengyuan and Wu, Zhizheng},
title={Emilia: A Large-Scale, Extensive, Multilingual, and Diverse Dataset for Speech Generation},
booktitle={arXiv:2501.15907},
year={2025}
}
@article{emonet_voice_2025,
author={Schuhmann, Christoph and Kaczmarczyk, Robert and Rabby, Gollam and Friedrich, Felix and Kraus, Maurice and Nadi, Kourosh and Nguyen, Huu and Kersting, Kristian and Auer, Sören},
title={EmoNet-Voice: A Fine-Grained, Expert-Verified Benchmark for Speech Emotion Detection},
journal={arXiv preprint arXiv:2506.09827},
year={2025}
}
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:
On NovitaAI RTX 5090 using vLLM:
| GPU Model | VRAM | Cost ($/hr) | RTF |
|---|---|---|---|
| RTX 5090 | 32GB | $0.423 | 0.190 |
| RTX 4080 | 16GB | $0.220 | 0.200 |
| RTX 5060 Ti | 16GB | $0.138 | 0.529 |
| RTX 4060 Ti | 16GB | $0.122 | 0.537 |
| RTX 3060 | 12GB | $0.093 | 0.600 |
Lower RTF is better (< 1.0 means faster than real-time). Benchmarks conducted on Vast AI.
It’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-400m-de')
# Generate audio from text
audio, text = model("Hallo zusammen! Schön, dass du da bist.")
# 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-400m-de')
# 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) # ['bert', 'thorsten']
# Generate audio with a specific speaker
audio, text = model("Hallo zusammen! Schön, dass du da bist.", speaker_id="thorsten")
from kani_tts import KaniTTS
model = KaniTTS(
'nineninesix/kani-tts-400m-de',
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-400m-de')
audio, text = model("Hallo zusammen! Schön, dass du da bist.")
# Play audio in notebook
aplay(audio, rate=model.sample_rate)
bertthorsten| Text | Audio |
|---|---|
| Ich hätte nie gedacht, dass Erinnerungen so lebendig sein können. | |
| Was für ein unglaublicher Tag, voller kleiner Wunder! | |
| Hast du jemals das Gefühl, dass die Zeit einfach davonrennt? | |
| Warum habe ich das Gefühl, dass heute etwas Großes passiert? |
Models:
Examples:
Links:
Built on top of LiquidAI LFM2 350M as the backbone and Nvidia NanoCodec for audio processing.
Prohibited activities include:
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 {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 }
}
@inproceedings{emilialarge,
author={He, Haorui and Shang, Zengqiang and Wang, Chaoren and Li, Xuyuan and Gu, Yicheng and Hua, Hua and Liu, Liwei and Yang, Chen and Li, Jiaqi and Shi, Peiyang and Wang, Yuancheng and Chen, Kai and Zhang, Pengyuan and Wu, Zhizheng},
title={Emilia: A Large-Scale, Extensive, Multilingual, and Diverse Dataset for Speech Generation},
booktitle={arXiv:2501.15907},
year={2025}
}
@article{emonet_voice_2025,
author={Schuhmann, Christoph and Kaczmarczyk, Robert and Rabby, Gollam and Friedrich, Felix and Kraus, Maurice and Nadi, Kourosh and Nguyen, Huu and Kersting, Kristian and Auer, Sören},
title={EmoNet-Voice: A Fine-Grained, Expert-Verified Benchmark for Speech Emotion Detection},
journal={arXiv preprint arXiv:2506.09827},
year={2025}
}