Lokale TTS für Embedded Geräte mit Sprachinterface: Auswahl und Praxisbeispiel

Embedded Systems Software Projekte

Ziel

Wir suchten eine natürlich klingende Text-to-Speech (TTS) Engine, die fünf Bedingungen erfüllt:

  1. Open Source, keine proprietäre Blackbox, freie Lizenz.
  2. Kein realer Sprecher, das Modell nicht auf einer echten Person trainiert, keine Persönlichkeitsrechte, keine gesetzlichen Hürden für kommerzielle Nutzung. Bei Produkten, die über zwanzig Jahre gepflegt werden, kommt ein praktischer Aspekt dazu: auch derselbe Sprecher altert, Timbre und Intonation lassen sich nach Jahren nicht mehr identisch reproduzieren, nicht einmal von der ursprünglichen Person selbst.
  3. Möglichst gute Sprecherqualität, neuronale Stimme, kein Roboter TTS.
  4. Echtzeitfähig, Ausgabe schneller als in Echtzeit erzeugbar.
  5. Ohne Internet, vollständig lokal, kein Cloud Dienst, kein API Key.

Das Ergebnis der Suche ist die Engine Kokoro-82M. Dieser Bericht dokumentiert die Auswahl, prüft die fünf Punkte im Faktencheck nach und zeigt am Ende ein konkretes Beispiel aus dem Modellbau, wie eine Implementierung damit aussehen kann.

Die Engine: Kokoro-82M

Kokoro-82M ist ein neuronales Text-to-Speech Modell mit rund 82 Millionen Parametern, veröffentlicht unter Apache-2.0. Es ist bewusst klein gehalten und läuft auf bescheidener Hardware. Eine 8 GB NVIDIA Karte beschleunigt, ist aber nicht Pflicht; CPU Betrieb funktioniert. Kein Voice Cloning, kein fremdes Stimmenmaterial.

Für Embedded Anwendungen mit kleinem MCU ist die Live Synthese ohnehin selten der Weg: die Ansagen werden einmalig auf einem PC gerendert und als WAV Dateien im Flash oder auf SD-Karte abgelegt, die MCU muss dann nur noch abspielen. Auf grösseren Boards wie einem Raspberry Pi® läuft Kokoro-82M auch live, allerdings mit Einschränkungen: Community Berichte für einen Pi 5 CPU-only liegen beim Real Time Factor grob im Bereich von 1 bis 2, also knapp über Echtzeit. Wer das produktiv nutzen will, sollte eigene Messungen im Zielbetrieb machen oder für ein Produkt entweder pre-rendern oder einen NPU / GPU Beschleuniger einplanen.

Grobe Einordnung für kleinere ARM® Linux® SoCs (etwa i.MX6 Klasse): mit CPU-only Live-Synthese ist realistisch nicht mehr zu rechnen, der RTF rutscht deutlich über 1, also langsamer als Echtzeit, sofern das Modell überhaupt lädt. Für diese Klasse bleibt Pre-Rendering die einzige pragmatische Antwort: einmalig auf einem Entwicklerrechner erzeugen, die WAV Dateien auf das Zielsystem deployen, dort nur noch abspielen.

Faktencheck

KriteriumAnspruchBefundBeleg
Open Sourcefreie LizenzerfülltKokoro-82M unter Apache-2.0
Kein realer Sprecherkeine PersönlichkeitsrechteerfülltKokoro-82M README: kein Voice Cloning, kein fremdes Stimmenmaterial im Training
Sprecherqualitätneuronal, hochwertigerfüllt, mit EinordnungKokoro-82M erreichte im Januar 2026 Platz 1 auf der TTS Arena Rangliste unter den Modellen, die vollständig lokal bzw. im Browser laufen (ELO ~1058); es schlug dabei deutlich grössere Modelle. In der absoluten Gesamtrangliste (inkl. grosser Cloud Dienste) liegt es im Mittelfeld. Für ein 82-M-Modell ist die Qualität aussergewöhnlich.
Echtzeitfähigschneller als EchtzeiterfülltReal Time Factor (RTF) ~0.03 auf einer A100 GPU (rund 30x Echtzeit); auf einem Laptop ohne GPU noch etwa 6x Echtzeit. Live Synthese ist damit möglich.
Ohne Internetvollständig offlineerfülltLäuft komplett lokal auf eigener Hardware. Kein Cloud Dienst, kein API Key. Modell (~330 MB) wird einmalig geladen.

Der Negativpunkt: keine deutsche Stimme

Der einzige echte Kompromiss: Kokoro hat kein deutsches Sprachmodell. Der README formuliert es unmissverständlich, für Deutsch (ebenso Koreanisch, Polnisch, Tschechisch, Dänisch) ist mit dieser Engine keine Ausgabe möglich. Solide unterstützt ist Englisch; technisch machbar wären Spanisch, Französisch, Italienisch, Portugiesisch und Japanisch.

Es gibt Community Ansätze, Kokoro auf Deutsch nachzutrainieren (u.a. ein Multi Speaker Stage-1 Basismodell auf rund 51 Stunden Audio, sowie erste ONNX Exporte). Keiner dieser Ansätze ist zum Zeitpunkt dieses Berichts eine fertige, produktionsreife deutsche Einzelstimme, es sind Zwischenstände für weiteres Training. Wer heute eine deutsche Ansage braucht, kommt mit dieser Engine nicht zum Ziel.

Anwendungsfelder

Eine offline lauffähige, gut klingende und lizenzfreie TTS Engine passt auf viele Aufgaben, bei denen bislang entweder ein Cloud Dienst, ein teures kommerzielles Modell oder ein Roboter-Sprachsynthesizer die Wahl war:

Der gemeinsame Nenner: viele Ansagen aus verschiedenen Quellen sollen konsistent klingen, ohne Abhängigkeit von einem externen Dienst und ohne Lizenzrisiko.

Praxisbeispiel: rc-voices für EdgeTX

Als konkretes Anwendungsbeispiel haben wir auf dieser Engine ein Werkzeug gebaut: rc-voices →, das komplette Sprachpakete für EdgeTX Fernsteuerungen im Modellbau lokal erzeugt.

Der Grund für den Aufwand ist der Alltag am Sender: im Betrieb kommen ständig viele verschiedene Ansagen zusammen, System Sounds der Fernsteuerung vom Hersteller, Telemetrie aus dem Flightcontroller (INAV, Betaflight, Yaapu), eigene Flugmodus Callouts. INAV ist dabei ein Open Source Flight Controller mit Schwerpunkt Navigation und einer der beliebteren im Hobbybereich, verbreitet in einer breiten Palette an Fluggeräten: Flugzeuge, Nurflügler, Multirotor (Quad, Hexa, Octo), VTOL und sogar Rover oder Boote. Wenn diese Ansagen aus verschiedenen Sprachpaketen mit unterschiedlichen Sprechern gemischt werden, klingt es unruhig und unprofessionell. Eine konsistente Stimme über alle Ansagen hinweg ist der eigentliche Nutzen.

rc-voices erzeugt genau das: 766 Ansagen pro Paket, aus einer einzigen gewählten Stimme. Zur Auswahl stehen 18 Stimmen, Default ist af_nicole bei leicht getragenem Tempo (speed 0.9). Lizenz: Apache-2.0.

Wichtig für die Einordnung: rc-voices nutzt die Engine im Batch Betrieb, rendert die Ansagen einmalig in WAV Dateien und stellt daraus das Sprachpaket zusammen. Die Echtzeitfähigkeit der Engine ist hier nicht Kernanforderung, eröffnet aber weitere Anwendungen (etwa Live Ansagen aus einem Companion Rechner).

Die Texte als JSON

Die Ansagen selbst leben in einer Handvoll JSON Dateien unter lists/, jede ein flaches Mapping von Dateiname zu gesprochenem Text:

{
  "INAV/engarm.wav": "engines armed",
  "INAV/engdrm.wav": "engines disarmed",
  "INAV/batlow.wav": "Low battery",
  "stop3.wav": "Goodbye. Foam and glue, good as new."
}

Das Prinzip: Text und Dateiname werden gemappt. Der Text geht in die Synthese, der Dateiname bestimmt, wo die Ausgabe im Zielsystem landet, damit die EdgeTX Firmware sie an der erwarteten Stelle und mit dem erwarteten Namen findet. Die Listen sind thematisch aufgeteilt: edgetx_full.json für den kompletten EdgeTX Standardsatz, messages.json für freie Start- und Shutdown-Zeilen, inav_new_modes.json für Kunstflug-Modi aus experimentellen INAV Zweigen, die noch nicht in EdgeTX gelandet sind. Aus diesen Quellen erzeugt das Build Skript eine kombinierte Synthese-Liste und rendert dann Eintrag für Eintrag durch die Engine.

Wer den Ansatz für ein eigenes Gerät übernehmen will, tauscht schlicht die JSON aus: Dateinamen an die eigene Firmware anpassen, Texte in der eigenen Domäne formulieren, Build Skript starten. Die Struktur bleibt gleich.

Vier Stimmen, vier Ansagen

Das Stimmenspektrum von Kokoro ist breit, von sonoren männlichen über neutrale bis zu warmen weiblichen Stimmen, mit fein abgestuften Klangfarben dazwischen. Die folgenden vier Beispiele sind genau die vier Einträge aus dem Code-Beispiel oben, jeder in einer anderen Kokoro Stimme gerendert. Zum Anhören auf den Player klicken.

Ansage (Text)StimmeAnhören
Low batteryam_michael (männlich, sonor)
engines armedam_puck (männlich, kräftig)
Goodbye. Foam and glue, good as new.af_nicole (weiblich, Default)
engines disarmedaf_bella (weiblich, warm)

Das Skript selbst ist bewusst einfach gehalten und lässt sich für andere Anwendungen adaptieren, überall dort wo eine Sammlung von Ansagen mit einer konsistenten Stimme gebraucht wird.

Fazit

Kokoro-82M ist für die formulierten Anforderungen eine saubere Wahl: frei lizenziert, ohne echten Sprecher trainiert, offline, echtzeitfähig, und mit einer Sprecherqualität, die für die Modellgrösse und die Klasse der lokal lauffähigen Modelle an der Spitze liegt. Der Verzicht auf eine deutsche Stimme ist die einzige, aber klar benannte Einschränkung.

Das Praxisbeispiel rc-voices zeigt, wie sich die Engine mit wenig Code in eine konkrete Anwendung überführen lässt. Der gleiche Ansatz trägt auch für Bedienpanels, Diagnosegeräte oder öffentliche Durchsagen, überall dort wo eine konsistente Stimme lokal und lizenzfrei gebraucht wird.

Quellen

Schlüsselwörter: Kokoro-82M, TTS offline lokal, rc-voices, EdgeTX Sprachpaket, INAV Ansagen, Embedded Sprachinterface, Apache 2.0 TTS, neuronale Sprachsynthese ohne Cloud, lokale KI Modelle Integration, Embedded KI Beratung Schweiz, swissEmbedded Consulting

Lokale KI Modelle in Embedded Projekten einsetzen? Wir helfen bei der Auswahl passender offener Modelle, prüfen Lizenz und Ressourcenbedarf, und bauen die lokalen Pipelines drumherum.

Kontaktieren Sie uns →