Speech2Text - Outsourcing vs Custom-Model

Leftshift OneLesezeit: 15 Minuten

Obwohl das Feld der Spracherkennung schon lange existiert, wird es wichtiger denn je.ComScore sagt vorraus, dass die Hälfte aller Suchen bis 2020 über Stimmeingabe erfolgen wird. Genauso wichtig ist die Frage, ob man als Anbieter von Systemen mit Spracherkennung zurfertigen SaaS-Lösung greifen sollte oder ob es zielführend ist, sich seineigenes Sprach-Framework mit existierender Open Source Software aufzubauen.

Hinter den Kulissen

ASR-Systeme (Automatic Speech Recognition) sind komplexer als man vielleicht auf den ersten Blick denkt. Wenn man Alexa sagt, sie solle das Licht in der Küche anmachen, haben wir als Benutzer nur Eingabe (Unsere Stimme) und Effekt (Alexa antwortet und das Licht in der Küche geht an) als Referenz. Deswegen ist es leicht, sich ein ASR-System als einen Algorithmus vorzustellen, welcher einfach unsere Sprache verwendet und in Text übersetzt, den dann Alexa versteht.Allerdings handelt es sich nicht um einen Algorithmus, sondern ein System aus Modulen, das gesprochenes Wort in Text übersetzt. Ein solches ASR-System setzt sich im Normalfall aus den folgenden Komponenten zusammen.
  • Akustische Analyse
  • Akustisches Modell
  • Sprachmodell
  • Aussprachelexikon
Icons made by Chanut from www.flaticon.com is licensed by CC 3.0 BY

Akustische Analyse - Frames werden zu Features

Die Akustische Analyse dient der extraktion von sogenannten Features aus dem aufgenommenen Ton. Zuerst wird der Audiostream jedoch in kleine sogenannte Frames aufgeteilt. Ein einzelnes Frame ist sozusagen ein Tonschnipsel und ist im normalerweise nur zwischen 10 und 30 Millisekunden lang. Ein gesprochener Satz würde also zuerst in hunderte Frames aufgeteilt werden, um danach aus jedem Frame relevante Features zu extrahieren
Image made by Andreas Neocleous from University of Cyprus.
Die gefundenen Features sind oft so designed, dass sie möglichst genau den Zustand des Vokaltrakts des Sprechers widerspiegeln.

Akustisches Modell - Features werden zu Phonemen

Die Aufgabe des Akustischen Modells ist es nun, aus den erzeugten Features mögliche Phoneme (atomare Laute einer Sprache) vorherzusagen. Wir verwenden Phoneme und keine Buchstaben. Der Grund dafür ist, dass Buchstaben unterschiedlich ausgesprochen werden können, je nachdem in welchem Wort diese vorkommen.Hidden Markov Models (HMMs)sind bis jetzt die häufigste Methode ein solches Modell zu realisieren

Was soweit geschieht

Nehmen wir also an, unser ASR-System bekommt einen gesprochenen Satz zu hören - was passiert in der bis jetzt beschriebenen Architektur?
  • Das Geräusch wird in kleine Frames aufgeteilt
  • Jedes Frame erhält Features zugewiesen
  • Ein trainiertes Machine Learning Modell übersetzt die Feature-Kette in Phoneme
Wir geben unserem Modell also Sprache also Input und erhalten die entsprechenden Phoneme zurück. Man könnte es dabei belassen und einfach Phoneme mit unserem Aussprachelexikon zurück in Wörter übersetzen

Sprachmodell

Unser Akustisches Modell ist aber nicht deterministisch - wir erhalten für jedes Frame eine Liste an möglichen Phonemen, zusammen mit Wahscheinlichkeiten. Wenn wir immer nur das wahrscheinlichste Phoneme verwenden, werden wir unweigerlich einige fehlerhafte Phoneme auswählen, obwohl das richtige Phoneme vielleicht sogar an zweiter oder dritter Stelle von unserem Modell vorhergesagt wurdeAußerdem gibt es aber sogenannte Homophone, Wörter mit unterschiedlicher Bedeutung aber gleicher Aussprache. Unser Modell kann an diesem Punkt also nicht zwischen Heute und Häute unterscheidenUm potentielle makabere Zeitangaben zu vermeiden und unser System insgesamt genauer zu machen, benötigen wir ein Sprachmodell. Dieses wird aus existierendem Text generiert und erkennt richtigerweise, dass die Ausage "Häute ist ein schöner Tag" weniger wahrscheinlich ist als derselbe Satz mit "Heute".

Fallstudie - PocketSphinx vs Nuance Dragon

Für einen österreichischen Car-Sharing-Anbieter war ebenfalls ein Speech-to-Text System gefordert. Dafür benötigten wir einen Vergleich zwischen einer möglichen On-Premise-Lösung und einem Cloud-Anbieter. Die beiden besten Kandidaten in diesem Artikel sind:PocketSphinx, ein Open-Source Projekt undNuance Dragon, der Cloud-Anbieter.

Allgemeine Vorteile

Vor den detaillierten Tests zwischen den beiden Lösungen hilft es die allgemeinen Vorteile einer lokalen vs. einer gemieteten Lösung zusammenzufassen.
On-PremiseCloud Anbieter
Gute SkalierbarkeitMinimale Rechenleistung/Infrastruktur benötigt
Training auf neuen Daten möglichGute vortrainierte Modelle vorhanden
Anpassung an spezielle Anforderungen möglichInitialies Aufsetzen einfach
Bei Verwendung einer On-Premise Lösung tauscht man Simplizität gegen Skalierbarkeit und Customization. Umgekehrt verfügen Cloud-Anbieter oft über größere Datenmengen und somit bessere Modelle als Open-Source Alternativen.

Konkreter Vergleich

Wir können die Beispiele des Car-Sharing-Anbieters leider nicht veröffentlichen. Reproduzierbarkeit ist uns aber wichtig, deswegen brauchen wir Test-Daten, die frei und öffentlich zugänglich sind. Trotz Bots mit menschlich-klingenden Namen wie Alexa oder Siri haben wir festgestellt, dassBenutzer anders sprechenwenn der Gesprächspartner, nun ja, ein Bot ist. Deswegen ist unsere Wahl ein Datenset aus YouTube-Test-Videos mit der eben erwähnten Alexa. Es enthält 18 Sprach-Snippets und istauf GitHub frei zugänglich. Die Aufnahmen sind allerdings nicht immer rausch- oder hintergrundgeräusch-frei, was das Datenset ein bisschen unhandlicher macht.Alexas Anworten sind recht unterhaltsam, deswegen empfehlen wir auchdie Quellvideos.

Ergebnisse

Unterhalb sind die originalen Snippets dem verstandenen Inhalt der ASR-Systeme gegenübergestellt.
OriginalPocketSphinxNuance Dragon
test eins zwei dreitest eins zwei dreitest eins zwei drei
sag was lustigesverkäufe wichtigessag was lustiges
sein oder nicht seinsein aber nicht seinsein oder nicht sein
möchtest du einen schneemann bauenmöchte strategie man bauenmöchtest du einen schneemann bauen
was sagt der fuchswas sagt der fuchswas sagt der fuchs
was ist der sinn des lebenswas der sinn des lebenswas der sinn des lebens
wer ist der bestees verletzt werdenwer ist der beste
singe happy birthdaysicherheit überwacht werdensinge happy birthday
wie alt bist duwie alt bist duwie alt bist du
spiel musik in der küchemit musik in der küchespielmusik in der küche
guten morgenunterlagenguten morgen
meine news bittemein liebes bedecktmeininghaus bitte
fotoapparat in französischfoto rat ebenfalls in sichfotoapparat in französisch
einen zun spätereinige zum spätereeinen zun später
spiele antenne bayerndie antenne bayernspiele antenne bayern
was gibt es neueswas gibt es neueswas gibt es neues
füge einen termin zu meinem kalender hinzufür die einen termin zum balkan länder zufüge einen termin zu meinem kalender hinzu
setze einkaufen auf meine to-do-listesätze einbkaufen auf meine tun müsstesetze einkaufen auf meine to-do-liste
schalte das licht anschalte das licht anschalte das licht an
PocketSphinx erkennt diesen Ergebnissen nach etwa 15 Prozent weniger Wörter korrekt als Nuance Dragon. Im Bereich der automatischen Spracherkennung ist das ein beachtlicher Unterschied. In einerSpracherkennung Machine-Learning Challenge von 2017hätte es eine Lösung innerhalb der besten 15 Prozent nur knapp unter die Top 500 Einreichungen geschafft.Nuance Dragon übertrifft PocketSphinx bei weitem bei unserem ersten Test.

Verbesserungen

Nuance Dragon ist eine lizenzierte, abgeschlossene Lösung. Das bringt gewisse Vorteile mit sich, hat aber auch seine Schattenseiten. In diesem konkreten Beispiel bedeutet das, dass wir dank der Open-Source-Natur von PocketSphinx selbst Verbesserungen vornehmen können. Nuance Dragons (zugegebenermaßen bereits sehr gute) Erkennungsrate können wir dagegen nicht mehr verbessern. Wir können versuchen diese Verbesserungen an jedem Untermodul von PocketSphinx vorzunehmen. Um zu testen, ob sich die Änderungen positiv oder negativ auswirken, verwenden wir dasselbe Datenset wie zuvor.

Akustische Analyse

Wie bereits erwähnt werden bei einem ASR-System die Audio-Dateien in Frames aufgeteilt. Bevor das passiert, können wir allerdings noch einen zusätzlichen Schritt hinzufügen – preprocessing. Mithilfe vonAudacity,welches ebenfalls Open Source ist, können wir eine einfache Rauschentfernung vornehmen.Das Ergebnis ist auf den ersten Blick überraschend. Die Rauschreduktion hat den Prozentsatz der erkannten Wörter signifikant verschlechtert. Aber wenn man das akustische Modell berücksichtigt, macht dieses Resultat wieder etwas mehr Sinn. Es gibt zwei mögliche Gründe für diese starke Verschlechterung. Erstens sind möglicherweise bereits in PocketSphinx’ Kern Preprocessing-Algorithmen vorhanden, die mit der Audacity-Entrauschung nicht klar kommen. Die zweite und um einiges wahrscheinlichere Begründung liegt in der Art des Trainings des Standard-PocketSphinx Modells. Das Modell wurde mit möglichst natürlichen (also nicht entrauschten) Audio-Dateien gefüttert und kann deswegen mit “rauschigen” Audio-Dateien besser umgehen als mit entrauschten.

Akustisches Modell

Auch das akustische Modell in PocketSphinx ist modifizierbar. Es gibt grundsätzlich zwei Möglichkeiten dieses zu verändern.
  • Austausch des Modells
  • Kalibrierung (Nachtraining) des Modells
Die besten Ergebnisse könnten sicher mit einem kompletten Austausch des Modells durch ein speziell auf die gegebenen Daten angepasstes Trainingsset erzielt werden. Allerdings ist die Menge an Daten, die für ein solches Modell benötigt werden würde, enorm. Ein gutes Trainingsset sollte zumindest 50 Stunden an gesprochenen und annotierten Utterances beinhalten – wirklich erfolgreiche Modelle bewegen sich aber meistens eher im Bereich von hunderten Stunden. Ein neues Modell ist also für dieses Projekt nicht möglich. Es bleibt nur, das Modell einem “Fine Tuning” zu unterziehen. Für das bereits vorhandene Modell für deutsche Sprache in PocketSphinx können nach dem eigentlichen Training (durch die eigentlichen Macher des Modells) noch weiteren Trainings-Epochen mit fallspezifischen Daten durchgeführt werden. Die größte Herausforderung dabei ist, dass diese Daten auch möglichst divers sein sollten, um das Modell nicht für Fälle außerhalb des Training-Sets zu verschlechtern.Das Fine-Tuning des Modells zeigt eine eindeutige Verbesserung. Man muss aber bedenken, dass der Prozentsatz an erkannten Wörtern sich nach dieser Art des Trainings verschlechtern könnte, sollten neue Phrasen oder Vokabular hinzugefügt werden. In der Praxis muss ein solches Modell bei jeder größeren Änderung zusätzliches Fine-Tuning erhalten.

Aussprachelexikon

Eine nicht zu unterschätzende Optimierungsmöglichkeit in PocketSphinx ist das Aussprachelexikon. Zum Beispiel existierte das Wort “to-do-liste” nicht im Standard-Lexikon.
0 word,phoneset ... to-do-list,tuˈduːlɪstə
Im Vergleich zum Fine-Tuning bringt das angepasste Aussprachelexikon nur eine kleine Verbesserung mit sich. Auch hier gilt, dass das Lexikon bei Erweiterung des Systems ebenfalls erweitert werden müsste.

Weitere Möglichkeiten

Grundsätzlich wäre es ebenfalls möglich, das eigentliche Sprachmodell, welches statistisch gewisse Satzstellungen als wahrscheinlicher oder unwahrscheinlicher einstuft, anzupassen. Dies wäre aber mit weit mehr Aufwand und möglicherweise weniger Verbesserung verbunden als das Training eines neuen Sprachmodells. Im Großen und Ganzen zeigt dieser Vergleich vor allem eines. Ein selbst gewartetes versus cloud-gehostetes Spracherkennungs-Toolkit ist hauptsächlich mit einem simplen Trade-Off verbunden. Desto mehr Zeit und Ressourcen in ein On-Premise-System investiert werden, desto näher kommt man an die Performance der Cloud-Giganten heran. Je spezifischer außerdem die Sprachbefehle, desto bessere Ergebnisse können mit Fine-Tuning des Systems erzielt werden – potentiell sogar bessere als mit Cloud-Providern. Die momentan existierenden Open-Source-Lösungen (wie z.B. PocketSphinx) werden konstant weiterentwickelt und neue Sprachmodelle veröffentlicht. Vor allem für sensible Daten werden solche Lösungen immer eine gute, wenn auch ressourcenschwere Alternative zum SaaS-Anbieter sein.
#machinelearning#speech-to-text

Ähnliche Artikel

INNOVATION

DSGVO 2018 - Umsetzung eines IT Start-Ups

INNOVATION

Conversational UI: Das User Interface der Zukunft

INNOVATION

Language Understanding – Machine Learning oder Regelbasierend?

Das könnte Sie auch interessieren: