leokani-tts-7M
milliwattlabs/leokani-tts-7M
- 作者
- milliwattlabs
- 任务
- 语音合成
- 下载量
- 244
- 点赞数
- 11
- 趋势分
- 10
- 许可证
- cc-by-nc-4.0
- 收录时间
- 2026/11/4
license: cc-by-nc-4.0 language:
- en pipeline_tag: text-to-speech library_name: pytorch tags:
- text-to-speech
- tts
- kokoro
- cpu
Leokani-tts 7M
Try it in your browser: Leokani-tts 7M on Hugging Face Spaces
Leokani-tts is a fast English text-to-speech model: high-quality speech in a tiny model for any CPU, no GPU needed. It speaks in one female American English voice, which in this release was trained on a corpus of synthetic speech generated by Kokoro-82M. The name is Hawaiian: leo (voice) and kani (sound).
Leokani-tts is from Milliwatt Labs: AI measured in milliwatts, not megawatts. We build small, efficient models that run on the devices you already own, with no data center and no GPU.
Everything else is on milliwattlabs.com, free, with docs:
- Try it in your browser: the Hugging Face Space and the model page run Leokani locally in JavaScript; your text never leaves your device.
- Mac app and a command-line tool with an MCP server for AI assistants.
- Android app, which also works as the phone's system text-to-speech voice.
- Linux and Raspberry Pi command-line tool (x86_64 and ARM64).
- Home Assistant: add https://github.com/Milliwatt-Labs/home-assistant-addons in the app store and install Leokani (amd64 and arm64). Also a Wyoming server and an OpenAI-compatible speech API in Docker.
- JavaScript library for browsers and Node.js, and Python with ONNX Runtime or PyTorch (the files in this repo).
What's new
- Nov 3: An Arduino library for ESP32-S3 and ESP32-P4.
- Nov 3: Leokani G2P 1.2.0 reads numbers, abbreviations, letters and homographs better (Hugging Face, GitHub). It's the version in
g2p/. - Nov 3:
leokani-tts-int4.onnx, a smaller ONNX file for a quicker download. - Oct 31: A browser demo on Hugging Face Spaces.
- Oct 31: A Home Assistant app.
Samples
| Text | Audio |
|---|---|
| Hello! I'm a small text-to-speech model, and I run on an ordinary computer. | |
| That sounds like a great plan! Let me know how it goes, and good luck tomorrow. | |
| Did you remember to water the tomatoes before the rain started? | |
| Your flight leaves on March 14th at 7:45 AM, and the fare is 219 dollars. | |
| The trail is 4.2 miles long, climbs about 1,200 feet, and takes around 3 hours. | |
| Maria Gonzalez and Hiroshi Tanaka are meeting Dr. Okafor in Minneapolis on Friday. | |
| The old lighthouse stood at the edge of the bay for more than a century, and every evening the keeper climbed one hundred and twelve steps to light the lamp. | |
| Sure, no problem. |
Usage
hf download milliwattlabs/leokani-tts-7M --local-dir leokani-tts
cd leokani-tts
pip install -r requirements.txt # torch, safetensors
python leokani.py "Hello there. How was your day?" -o hello.wav
python leokani.py "A little slower, please." --speed 0.85 -o slow.wav
python leokani.py --fp16 "Same voice, half-size weights." -o fp16.wav
To turn text into phonemes, Leokani-tts uses espeak-ng by default, or Leokani G2P with --g2p leokani.
Leokani G2P is our own espeak-ng-compatible phonemizer, included in g2p/, so nothing else needs installing:
python leokani.py "Hello there. How was your day?" --g2p leokani -o hello.wav
espeak-ng is a separate dependency under GPL-3.0, and it is not included here. Install it with
brew install espeak-ng (macOS) or sudo apt install espeak-ng (Debian/Ubuntu), or point to it with
--espeak PATH. Or pass Kokoro-style phonemes with --phonemes "...". Leokani G2P on its own:
milliwattlabs/leokani-g2p.
Usage (ONNX)
pip install onnxruntime
python leokani_onnx.py "Hello there. How was your day?" -o hello.wav
python leokani_onnx.py "No espeak-ng needed." --g2p leokani -o g2p.wav
python leokani_onnx.py --int8 "Same voice, a smaller file." -o int8.wav
python leokani_onnx.py --int4 "The smallest file, with a small quality cost." -o int4.wav
INT8: ~half the size of FP16; rated the same as full precision in blind listening tests.
Specs
7.0M parameters · 28 MB (fp32) or 14 MB (fp16) safetensors · leokani-tts.onnx (fp32), leokani-tts-fp16.onnx
(fp16), leokani-tts-int8.onnx (int8, 7.8 MB) and leokani-tts-int4.onnx (int4, 4.9 MB, a smaller download with a
small quality cost) · 24 kHz mono output.
On every platform

| Platform | Device | Speed | First speech |
|---|---|---|---|
| Mac | M3 Pro (native app) | 296× | 19 ms |
| iPhone | 17 Pro Max | 101× | 64 ms |
| Browser | Chrome on Mac | 97× | 64 ms |
| Linux server | 1 vCPU VPS | 36× | 91 ms |
| Android | moto g play 2024 ($50) | 20.6× | 234 ms |
| Raspberry Pi | CM4, 4 cores | 11.5× | 440 ms |
| ESP32-P4 | ESP32-P4, 360 MHz | 1.1× | 353 ms |
| GPU | DGX Spark (GB10), many lines at once | 4,043× | 9 ms |
Speed = seconds of speech per second of compute. First speech = time to the first audio of a line, with the voice already loaded. Apps and downloads: milliwattlabs.com.
On a GPU
No GPU is needed, but on one Leokani is very efficient. Same GPU (NVIDIA GB10, DGX Spark), same test, every model:

| Model | Params | × real time, per line | × real time, many lines at once | GPU J per minute of speech |
|---|---|---|---|---|
| Leokani-tts 7M | 7M | 488× | 4,043× | 0.36 |
| Piper (en_US lessac medium) | 15.7M | 72× | — | 3.52 |
| KittenTTS nano 0.8 | 14M | 75× | — | 6.15 |
| KittenTTS mini 0.8 | 73M | 29× | — | 9.29 |
| Kokoro-82M | 82M | 86× | — | 14.6 |
| Kyutai Pocket TTS | 110M | 14.1× | — | 32.1 |
| Chatterbox | 798M | 2.1× | — | 430 |
4,043× real time is about an hour of speech every second. J per minute = GPU energy above idle; the GB10 has no CPU power sensor, so models that do part of their work on the CPU look slightly better than they are. — = no batch mode.
Performance on One Thread
| Model | Params | Size | Speed, Mac | Speed, 1 Arm core | First speech, Mac | First speech, 1 Arm core | WER | UTMOS |
|---|---|---|---|---|---|---|---|---|
| Leokani-tts ¹ | 7.0M | 28 MB | 90× | 25× | 50 ms | 190 ms | 0.07 % | 3.53 |
| KittenTTS nano 0.8 | 14.0M | 60 MB | 26× | 3.6× | 240 ms | 1.7 s | 0.41 % | 2.18 |
| Piper (en_US lessac medium) | 15.7M | 63 MB | 49× | 5.6× | 86 ms | 710 ms | 0.90 % | 3.77 |
| KittenTTS mini 0.8 | 73M | 82 MB | 16× | 3.4× | 330 ms | 1.6 s | 0.21 % | 2.04 |
| Kokoro-82M | 82M | 328 MB | 7.6× | 0.48× | 670 ms | 11 s | 0.35 % | 3.76 |
| Kyutai Pocket TTS | 110M | 226 MB | 9.7× | 1.2× | 34 ms | 280 ms | 0.35 % | 3.25 |
| Chatterbox | 798M | 3.2 GB | 0.28× | 0.028× | 15 s | 150 s | 0.55 % | 3.36 |
¹ PyTorch on one thread, like every row here; the apps run faster (see On every platform). The ONNX version gives the same output, within 1 % of this speed on the Arm core and 4 % on the Mac.
On an iPhone 17 Pro Max (Core ML, Neural Engine), Leokani-tts renders the 8 sample lines at 101× real time, 64 ms per line (median, the whole line). Kokoro-82M on the same phone takes 308 ms to its first audio chunk (median).
Speed = seconds of speech per second of compute; first speech = median time to first audio over 20 sentences. Mac: M3 Pro CPU; Arm: one 2.8 GHz Cortex-A725 core (Raspberry Pi-class). WER (Whisper large-v3), UTMOSv2: 120 sentences.
Limitations
- One voice, English only.
- Pronunciation follows espeak-ng, so unusual names may be misread. Some symbols are read literally ("$219" becomes "dollar two hundred nineteen"), so write amounts out ("219 dollars").
- Delivery is neutral, intended for a home-assistant style of inflection.
Acceptable use
Don't use Leokani-tts, or speech made with it, to:
- impersonate a real person, or make it sound like someone said something they didn't, without their consent;
- deceive or defraud people, including scams, phishing calls and fake emergency or official messages;
- harass, threaten or bully anyone, or produce hateful or sexual content involving minors;
- spread disinformation, including fake news audio or election-related deception;
- break any law, including privacy, consumer-protection and robocall rules.
Tell people when speech is synthetic wherever the law requires it or they could reasonably be misled. You are responsible for what you make with the model. These terms come in addition to the license.
Speech made with Leokani-tts carries an inaudible watermark, built into the model, that lets Milliwatt Labs recognize audio it generated. The mark is the same in all audio and contains no information about you or your text.
License
The Leokani-tts model: CC BY-NC 4.0, non-commercial use only
(see LICENSE).
For a commercial license or a custom voice, email hello@milliwattlabs.com.
Training audio data generated from Kokoro-82M by hexgrad, which is licensed under
Apache-2.0 (licenses/Kokoro-82M-Apache-2.0.txt).
The Leokani G2P files in g2p/ have their own licence: its code is MIT and its weights and lexicon are
CC BY 4.0, free with attribution (g2p/LICENSE, g2p/NOTICE).
内容来源:Hugging Face 模型卡
在 Hugging Face 查看