Get AI summaries of any video or article — Sign up free
KittenTTS - The Nano TTS thumbnail

KittenTTS - The Nano TTS

Sam Witteveen·
5 min read

Based on Sam Witteveen's video on YouTube. If you like this content, support the original creators by watching, liking and subscribing to their content.

TL;DR

KittenTTS offers multiple TTS model sizes, including a 15 million-parameter nano model and an 8-bit quantized nano variant around 25 MB, aimed at lightweight deployment.

Briefing

Kitten ML’s “KittenTTS” pushes text-to-speech into a new size category: multiple TTS models that fit under 25 MB, are optimized for CPU-only use, and ship under an Apache 2 license—making truly local, edge-friendly speech synthesis feel practical. The project offers three core model sizes—mini (80 million parameters, ~80 MB on disk), micro (40 million parameters), and nano (15 million parameters)—plus an 8-bit quantized nano variant that lands at roughly 25 MB. That combination of small weights, browser/mobile feasibility, and CPU optimization is the headline, because it targets deployment scenarios that large, high-quality TTS systems typically can’t handle.

The tradeoff is audible but not catastrophic. Compared with larger, higher-fidelity systems (the transcript references Quent TTS with a 1.7 billion-parameter model used for voice cloning), KittenTTS prioritizes portability over peak realism. In a Google Colab test running without a GPU, the largest 80M model produces intelligible speech but still doesn’t sound “great.” Dropping to the 15M nano model introduces more degradation, and the 8-bit quantized nano version adds artifacts—yet the voice identity remains recognizable. The most noticeable quality issues show up in prosody: punctuation handling and sentence-ending pauses are weaker, with the audio sometimes continuing too smoothly into the next segment rather than cleanly stopping.

Model architecture and speed are part of the story. The transcript notes that transformer models use self-attention to process sequences in parallel, which tends to make them faster than recurrent architectures—an advantage for lightweight deployment. The project also appears designed for “lightweight deployment and high quality voice synthesis,” explicitly calling out CPU readiness rather than GPU dependence.

KittenTTS is packaged for easy experimentation via a Python package (“pit package” in the transcript) that loads pre-made voices and supports selecting among multiple model variants, including both quantized and non-quantized nano models. The voices are described as stylistically similar to Kokuro, and the transcript suggests the underlying representation resembles Onyx-style modeling: small numpy files per voice likely store voice embeddings, analogous to how Kokuro uses embeddings to represent different voices. The practical implication is that the system may be adaptable—potentially enabling voice manipulation—without needing massive model files.

Development status adds context. The project is described as “developer preview,” with version history moving from early 0.1/0.2 releases to a recent 0.8, and the team is described as literally one person (or at least extremely small). Even with current limitations, the transcript frames the work as a signal of where TTS is heading: smaller models that can run client-side in browsers and on edge devices, with quality improving as compression and model-structuring techniques mature.

Cornell Notes

Kitten ML’s KittenTTS aims for local, CPU-friendly text-to-speech by offering multiple transformer-based models under 25 MB. The nano model uses 15 million parameters, and an 8-bit quantized nano variant is about 25 MB, enabling fast loading and potential browser/mobile deployment without a GPU. In hands-on testing on Google Colab (CPU-only), speech remains understandable across sizes, though smaller and quantized models introduce more artifacts and weaker punctuation/sentence pauses. The project is open-sourced under an Apache 2 license and packaged for easy use with pre-made voices, likely backed by compact voice embeddings stored in numpy files. The overall takeaway: quality isn’t top-tier yet, but the deployment footprint makes “fully local TTS” feel increasingly attainable.

What makes KittenTTS stand out compared with many high-quality TTS systems?

Its deployment footprint. The project provides TTS models under 25 MB, including a nano model (15M parameters) and an 8-bit quantized nano variant (~25 MB). It’s described as CPU-optimized, so it doesn’t require a GPU—unlike larger voice-cloning-oriented models referenced in the transcript (e.g., a 1.7B-parameter Quent TTS setup). That combination targets browser and edge-device use cases.

How do model size and quantization affect audio quality in the CPU-only test?

Quality degrades as the model shrinks and as quantization increases. The 80M model is intelligible but not “great.” The 15M nano model shows noticeable degradation. The 8-bit version adds audio artifacts, though the voice still sounds fundamentally the same. The transcript also notes that punctuation and sentence-ending pauses can be weak, with the model sometimes continuing too smoothly into the next phrase.

Why might transformer-based TTS be faster or more suitable for lightweight deployment?

The transcript points to transformer self-attention: sequences can be processed in parallel, which tends to be faster than recurrent architectures that handle tokens more sequentially. That speed advantage supports the project’s CPU-first goal, even if the quality tradeoffs remain.

How is KittenTTS packaged for experimentation, and what does that enable?

A Python package is provided that loads models and lets users select from pre-made voices. The transcript describes loading multiple models at once (including both quantized and non-quantized nano variants) and using helper functions to generate speech. This makes it straightforward to compare model sizes and bit-depths in a single environment like Google Colab.

What hints suggest the project uses compact voice representations like embeddings?

When inspecting the model files, the transcript says the voices appear as numpy files and likens this to Kokuro’s approach, where different voices correspond to embeddings. The implication is that voice identity may be encoded in small embedding files, which could allow voice manipulation without shipping huge model weights.

What does the project’s licensing and development status imply for adoption?

The code is under an Apache 2 license, which generally permits broad reuse and modification. It’s currently in developer preview, with version updates moving from early 0.1/0.2 releases to a recent 0.8, suggesting active iteration. The transcript also notes the team appears extremely small, which can mean rapid experimentation but also uncertain timelines for “full” releases.

Review Questions

  1. How do the nano (15M) and 8-bit quantized nano (~25 MB) versions differ in deployment goals, and what quality changes were observed?
  2. What specific speech-quality failure modes were mentioned for smaller models (e.g., punctuation or pauses), and why do they matter for real-world use?
  3. What role do voice embeddings (as suggested by numpy voice files) play in making multiple voices feasible without large model files?

Key Points

  1. 1

    KittenTTS offers multiple TTS model sizes, including a 15 million-parameter nano model and an 8-bit quantized nano variant around 25 MB, aimed at lightweight deployment.

  2. 2

    The models are described as CPU-optimized, enabling local speech synthesis without requiring a GPU.

  3. 3

    In CPU-only testing, smaller and quantized models remain intelligible but introduce more artifacts and weaker handling of punctuation and sentence-ending pauses.

  4. 4

    The project is distributed under an Apache 2 license, lowering barriers for reuse in applications and extensions.

  5. 5

    KittenTTS is packaged for easy loading of pre-made voices, supporting quick comparisons across model sizes and quantization levels.

  6. 6

    Voice data appears to be stored in compact numpy files, suggesting an embedding-based approach similar to Kokuro.

  7. 7

    The project is in developer preview (with releases progressing to 0.8), and its small team size may accelerate experimentation while leaving full production readiness uncertain.

Highlights

The 8-bit quantized nano model is positioned as roughly a 25 MB solution—small enough to plausibly run in browsers or on mobile devices.
Quality doesn’t collapse with size reduction, but punctuation and sentence pauses degrade, leading to speech that can “run on” between segments.
CPU-only execution is central: the Colab test explicitly avoids GPUs while still generating speech from multiple model variants.
Apache 2 licensing plus open sourcing makes the project more immediately usable for developers building local TTS features.

Topics

  • Edge TTS
  • Model Quantization
  • CPU-Optimized Inference
  • Transformer Self-Attention
  • Voice Embeddings

Mentioned