uncloseai.
Kokoro TTS
Self-host — Not on the public endpoint. Clone the repo to use this engine.
What It Does
A tiny model that punches above its weight. Only 82 million parameters — small enough to run on a Raspberry Pi, an edge device, or anywhere resources are tight. Despite its size, the output quality is surprisingly good.
34 voices in American and British English, with names intentionally mirroring the OpenAI voice lineup. If you're migrating from OpenAI's TTS API and want something that feels familiar but runs on your own hardware, this is a natural fit.
Apache 2.0 licensed, 24kHz output. The smallest raccoon in the dumpster, but it gets the job done.
Example
Once self-hosted and enabled, it works through the same OpenAI-compatible API:
from openai import OpenAI
client = OpenAI(
api_key="not-needed",
base_url="http://localhost:8000/v1"
)
# Kokoro uses voice names like af_heart, am_adam, bf_emma
client.audio.speech.create(
model="tts-1-kokoro",
voice="af_heart",
input="A tiny model that fits anywhere. Edge devices, embedded systems, even a Raspberry Pi. The raccoons rescued this one for the smallest hardware."
).stream_to_file("kokoro.mp3")
Technical Details
- Parameters: 82 million (decoder-only architecture)
- Voices: 34 (American/British English)
- License: Apache 2.0 (commercial use OK)
- Sample rate: 24kHz
- Hardware: CPU or GPU, minimal resources needed
- Upstream: Kokoro TTS by Hexgrad
Self-Hosting
git clone https://git.unturf.com/engineering/unturf/uncloseai-speech.git
cd uncloseai-speech
make deploy
make voices-kokoro
Add Kokoro voices to voice_to_speaker.default.yaml and restart.