Deep Speech 0.2.0 transkribiert Sprache in Echtzeit

Mozillas Spracherkennung kann nun in Echtzeit Sprache in Schrift übersetzen. Deep Speech lässt sich unter anderem für Streaming, aber auch für Vorträge und Radiosendungen einsetzen.

Mitschreiben war gestern: Künftig lassen sich Studierende die Vorlesungen ihres Profs einfach von einer Software automatisch in Text verwandeln. Damit nicht ein paar der großen kommerziellen Player (Google, Amazon, Microsoft) den Markt dominieren, arbeitet Mozilla an eigener Speech-to-Text-Technologie (STT). Ein Ergebnis ist die freie Software Deep Speech, die es nun in Version 0.2.0 gibt.

Die Software kann neuerdings in Echtzeit Sprache in Text konvertieren. Dazu waren allerdings einige Anpassungen nötig, wie ein Blogpost der Entwickler erklärt. Deep Speech ist Open Source, auf Github zu finden und basiert nach eigener Aussage auf einem Deep-Speech-Paper, das aus dem Umfeld der chinesischen Suchmaschine Baidu kommt. Die Implementierung verwendet Tensorflow von Google, der aktuell verfügbare Code erkennt kurze Sprachschnipsel.

RNNs in der Engine

Um die Echtzeit-Spracherkennung umzusetzen, haben die Mozilla-Entwickler die SST-Engine mit Hilfe rückgekoppelter neuronaler Netze (RNNs, Recurrent Neural Network) angepasst. Diese sind erinnerungsfähig und akzeptieren nicht nur das nächste Datenelement als Input, sondern merken sich auch Zustände, die sich über die Zeit erhalten.

RNNs verwenden diese Zustände, um zeitabhängige Muster zu erkennen. Das ist unter anderem nötig, weil menschliche Sätze ihren Sinn häufig erst nach einem längeren Zeitraum des Sprechens offenen. Spracherkennung darf nicht bei jedem Satz von Null starten, sondern muss den Kontext behalten. Einen ausführlichen Artikel zu den Hintergründen liefert ein Blogpost von Chris Olah.

Die Mozilla-Entwickler setzen diese sprachspezifischen Methoden um, indem die eingesetzten RNNs sich in der Satzstruktur nicht nur vorwärts, sondern auch rückwärts bewegen. Diese bidirektionalen RNNs haben sie mit Tensorflow implementiert. Sie haben allerdings den Nachteil, dass sie Sätze erst zu Ende anhören müssen, um sie anschließend zu verschriftlichen.

Ein unidirektionales RNN liefert beim STT schnellere Ergebnisse. (Quelle: hacks.mozilla.org)

Das ist beim Streaming nicht gewollt, weshalb die Entwickler die bidirektionalen nun mit unidirektionalen RNNs ersetzt haben. Diese nehmen die Spracheingaben stückweise entgegen, wobei die einzelnen Schritt Ausgaben produzieren, die nur vom Zustand des vorherigen Schritts und nicht vom nächsten Schritt abhängen. Der Blogpost liefert auch Details dazu.

Verfügbare Software

Die Software lässt sich über Github herunterladen, steht unter der MPL-2.0-Lizenz und ist wahlweise in Python und C++ implementiert. Auch auf Performance-Verbesserungen weisen die Entwickler in ihrer aktuellen Mitteilung hin. Das neue Modell haben die Entwickler von 468 auf 180 MByte reduziert, ein Drei-Sekunden-Soundfile lässt sich nun in 1,5 statt 9 Sekunden erkennen. Weil das Modell zudem Memory-Mapping macht, fällt der Heap-Gebrauch von maximal 4 GByte auf 20 MByte. Vor allem sei wichtig, dass die STT-Transformation nun auch ohne GPU-Einsatz “schneller als Echtzeit” funktioniere. Wer also Spracherkennung in sein nächstes Projekt einbauen wolle, solle Deep Speech mit auf die Kandidatenliste setzen.

Der Blogpost liefert auch einige interessante Codeausschnitte und ein kleines Python-Programm, das die altbekannte Libsox einsetzt, um die Engine während einer Mikrofonaufnahme mit Sprachdaten zu füttern. Wer programmiertechnisch weniger beschlagen ist, kann dem Projekt auch an anderer Stelle helfen und über voice.mozilla.org Sätze in deutscher Sprache beisteuern.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben