kitten-tts

Pipeline English 8 voices Mac · Linux with NVIDIA

KittenTTS from KittenML: ONNX checkpoints from 15M to 80M parameters that run on the CPU. Each checkpoint has eight voices.

npx boubou@beta run kitten-tts:mini-0.8

Talk on this Mac. It needs Node.js 18 or later; Get started walks you through.

Talk on this Linux PC. It needs an NVIDIA GPU, and the first run also downloads a 3.62 GB engine that every pipeline voice shares; Get started walks you through.

npx boubou@beta serve kitten-tts:mini-0.8

Talk from a phone on the same Wi-Fi, or connect a robot or app. The model still runs on this Mac. Phones and robots walks you through.

Talk from a phone on the same Wi-Fi, or connect a robot or app. The model still runs on this PC. Phones and robots walks you through.

This version runs on Apple Silicon Macs only. On Linux, choose kitten-tts:mini-0.8.

Download
5.66 GB5.34 GB
Memory, estimated
—
GPU memory, measured
6–8.5 GiB
Speaks
English
Voice
Bruno

Recommended device

Apple Silicon Mac

  • No memory estimate for this version yet
  • macOS 15 or later
  • Qwen3.5-4B, the language model Boubou maintains
  • The voice runs on the CPU, with ONNX

Linux PC with an NVIDIA GPU

  • NVIDIA driver 580.65.06 or later
  • Tested on GPUs with 16 GB and 32 GB of memory
  • x86-64, with glibc 2.39 or later, such as Ubuntu 24.04
  • Qwen3.5-4B, the language model Boubou maintains, runs on llama.cpp

Memory needs are estimates. Boubou checks the machine before it downloads anything, and smaller machines still need testing.

Voices and languages

Everything the model can speak, as its own card or files list it. Black marks what Boubou uses.

  • Boubou uses
  • Available in the model

Languages

English

English

The 0.x model cards do not list languages. Boubou speaks English with every checkpoint.

Source: KittenML/kitten-tts-mini-0.8

Voices

8 voices

Press a voice to hear it. Each clip is the pinned model reading one sentence in that voice’s language.

Voices on 0.8 checkpoints

Voice IDs on 0.1 and 0.2 checkpoints

expr-voice-2-mexpr-voice-2-fexpr-voice-3-mUsed in other versionsexpr-voice-3-fexpr-voice-4-mexpr-voice-4-fexpr-voice-5-mexpr-voice-5-f

On 0.8 checkpoints Bruno is the name of expr-voice-3-m, the voice Boubou uses on every checkpoint.

Source: KittenML/kitten-tts-mini-0.8

Versions 7

A version is one ready-to-run setup with its own command. Versions differ in size, language or the models they combine. Suggested ones also appear in the boubou menu.

VersionWhat’s differentSpeaksVoiceDownloadMacLinux
Largest: 80M parametersEnglishBruno5.66 GB—NVIDIA GPU
40M parametersEnglishBruno5.62 GB—NVIDIA GPU
15M parameters, full precisionEnglishBruno5.64 GB—NVIDIA GPU
15M parameters, 8-bit weightsEnglishBruno5.61 GB—NVIDIA GPU
Earlier 0.1 releaseEnglishexpr-voice-3-m5.75 GB—NVIDIA GPU
Earlier 0.1 releaseEnglishexpr-voice-3-m5.60 GB—NVIDIA GPU
Earlier 0.2 release, 15M parametersEnglishexpr-voice-3-m5.60 GB—NVIDIA GPU

How it works

You speak
VAD

Silero + Smart Turn v3.2

--vad silero
STT

Parakeet TDT 0.6B v3

speech to text
LLM

Qwen3.5-4B · 4-bit

--llm_backend mlx-lm
TTS

kitten-tts · Bruno

--tts kitten
It answers

Boubou owns the microphone and speakers. Apple voice processing on a Mac, or WebRTC AEC3 on Linux, cancels echo, so you can talk over a reply. Boubou drops the queued audio and cancels the generation.

Swap a component

Boubou maintains one Hugging Face speech-to-speech 1.1.0 pipeline and pins every model in it. Add an upstream option after the model to replace one part.

Change the language model to any MLX model on Hugging Face

npx boubou@beta run kitten-tts:mini-0.8 --model_name mlx-community/Llama-3.2-3B-Instruct-4bit

Change speech recognition to Whisper

npx boubou@beta run kitten-tts:mini-0.8 --stt mlx-audio-whisper

Options work with serve too. Boubou does not check the models you name: they download from Hugging Face into your own Hugging Face cache. API modules send audio or text to the server you configure. These two examples are for a Mac: on Linux the pipeline stays offline, so options must name local paths.

  • Used by Boubou
  • Also runs in Boubou

VADVoice activity

--vad

Hears when you start and stop talking. Smart Turn v3.2 then decides whether a pause ends your turn.

silero

Not in Boubou’s runtime yet: firered

STTSpeech to text

--stt

Writes down what you said. Parakeet is the default; Whisper versions detect the language.

parakeet-tdtmlx-audio-whisperwhisperqwen3-asrvllm-realtimeAPIopenaiAPIopenai-realtimeAPI

Not in Boubou’s runtime yet: faster-whisper, whisper-mlx, parakeet-unified, nemotron-streaming, orukeet, paraformer, sense-voice

LLMLanguage model

--llm_backend

Writes the reply. Boubou runs pinned 4-bit Qwen3.5 models with mlx-lm; --model_name picks another one.

mlx-lmtransformerschat-completionsAPIresponses-apiAPI

TTSText to speech

--tts

Speaks the reply while it is still being written. Every pipeline voice in the library is one of these.

qwen3kokoropocketphononkittensupertonicchatTTSfacebookMMSomnivoicedrama3openaiAPIminimaxAPI

License

Apache 2.0. Read the license. Weights keep their own licenses; check them before commercial use.

Sources