Kitten TTS – 25-MB-Open-Source-TTS-Modell, das nur mit der CPU läuft
(github.com/KittenML)- Kitten TTS ist ein Open-Source-TTS-Modell (Text-to-Speech), das gleichzeitig auf Leichtgewichtigkeit und hohe Audioqualität abzielt
- Es verwendet nur 15 Millionen Parameter und bleibt damit unter 25 MB Modellgröße
- Im Gegensatz zu anderen großen TTS-Modellen ist dies ein wesentliches Merkmal, da es in jeder Umgebung ausgeführt werden kann, etwa auf Mobilgeräten oder eingebetteten Systemen
- Auch ohne GPU ist hochwertige Sprachsynthese auf allen Geräten möglich
- Es bietet verschiedene Premium-Stimmen und unterstützt eine hochwertige Sprachsynthese, die echter Sprache sehr nahekommt
- Dank schneller Inferenz ist es für Echtzeit-Synthese optimiert
- Ein Developer-Preview-Modell ist bereits veröffentlicht; die vollständigen trainierten Modellgewichte, ein mobiles SDK, eine Web-Version und weitere Komponenten sollen künftig schrittweise veröffentlicht werden
2 Kommentare
Es wäre schön, wenn es auch ein koreanisches Modell gäbe..
Hacker-News-Kommentare
Auf Ubuntu 24 wurde ein einfacher Benchmark mit einem Razer Blade 16 und Intel Core i9-14900HX durchgeführt
Die anfängliche Latenz liegt bei kurzem Text bei etwa 315 ms, und die Sprachgenerierung erreicht je nach Textlänge das 3,35- bis 5,5-Fache der Echtzeitgeschwindigkeit
Das Modell wird in etwa 710 ms geladen
Auch bei vier verschiedenen Stimmen gibt es kaum Leistungsunterschiede, und es hält ungefähr das 5-Fache der Echtzeitgeschwindigkeit
Auf meiner Intel Celeron N4020 CPU (1,10 GHz) dauert das Laden 6 Sekunden, und die Geschwindigkeit liegt unabhängig von der Textlänge fast in Echtzeit
Danke für den Benchmark
Das Modell ist derzeit noch nicht optimiert
Wenn das Produktions-SDK veröffentlicht wird, wollen wir auch das Laden und Ähnliches optimieren
Auf Reddit gibt es von KittenTTS erzeugte Audiobeispiele
Reddit-Audiobeispiel
Es gibt auch ein kurzes Video mit allen verschiedenen Stimmen
YouTube-Video
Das Reddit-Video ist wirklich großartig
Es ist erstaunlich, dass bei weniger als 25 MB und nur mit CPU diese Qualität herauskommt
Ich verstehe nicht, warum Leute es als „nur so lala“ bewerten
Der Klang ist sehr sauber und klar
Selbst für mich als Nicht-Muttersprachler im Englischen ist es leicht zu verstehen
Es klingt etwas langsam und so, als käme die Stimme aus einer Animation
Wurde das vielleicht mit Stimmen von Futurama-Charakteren quertrainiert?
Ich hoffe, dass solche Modelle die Zukunft sind
Eine Zeit, in der offline arbeitende, kleine ML-Modelle Inferenz auf günstiger, überall verfügbarer Hardware ausführen
Sie lassen sich leicht in andere Geräte oder Apps integrieren und sogar auf anderen Modellen betreiben
Genau das ist die Vision, die Apple mit SLMs (Small Language Models) zeichnet
Wenn es ein Modell gibt, das nur Kalenderereignisse verwaltet, muss es nicht das Wissen der gesamten Menschheit enthalten
Es kann sich einfach auf das konzentrieren, was für die Kalenderverwaltung nötig ist
Wenn man Modelle auf dedizierter Hardware mit nur einem Zweck betreibt, wird die Energieeffizienz sehr hoch
Man kann neuronale Netze sogar nur mit Widerständen betreiben (ohne Transistoren)
Natürlich ist solche Hardware nicht allgemein einsetzbar, und Modell-Upgrades sind schwierig
Aber für viele Anwendungsfälle reicht das völlig aus
Ich frage mich, was erfolgreicher sein wird: Modelle, die man einmal kauft und dann für alles nutzen kann, oder Modelle, die an ein Abo gebunden sind und Hardware brauchen, die sich nur die reichsten Mega-Konzerne leisten können
Eigentlich ist genau das das Ziel, das wir erreichen wollen
Genau das ist auch unsere Vision
Die Größe von 25 MB ist beeindruckend, aber der eigentliche Innovationspunkt ist, dass KittenTTS unter der Apache-2.0-Lizenz veröffentlicht wurde
Diese Kombination macht es möglich, eine vollständig offline laufende Sprach-Engine direkt in Hardware auf Pi-Zero-Niveau oder batteriebetriebenes Spielzeug einzubauen
Keine GPU, keine Cloud-Aufrufe, keine Sorgen wegen restriktiver Lizenzen
Dadurch werden Hardware- oder Lizenzprobleme auf einmal zu einem „Packaging-Problem“
Qualitätsverbesserungen sind eine spätere Frage; der eigentliche Gamechanger ist, dass Verteilung in dieser Klasse überhaupt möglich wird
Auch wir freuen uns sehr darauf, künftig hochwertige ultrakleine AI-Modelle zu bauen
Wir halten lokale Sprachschnittstellen für unvermeidlich und wollen in Zukunft ein Kernakteur in diesem Bereich sein
Dieses Modell ist eine Vorschau, und etwa nächste Woche werden wir zusätzlich eine deutlich ausgereiftere Version veröffentlichen
Außerdem planen wir die Veröffentlichung eines etwa 80M großen Modells
Du hast erwähnt, dass KittenTTS unter Apache-2.0 steht
Wenn man sich aber den Quellcode auf GitHub ansieht, wird ein Phonemizer verwendet
Phonemizer steht unter der GPL-3.0-Lizenz
Daher ist es derzeit faktisch GPL
(Anmerkung: In dem Kommentar wird außerdem ergänzt, dass dieser wie von einem LLM geschrieben wirke)
Das festvox-kallpc16k-Modell von Festival ist etwa 6 MB groß, festvox-kallpc8k etwa 3,5 MB
Die mehrsprachigen Daten von eSpeak NG liegen bei ungefähr 12 MB
Dieses Modell dürfte zwar natürlichere Sprache erzeugen
Aber auch ältere oder schwache Computer konnten schon früher ziemlich gutes TTS umsetzen
Wenn KittenTTS Apache-2.0 ist, frage ich mich, wie es mit den Trainingsdaten aussieht
Selbst wenn das Modell Trainingsbeispiele so genau reproduzieren könnte, dass die Ausgaben praktisch identisch sind
kann man dann rechtlich sicher sein, dass es kein vollständig abgeleitetes Werk ist?
Es ist wegen der Abhängigkeit von espeak-ng GPLv3
Es gibt eine Webversion
Direkt zur Demo
Der Klang ist ganz ordentlich, und gemessen an der Größe ist es ziemlich beeindruckend
Ist es nicht witzig, dass man in SF-Filmen Roboterstimmen absichtlich seltsam verfremdet, damit sie „wirklich robotisch“ klingen?
Eine klar nichtmenschliche Roboterstimme kann in vielen Umgebungen tatsächlich attraktiver und wünschenswerter sein
Ein smarter Toaster muss zum Beispiel nicht wie ein BBC-Nachrichtensprecher reden
Es reicht, wenn die Aussprache gut verständlich ist
Ich habe es den Demotext vorlesen lassen, aber es klang nicht so gut wie die Samples
Für alle, die es ausprobieren wollen, hier der Beispieltext
Als ich die Demo mit 6 Sätzen ausprobiert habe, trat ein Fehler auf
Als ich auf 3 Sätze reduziert habe, funktionierte sie gut
Ich frage mich, ob die Textlängenbegrenzung am Modell liegt oder nur eine Einschränkung der Demo ist
Bei mir funktioniert es überhaupt nicht
Im Backend-Modul tritt ein 404-Fehler auf
Beispiellink für den 404-Fehler
Genau nach diesem Link habe ich gesucht
Die Reddit-Demo ist ganz okay und wirkt auf mich wie ein Stand von vor ein paar Jahren
Aber als ich es selbst ausprobiert habe, waren alle Samples fast unverständlich
Ich musste lachen über die Systemanforderung „läuft praktisch überall“
Auf manchen Maschinen ist die Python-Version zu alt
auf anderen wiederum zu neu, sodass sich das Paket wegen Abhängigkeitsproblemen nicht installieren lässt
Um dieses Problem zu lösen, habe ich ein paar PRs eingereicht
PR 21, PR 24, PR 25
Wenn
uvinstalliert ist, kann man auf dem von mir zusammengeführten Referenz-Branchdas so ausführen
Wenn man über uvx installiert, lassen sich die meisten Probleme mit der Python-Umgebung lösen
Installationsanleitung für uv
Wenn man sich für Python entscheidet, löst man ein Problem und schafft gleichzeitig Dutzende neue
Unter Fedora funktioniert es nicht, weil keine passende Version von g++ vorhanden ist
Python ist die Ursache
Nachdem ich es selbst benutzt habe, sind Modellgröße und Geschwindigkeit ziemlich ordentlich
Allerdings braucht die Installation sehr viele Bibliotheken und zusätzliche Komponenten
sodass man letztlich weit von 25 MB entfernt ist
Trotzdem ist es ein tolles Projekt
Guter Hinweis zu den Abhängigkeitsproblemen
Um Installation und Nutzung zu vereinfachen und zusätzlich die von den Leuten gewünschte GPU-Unterstützung und Verarbeitung längerer Texte anzubieten, habe ich einen selbst gehosteten Server für dieses Modell gebaut
Kitten-TTS-Server
Er läuft direkt in einer normalen Python-venv-Umgebung, ohne dass man sich über Konflikte Sorgen machen muss
git clone,pip install,python server.py– mehr ist nicht nötigDa ONNX erwähnt wird, vermute ich, dass es bereits ein ONNX-Modell gibt oder bald hinzugefügt wird
Die ONNX Runtime ist eine einzelne Bibliothek und ist in C# auf etwa 115 MB komprimiert
Das ist nicht extrem klein, aber der tatsächlich zum Ausführen nötige Code besteht nur aus ein paar Zeilen, daher gibt es auch nur wenige Abhängigkeiten
Wenn man mehrere Bibliotheken auf einmal einbindet, hilft das bei schneller Entwicklung und Iteration
Später, wenn sich die Funktionen stabilisiert haben, räumt man unnötige Bibliotheken wieder auf
Wichtiger als die Modellgröße in MB sind CPU-Betrieb und Qualität, und meine einzige Sorge ist die Latenz
Ich frage mich, ob ein Modell für Speech-to-Text offline ohne zusätzliches Training möglich ist
Wenn die Zeit kommt, in der Gespräche mit AI in natürlicher Geschwindigkeit möglich sind, fast wie zwischen Menschen, wäre das wirklich beeindruckend
Das parakeet-Modell von Nvidia ist beim Englischen aktuell führend
Es ist 10-mal schneller als Whisper und läuft auf meiner mittelklassigen AMD-CPU deutlich schneller als in Echtzeit
Mit Whisper ist Offline-Spracherkennung möglich
Manche Apps unterstützen vollständig offline Diktat oder Transkription
Beim Beispieltext „The brown fox jumps over the lazy dog..“
beträgt die durchschnittliche Generierungszeit 1,28 Sekunden bei etwa 30,35 Zeichen pro Sekunde
auf einem AMD Ryzen 7 5800H
Als Offline-Spracherkennungsmodell ist Whisper von OpenAI besonders bekannt
Offizielles Whisper-Repository
Kennt jemand Faktoren, die die Latenz von TTS-Modellen beeinflussen?
Ziemlich beeindruckend
In bestimmten Bereichen, zum Beispiel im Embedded-Bereich, gibt es dafür definitiv Einsatzmöglichkeiten
Allerdings scheint die Qualität nicht perfekt genug zu sein, um große Modelle zu ersetzen
Als qualitativ hochwertigste offline nutzbare Open-TTS-Modelle sehe ich fish-speech und f5-tts
F5-TTS lief bei mir ordentlich auf einer älteren NVidia 1660 (6 GB VRAM)
Mit aktueller Hardware kann man ohne große Kosten höhere Qualität, Mehrsprachigkeit und sogar Zero-Shot nutzen
Unter Android ist SherpaTTS bei der Kompatibilität gut
Dieses Modell ist eine Vorschauversion, und wir wollen die Qualität künftig deutlich verbessern
Fish Speech hat Gewichte, die nicht kommerziell nutzbar sind
Mich würden die VRAM-Anforderungen interessieren, aber KittenTTS hat 15 Millionen Parameter und könnte daher sogar auf stromsparenden Computern für unter 100 US-Dollar laufen
Die von dir erwähnte 6-GB-GPU ist bereits alt
Die Qualität ist nicht so beeindruckend wie erwartet
Das Ziel ist natürliche Sprache
Auch piper oder kokoro finde ich nicht zufriedenstellend, und XTTS war etwas umständlich zu installieren
Bei Speech-to-Text ist Whisper wirklich hervorragend
Ich vermisse gutes TTS
Hohe GPU-Nutzung wäre für mich in Ordnung, wenn die Qualität stimmt
Zur Einordnung: Dieses Modell ist derzeit schlechter als kokoro
Meiner Meinung nach liefert chatterbox aktuell die beste Qualität unter den Open-Weights-SOTA-Modellen
Das beste Open-Source-TTS, das ich gesehen habe, ist Dia
Es hat zwar einige Einschränkungen, läuft aber auch auf einem Notebook gut
Pinokio ist ebenfalls einen Versuch wert
Auch Chatterbox ist einen Versuch wert
Wenn reichlich GPU-Ressourcen vorhanden sind, muss man hier die Qualität nicht übermäßig streng bewerten
Der entscheidende Punkt ist, dass dieses Modell auch ohne GPU läuft
Früher, noch vor Tacotron2, habe ich kleine TTS-Modelle und Vocoder wie GlowTTS und MelGAN günstig in der DigitalOcean-Cloud betrieben
Danach ging der Trend immer mehr zu größeren Modellen
Aber ich glaube, dass wir wieder in eine Zeit kommen, in der kleine Modelle direkt in Geräte eingebaut werden
In Raspberry Pis, Spielzeug und allerlei kleine Geräte ohne Netzwerkverbindung
Edge AI wird für Roboter, Spielzeug, Consumer-Geräte und Spiele enorme Expansion bringen