3 min read

Kitten TTS: Realistic Text to Speech That Runs on a CPU (GitHub, Scanned)

Open text-to-speech models that run on a CPU, with 47 built-in voices and 20 languages.

Kitten TTS logo
✅
Scan: safe. Nothing to warn about. A compact Python library with no install hooks; it downloads model weights from Hugging Face and otherwise runs offline. Scanned Oct 26, 2026; the full report is below.

Kitten TTS turns text into natural-sounding speech on your own machine. The flagship Kitten TTS 2 model is a 1.7B-parameter, 1-bit model that runs in real time on a CPU and several times faster on Apple Silicon, with 47 built-in voices across 20 languages, emotion tags such as [joyful], inline sounds such as a laugh, and emphasis markup. The older 0.8 models are tiny, 15M to 80M parameters, for devices with very little memory.

It is on the list because it is easy to run: one pip install, a few lines of Python, no Hugging Face login and no GPU required. Long text is split on sentences and joined smoothly, and there are optional backends for MLX on a Mac and vLLM on NVIDIA GPUs, plus a Docker image serving an OpenAI-compatible speech API.

About 16,500 stars, with the code under Apache-2.0. The model weights have their own licence (Kitten TTS 2 uses the Stellon Labs Community License), so read it before commercial use. The model can also clone a voice from a 5 to 30 second recording; only clone voices you have permission to use.

  • Repository: github.com/KittenML/KittenTTS
  • Licence: Apache-2.0 (Apache License 2.0)
  • Language: Python. Stars: 16.5K. Forks: 1,000. Last push: Oct 22, 2026.
  • Scan: safe, Oct 26, 2026, commit afd9dfd

Who it is for

Developers who need offline speech in an app, game or accessibility tool, people making narration without a cloud TTS subscription, and anyone with a laptop but no GPU.

Getting started

1. Install the package

pip install kittenml

2. Generate a WAV file with a built-in voice

python -c "from kittenml import KittenTTS; m = KittenTTS('KittenML/kitten-tts-2'); m.generate_to_file('Hello, world.', 'output.wav', voice='Bruno')"

3. On an Apple Silicon Mac, add the faster MLX backend

pip install "kittenml[mlx]"

The first run downloads the model from Hugging Face: about 947 MiB, or 506 MiB if you pass weights="emb4". Python 3.9 or later and about 6 GB of RAM are needed for Kitten TTS 2 on a CPU.

Safety scan

We cloned KittenML/KittenTTS at commit afd9dfd on Oct 26, 2026 and ran the checks described on the GitHub Tools page: credential patterns, decode-and-execute code, install-time scripts, committed binaries, risky CI workflows, every host the code talks to, known vulnerabilities in pinned dependencies, and project hygiene. A person read every hit. This is what we found.

  • No secrets, no suspicious code patterns, no committed binaries and no bare-IP URLs in about 16,000 lines of Python.
  • No install hooks or installer scripts. The only outside hosts are GitHub, arXiv papers, Hugging Face for the weights and the project's own kittenml.com.
  • No lockfile, so the scanner did not look up known advisories for the dependencies, which include PyTorch and ONNX Runtime.
  • No GitHub workflows at all, so there is no CI that could be abused, and also no automated testing visible in the repository. Licence present; no security policy, contributing guide or Dependabot.

What the scanner counted

CheckResult
SecretsNone found.
Suspicious codeNone found.
Install-time codeNone: nothing runs at install beyond the package manager itself.
Committed binariesNone.
CI workflowsNo GitHub Actions workflows.
Network hosts6 distinct hosts referenced from source; most often github.com, arxiv.org, www.apache.org, kittenml.com. No URLs to bare IP addresses.
Known vulnerabilitiesNo lockfile to check: dependencies are declared as ranges, so what gets installed is whatever is current on the day.
Project hygieneHas licence file. Missing security policy, automated dependency updates, CodeQL, contributing guide.
OpenSSF ScorecardNot scored: the project is not in Scorecard's weekly index.

By the numbers

Stars16.5K
Forks1,000
Contributors7
Commits80
Open issues93
Open pull requests50
Releases3
Latest release0.8.1
LicenceApache-2.0
Main languagePython
Project age1 year
Last pushOct 22, 2026
Tracked files69
Lines of code16.2K
Checkout size4 MB

Lines by language: Python 14.9K, Markdown 1,144, TOML 68.

Questions

Is Kitten TTS free?

The code is free under Apache-2.0. The models are licensed separately: Kitten TTS 2 is under the Stellon Labs Community License, and each model's Hugging Face page has its terms. The company also sells commercial licences and support.

Does Kitten TTS need a GPU?

No. Kitten TTS 2 runs in real time on a CPU with about 6 GB of RAM, and the small 0.8 models run on far less. A CUDA GPU or Apple Silicon makes it faster.

Can Kitten TTS clone a voice?

Yes, Kitten TTS 2 can imitate a speaker from a 5 to 30 second clip. Use it only for your own voice or voices you have clear permission to use; imitating someone without consent can be illegal.


This post is part of GitHub Tools, where every repository is cloned and scanned before it is written up. The scan is a snapshot of one commit on one day; the repository has moved on since, so check it before you install.