heute möchte ich euch von meinen Erfahrungen mit Whisper Streaming berichten. Für mein Startup Assistent.ai habe ich eine Conversational AI Plattform entwickelt, die Telefonanrufe von Gastronomiekunden verarbeitet, Tischreservierungen durchführt und Fragen zu den Restaurants beantwortet. Neben einer hohen Performance ist die Erkennungsqualität das wichtigste Asset für unser System.
Nach dem Testen verschiedener Spracherkennungssysteme wie Google und Azure, bin ich auf das Whisper Modell gestoßen. Whisper bietet eine beeindruckende Erkennungsqualität, unterstützt jedoch keine Streamingoptionen. Um dies zu umgehen, habe ich den Ansatz des Micro-Batchings verwendet.
Streaming vs. Micro-Batching
Streaming bedeutet, dass Daten kontinuierlich und sofort verarbeitet werden, sobald sie eintreffen. Dies ermöglicht Echtzeit-Ergebnisse. Im Gegensatz dazu sammelt Micro-Batching Daten in kleinen Paketen und verarbeitet sie in kurzen Abständen, was eine geringe Verzögerung zur Folge hat, aber nahe an Echtzeit herankommt.
Die Lösung: Micro-Batching
Beim Micro-Batching werden Audiodaten in kleinen Blöcken gesammelt und verarbeitet. So kann Whisper diese kleinen Datenpakete schnell verarbeiten, was das Gefühl einer Echtzeit-Erkennung vermittelt.
So habe ich es gemacht:
- Daten sammeln: Eingehende Audiodaten werden in einem Puffer gespeichert.
- Batches erstellen: Sobald genügend Daten gesammelt sind, wird ein Micro-Batch erstellt.
- Whisper nutzen: Diese Micro-Batches werden an Whisper zur Erkennung gesendet.
- Ergebnisse verarbeiten: Die erkannten Texte werden dann an das Conversational AI System weitergeleitet.
Streaming verarbeitet Daten kontinuierlich und sofort, sobald sie eintreffen, wodurch Ergebnisse in Echtzeit bereitgestellt werden. Micro-Batching sammelt Daten in sehr kleinen Paketen und verarbeitet sie in kurzen Abständen, was zu einer minimalen Verzögerung führt. Während Streaming echte Echtzeit-Verarbeitung bietet, kombiniert Micro-Batching die Vorteile der Batch-Verarbeitung mit nahezu Echtzeit-Leistung.
Herausforderungen und Ergebnisse
Obwohl die Erkennungsqualität von Whisper beeindruckend ist, gab es im vorproduktiven Testeinsatz Probleme. Whisper neigt dazu, viele Halluzinationen zu erzeugen und transkribiert oft Dinge, die nicht in den Sprachdaten vorhanden sind. Diese ungenauen und teilweise total falsche Transkriptionen machen den produktiven Einsatz schwierig.
Fazit
Die Integration von Whisper in unser System war eine wertvolle Erfahrung, trotz der Herausforderungen. Der Micro-Batching-Ansatz ermöglichte es, die hohe Erkennungsqualität von Whisper zu nutzen, aber die Halluzinationen sind ein großes Hindernis für den produktiven Einsatz. Daher suchen wir nun für jede Sprache individuelle Lösungen, beobachten jedoch die Entwicklungen rund um Whisper weiterhin aufmerksam.