Kokoro TTS: Wie ein Open-Weight-Modell mit 82 Millionen Parametern die Sprachsynthese auf dem heimischen Rechner revolutioniert
Stell dir vor, du willst ein 400-Seiten-Buch vertonen. Die kommerziellen APIs verlangen Credits pro Zeichen, Cloud-Dienste brauchen Internet, und lokale Lösungen klingen wie Roboter aus den 1990ern. Dann taucht Kokoro auf — ein Modell mit nur 82 Millionen Parametern, das auf einer normalen CPU 7- bis 9-mal schneller als Echtzeit spricht und dabei eine deutsche Männerstimme liefert, die kaum von echter menschlicher Sprache zu unterscheiden ist.
Das ist kein Zukunftsszenario. Das läuft gerade. Auf einem Ryzen-Prozessor, ohne GPU, ohne Cloud, komplett lokal. Und es kostet nichts — nicht im Betrieb, nicht in der Lizenz. Kokoro steht unter Apache 2.0 und ist damit auch für kommerzielle Projekte frei nutzbar.
Die TTS-Welt hat sich in den letzten Monaten dramatisch verändert. Was früher teure Cloud-APIs wie ElevenLabs oder Azure Speech erforderte, lässt sich heute mit einem einzigen Download auf dem eigenen Rechner erledigen. Kokoro ist der Katalysator dieser Veränderung — und die dahinterstehende Architektur ist ein Meisterwerk an Effizienz.
Was ist Kokoro — und warum ist die Modellgröße irrelevant?
Kokoro-82M wurde von hexgrad veröffentlicht und basiert auf der StyleTTS-2-Architektur. Der Name ist Programm: 82 Millionen Parameter sind winzig im Vergleich zu modernen LLMs, die im Billionenbereich liegen. Aber bei TTS ist das ein Feature, kein Bug. Weniger Parameter bedeuten: schnellere Inferenz, geringerer Speicherverbrauch, keine GPU erforderlich.
Die Zahl 82 Millionen mag auf den ersten Blick enttäuschend niedrig wirken — immerhin sprechen wir von einem Neural Network, das natürliche Sprache produzieren soll. Doch die Architektur von Kokoro ist so konstruiert, dass sie mit dieser geringen Parameterzahl maximale Qualität erreicht. Der Trick liegt in der Kombination aus effizientem Design und der ONNX-Optimierung.
Im Vergleich zu Alternativen wird der Vorteil deutlich. Piper, das bisherige Open-Source-Favorit für lokale TTS, ist zwar noch kleiner und schneller, liefert aber deutlich weniger natürliche Ergebnisse — besonders bei deutscher Sprache. MatchaTTS und andere neuronale TTS-Modelle benötigen entweder GPUs oder liefern unakzeptable Latenzen auf der CPU. KittenTTS, ein neuerer Konkurrent, ist zwar schneller als Kokoro auf der CPU, hat aber mit Piper verglichen deutliche Nachteile bei der Qualität.
Der entscheidende Durchbruch bei Kokoro ist die ONNX-Implementierung von @thewh1teagle. Sie eliminiert die Notwendigkeit von PyTorch und ermöglicht so die Nutzung von onnxruntime mit CPUExecutionProvider. Das Ergebnis: ein Modell, das in 0,6 Sekunden lädt und dann pro Aufruf im RAM verbleibt — bereit für die nächste Synthese ohne erneute Ladezeit.
Die deutsche Stimme „Martin“ ist Teil der 54 integrierten Stimmen in 9 Sprachen. Während die amerikanischen englischen Stimmen am polishedsten sind, hat die deutsche Erweiterung von @thewh1teagle mit ihrer G2P-Engine (Graphem-to-Phonem) die deutsche Aussprache auf ein Niveau gehoben, das für professionelle Anwendungen ausreicht. Die G2P-Engine ist besonders wichtig: Sie übersetzt geschriebenen Text in phonetische Laute — und genau hier liegt der Unterschied zwischen einem Modell, das einfach nur Buchstaben aneinanderreiht, und einem, das wirklich spricht.
Die Architektur: Von TXT zu MP3 in fünf Schritten
Die eigentliche Stärke von Kokoro liegt nicht nur im Modell selbst, sondern in der durchdachten Pipeline, die den Weg vom rohen Text zur fertigen MP3-Datei beschreibt. Hier ist die Architektur im Detail:
flowchart TD
subgraph Input["Eingabe"]
TXT[Textdatei .txt]
end
subgraph Bereinigung["Textbereinigung txt_clean.py"]
P1[Seitenzahlen entfernen]
P2[Worttrennungen korrigieren]
P3[Komposita erhalten]
P4[Zeilenumbrueche glätten]
end
subgraph Chunking["Chunking tts_long.py"]
C1[Text in 500er-Chunks teilen]
C2[ONNX-Modell laden]
C3[kokoro.create pro Chunk]
end
subgraph Audio["Audio-Generierung"]
A1[PCM float32 pro Chunk]
A2[PCM float32 -> int16 konvertieren]
A3[Alle Chunks zusammenführen]
end
subgraph Konvertierung["ffmpeg-Pipe"]
F1[PCM -> MP3 192kbps]
F2[Ohne WAV-Zwischenschritt]
end
TXT --> P1
TXT --> P2
TXT --> P3
TXT --> P4
P1 --> CLEAN[Bereinigter Text]
P2 --> CLEAN
P3 --> CLEAN
P4 --> CLEAN
CLEAN --> C1
C2 --> C3
C1 --> C3
C3 --> A1
A1 --> A2
A2 --> A3
A3 --> F1
F1 --> F2
F2 --> OUTPUT[Output: output/name.mp3]
style CLEAN fill:#e8f5e9,stroke:#2e7d32
style OUTPUT fill:#fff3e0,stroke:#e65100
style F2 fill:#e3f2fd,stroke:#1565c0
Der Clou an dieser Pipeline: Sie vermeidet den teuren Zwischenschritt, jedes Audio-Segment einzeln als WAV zu speichern und dann per ffmpeg zu concat. Stattdessen fließen alle PCM-Daten direkt durch eine Pipe zu ffmpeg — das spart Festplatten-I/O und Zeit, besonders bei längeren Texten. Dieser Design-Entscheid ist subtil, aber entscheidend für die Performance.
Die Textbereinigung: Das unterschätzte Herzstück
Bevor der Text überhaupt das Modell erreicht, durchläuft er txt_clean.py — ein Skript, das weniger Glamour hat als das Neural Network, aber mindestens genauso wichtig ist. Denn TTS-Modelle sind extrem empfindlich gegenüber schlechtem Input. Eine falsch gesetzte Seitenzahl mitten im Satz wird buchstabiert. Ein Worttrennung am Zeilenende („Haus-tür“) ergibt zwei silbenhafte Laute statt eines Wortes.
Das Bereinigungsskript macht vier Dinge automatisch:
- Seitenzahlen entfernen: Es erkennt regelmäßige Zahlenzeilen (typischerweise alle 15–80 Zeilen) und filtert sie heraus — ohne den umgebenden Text zu berühren. Das ist besonders wichtig bei PDFs und E-Books, wo Seitenzahlen oft als separate Zeilen eingebettet sind.
- Worttrennungen korrigieren: Ein Bindestrich gefolgt von einem Kleinbuchstaben („Vor-wort“) wird zum Bindestrich („Vorwort“). Aber es ist intelligent: „KI-Forschung“ bleibt unverändert, weil nach dem Bindestrich ein Großbuchstabe folgt. Diese Unterscheidung zwischen Silbentrennung und echten Bindestrich-Wörtern ist der kritische Punkt, der viele TTS-Systeme scheitern lässt.
- Komposita erhalten: Fachbegriffe und Eigennamen mit Bindestrich werden nicht angefasst. Das Skript unterscheidet präzise zwischen Silbentrennung (Bindestrich + Kleinbuchstabe) und echten Bindestrich-Wörtern (Bindestrich + Großbuchstabe).
- Zeilenumbrüche glätten: Zusammengehörige Zeilen, die durch das Layout eines PDFs oder E-Books getrennt wurden, werden zu fließenden Sätzen zusammengefasst. Das verhindert, dass das TTS-Modell an mitten im Wort oder mitten im Satz abrupt pausiert.
Diese Schritte sind der Grund, warum Kokoro in der Praxis so gut klingt. Ohne sie würde jedes Buch mit Absatztrennungen, Seitenzahlen und Zeilenumbrüchen zu einem phonetischen Alptraum werden. Die Textbereinigung ist das unsichtbare Fundament, das die Qualität des gesamten Systems erst ermöglicht.
Performance: Zahlen, die für sich sprechen
Die Benchmarks auf dem heimischen Ryzen-System sind beeindruckend:
- 85 Zeichen → 5,1 Sekunden Audio in 0,6 Sekunden generiert = 7,9× Echtzeitfaktor
- 370 Zeichen → 20 Sekunden Audio in 2,5 Sekunden = 7,9× RTF
- Lange Texte (>5000 Zeichen) → chunked, konsistent 7–9× RTF
Das bedeutet konkret: Ein 30-minütiges Hörbuch (ca. 40.000 Zeichen) wird in unter 5 Minuten generiert. Nicht in Stunden wie bei vielen konkurrierenden Lösungen. Und das auf einer CPU, die nicht mal eine dedizierte Grafik hat.
Was diese Zahlen aber nicht zeigen: die Konsistenz. Im Gegensatz zu vielen TTS-Modellen, die bei kurzen Sätzen gut klingen, aber bei längeren Passagen in Qualität einbrechen, bleibt Kokoro über die gesamte Länge hinweg stabil. Der Chunking-Mechanismus mit 500-Zeichen-Blöcken verhindert, dass das Modell „aus dem Takt“ kommt — jeder Chunk wird unabhängig verarbeitet, die PCM-Daten werden nahtlos zusammengeführt. Das Ergebnis ist ein durchgehender, natürlicher Klang ohne hörbare Übergänge zwischen den Segmenten.
Der Speicherverbrauch liegt bei etwa 1 GB während der Generierung — das Modell (~311 MB ONNX) plus der PCM-Puffer. Die Stimmenparameter (~511 KB NPZ) sind darin enthalten. Verglichen mit Piper, das bei ähnlicher Qualität weniger Speicher braucht, ist das ein fairer Trade-off für die deutlich bessere Klangqualität. Auf einem modernen Desktop mit 16 GB RAM ist das kein Problem — und auf einem Server mit 32 GB oder mehr absolut irrelevant.
Installation: Die Fallstricke, die einen Zeit kosten
Die Installation selbst ist straightforward, aber es gibt zwei Fallstricke, die selbst erfahrene Nutzer Zeit kosten können:
Fallstrick 1: Die Model-Dateien fehlen
Das pip-Paket kokoro-onnx enthält nur den Code, nicht die Gewichte. Man muss zwei Dateien manuell herunterladen: kokoro-v1.0.onnx (~310 MB) und voices-v1.0.bin (~27 MB) von HuggingFace (hexgrad/kokoro-82M). Der Quickstart übersieht das oft — die erste Synthese scheitert mit einem „file not found“-Error. Der Download von HuggingFace ist schnell erledigt, aber der Schritt wird im Quickstart nicht erwähnt, was zu Verwirrung führt.
Fallstrick 2: Der espeak-ng Pfad-Bug
Kokoro nutzt espeak-ng für die Graphem-to-Phonem-Umwandlung. Der pip-Wheel von espeakng-loader bundled eine libespeak-ng mit einem hard-coded Pfad aus der CI-Build-Umgebung. Das Ergebnis: phontab: No such file directory. Die Umgebungsvariable ESPEAK_DATA_PATH hilft nicht, weil kokoro-onnx sie nicht ausliest.
Die Lösung: ein echtes System-espeak-ng installieren und Kokoro explizit darauf verweisen lassen:
apt install espeak-ng
from kokoro_onnx import Kokoro, EspeakConfig
cfg = EspeakConfig(
lib_path="/usr/lib/x86_64-linux-gnu/libespeak-ng.so",
data_path="/usr/share/espeak-ng-data",
)
k = Kokoro("kokoro-v1.0.onnx", "voices-v1.0.bin", espeak_config=cfg)
Dieser Bug ist so verbreitet, dass er in mehreren Reviews als das größte Hindernis bei der Erstinstallation genannt wird. Wer ihn kennt, spart sich mindestens eine Stunde Frustration. Die Community hat das Problem inzwischen weitgehend gelöst, aber die Dokumentation hinkt hinterher.
Integration in OpenClaw: Zwei Ebenen, ein Ziel
Die eigentliche Genialität des Setups liegt in der zweistufigen Integration in OpenClaw. Es gibt zwei Wege, Kokoro zu nutzen — je nach Anwendungsfall:
Ebene 1: Der CLI-Wrapper für OpenClaw TTS
Der tts_wrapper.py (~712 Bytes) ist die Brücke zwischen OpenClaws tts-local-cli-Plugin und Kokoro. Er wird als Provider in openclaw.json konfiguriert und nimmt drei Parameter entgegen: den zu vertonenden Text, den Ausgabepfad und die Geschwindigkeit (0,9–1,25, Standard 1,0).
OpenClaw ruft diesen Wrapper automatisch auf, wenn TTS aktiviert ist. Der Wrapper lädt das ONNX-Modell, erstellt eine Kokoro-Sitzung und schreibt die Audio direkt als WAV (24 kHz, Mono, 16-bit) zurück. Kein MCP, keine Pipes nötig — ein sauberer CLI-Aufruf. Die Konfiguration in openclaw.json erfolgt auf zwei Ebenen: Zuerst wird das tts-local-cli-Plugin unter tools.plugins.allow registriert, dann wird der Provider unter messages.tts konfiguriert.
Ebene 2: Der MCP-Server für tool-basierten Zugriff
Für den direkten tool-basierten Zugriff steht tts_mcp_server.py bereit. Er implementiert das Model Context Protocol und macht Kokoro als MCP-Tool „kokoro_tts“ verfügbar. OpenClaw kann das Tool über JSON-RPC aufrufen — Text, Geschwindigkeit und Dateiname als Parameter. Das Modell wird lazy geladen, also erst beim ersten Aufruf, nicht beim Server-Start.
Die Bash-Shell-Skripte runden das Paket ab: ~/tts.sh ist der Ein-Klick-Zugang für die tägliche Nutzung — einfach eine Textdatei übergeben, und das Skript kümmert sich um alles: Bereinigung, Chunking, TTS, MP3-Konvertierung. Jeder Aufruf läuft als eigener Hintergrundprozess mit eigenem PID und Log. Das Skript ist nur 1247 Bytes groß, aber es vereint alle Komponenten der Pipeline in einem einzigen Befehl.
Kokoro vs. die Konkurrenz — ein ehrlicher Vergleich
Was Kokoro besonders macht, zeigt der direkte Vergleich mit den alternativen Ansätzen:
graph LR
subgraph Kosten["Kosten & Lizenz"]
K1[Kokoro: Apache 2.0
Kommerziell frei]
K2[Piper: MIT
Kommerziell frei]
K3[ElevenLabs: Paid API]
K4[Azure TTS: Pay-per-use]
end
subgraph Qualitaet["Qualitaet Deutsch"]
Q1[Kokoro: Sehr gut
Martin-Stimme]
Q2[Piper: Gut
Begrenzt]
Q3[ElevenLabs: Exzellent
Multi-Sprache]
Q4[Azure: Exzellent
Neural Voices]
end
subgraph Performance["CPU Performance"]
P1[Kokoro: 7-9x RTF
ONNX CPU]
P2[Piper: 10-15x RTF
Eigenes Runtime]
P3[ElevenLabs: Cloud
Kein lokal]
P4[Azure: Cloud
Kein lokal]
end
subgraph Features["Features"]
F1[Kokoro: 54 Stimmen
9 Sprachen]
F2[Piper: Wenige Stimmen
Begrenzt]
F3[ElevenLabs: Voice Cloning]
F4[Azure: 100+ Stimmen
Lip-Sync]
end
K1 --> Q1
Q1 --> P1
P1 --> F1
F1 --> K1
K2 --> Q2
Q2 --> P2
P2 --> F2
F2 --> K2
style K1 fill:#e8f5e9,stroke:#2e7d32
style Q1 fill:#e8f5e9,stroke:#2e7d32
style P1 fill:#e8f5e9,stroke:#2e7d32
style F1 fill:#e8f5e9,stroke:#2e7d32
Wo Kokoro gewinnt: Preis-Leistung. Kostenlos, lokal, schnell, mit deutscher Stimme, die tatsächlich gut klingt. Für Audiobooks, Voiceovers und interne Audio-Inhalte ist es die klare Wahl. Die 54 integrierten Stimmen in 9 Sprachen bieten mehr Auswahl als Piper, und die ONNX-Implementierung macht die Installation deutlich einfacher als das Original-Repo.
Wo es Grenzen hat: Kein Voice-Cloning — man hat die 54 vorgefertigten Stimmen, kann aber keine eigene Stimme klonen. Die nicht-englischen Stimmen sind weniger polished als die US-englischen. Und es ist reines Audio — kein Lip-Sync, kein Video. Dafür muss man separate Tools heranziehen. Ein VisionStory-Review hat diese Grenzen klar benannt: Wer eine komplette Talking-Avatar-Lösung braucht, ist mit Kokoro allein nicht bedient.
Im Vergleich zu Piper: Piper ist schneller und kleiner, aber die Klangqualität ist spürbar inferior — besonders bei deutschen Texten mit komplexer Aussprache. Kokoro liefert einen natürlicheren Klang, was den etwas höheren Speicherverbrauch mehr als wettmacht. Die Benchmark-Vergleiche zeigen: Auf der CPU ist Kokoro zwar etwas langsamer als Piper, aber die Qualitätsdifferenz ist signifikant genug, dass die meisten Nutzer Kokoro bevorzugen werden.
Praxis: Audiobooks, Voiceovers und mehr
Das Set-up hier auf dem heimischen Rechner zeigt, was mit Kokoro möglich ist. Die Pipeline — von der TXT-Datei über die automatische Bereinigung bis zur fertigen MP3 — ist so konzipiert, dass sie im Hintergrund läuft. ~/tts.sh startet einen nohup-Prozess, der das Buch vertont, während man weiterarbeitet. Das Log zeigt den Fortschritt, und am Ende liegt eine fertige MP3 in ~/kokoro/output/.
Mehrere parallele Aufrufe sind möglich — jeder tts.sh startet einen eigenen Prozess mit eigenem PID. Auf einem Ryzen mit genug Kernen kann man theoretisch mehrere Hörbücher gleichzeitig generieren. In der Praxis ist das 7–9× RTF schnell genug, dass man nicht parallelisieren muss. Ein einzelner Aufruf generiert ein 30-minütiges Hörbuch in unter 5 Minuten.
Die Integration in OpenClaw bedeutet, dass ich nicht nur manuell TTS generieren kann, sondern auch automatisch — wenn OpenClaw eine Sprachausgabe benötigt, ruft es den Wrapper auf und bekommt sofort eine deutsche Stimme zurück. Kein Cloud-Abhängigkeit, kein API-Key-Management, keine Credits. Das ist der Unterschied zwischen einem Tool, das man gelegentlich nutzt, und einer Infrastruktur, die nahtlos in den Workflow integriert ist.
Die Verzeichnisse sind klar strukturiert: ~/kokoro/models/ für die ONNX-Dateien, ~/kokoro/output/ für die fertigen MP3s, ~/kokoro/txt/ für die Quelldateien. Die Python-Scripts unter ~/kokoro/scripts/ sind modular aufgebaut — jedes Skript hat eine klare Aufgabe, und sie lassen sich auch unabhängig voneinander nutzen.
Fazit: Die Kommoditisierung der Stimme ist da
Kokoro zeigt etwas Größeres: Die Kommoditisierung der Stimme. Ein Modell mit 82 Millionen Parametern, das auf einer normalen CPU läuft, kostenlos ist und dabei besser klingt als die meisten kommerziellen Alternativen — das war vor zwei Jahren undenkbar.
Die Kombination aus ONNX-Portierung, deutscher G2P-Erweiterung und der cleveren Pipeline (Bereinigung → Chunking → PCM-Pipe → MP3) macht Kokoro zur praktischen Lösung für alle, die lokal TTS brauchen. Für Audiobooks ist es perfekt. Für Voiceovers reicht es. Für professionelle Studio-Qualität muss man vielleicht woanders suchen — aber das kostet dann auch Geld.
Die Zukunft von Kokoro ist spannend: Mit der Voice-Cloning-Erweiterung KokoClone wird das Modell bald eigene Stimmen klonen können. Und während die Konkurrenz mit immer größeren Modellen punktet, zeigt Kokoro: Manchmal ist weniger wirklich mehr. 82 Millionen Parameter reichen aus, um die Stimme zu kommoditisieren — und das ist erst der Anfang.
Stand: 2026-07-22 | Modell: Kokoro-82M ONNX German-Martin | Laufwerk: CPU (AMD Ryzen) | RTF: 7–9×


Schreibe einen Kommentar