Die von Mozilla entwickelte Sprachverarbeitungs-Engine , die die gleichnamige Architektur zur Spracherkennung umsetzt, Forscherinnen und Forschern von Baidu. Die Implementierung ist in Python verfasst und nutzt die Maschinenlern-Plattform TensorFlow und ist unter der offenen Lizenz MPL 2.0 verfügbar. Die Nutzung ist unterstützt auf Linux, Android, macOS und Windows. Die Leistung ist ausreichend, um die Engine auf LePotato-Boards, Raspberry Pi 3 und Raspberry Pi 4 zu verwenden.
Im Paket werden ebenfalls trainierte Modelle, von Audiodateien und ein Toolset zur Erkennung über die Kommandozeile bereitgestellt. Für die Integration der Spracherkennungsfunktion in eigene Anwendungen gibt es einsatzbereite Module für Python, NodeJS, C++ und .NET (von Drittentwicklern wurden zusätzlich Module für und ). Das fertige Modell ist nur für die englische Sprache verfügbar, aber für andere Sprachen kann die System eigenständig trainiert werden, indem , die im Rahmen des Projekts Common Voice gesammelt wurden, verwendet werden.
DeepSpeech ist deutlich einfacher als traditionelle Systeme und bietet gleichzeitig eine höhere Erkennungsqualität, selbst bei Hintergrundgeräuschen. In der Entwicklung werden keine herkömmlichen akustischen Modelle und Phonemkonzepte verwendet; stattdessen kommt ein gut optimiertes maschinelles Lernen auf Basis neuronaler Netze zum Einsatz, das die Notwendigkeit entfällt, separate Komponenten zur Modellierung verschiedener Abweichungen wie Lärm, Echo und Sprachmerkmale zu entwickeln.
Die Kehrseite dieses Ansatzes ist, dass für eine qualitativ hochwertige Spracherkennung und das Training des neuronalen Netzwerks die DeepSpeech-Engine eine große Menge heterogener Daten benötigt, die in realen Bedingungen von verschiedenen Stimmen und bei natürlichen Geräuschen diktiert wurden.
Die Erfassung solcher Daten wird durch das von Mozilla ins Leben gerufene Projekt , das einen geprüften Datensatz mit 780 Stunden in , 325 Stunden in Deutsch, 173 Stunden in Französisch und 27 Stunden in Russisch bereitstellt.
Das Endziel des Common Voice-Projekts ist es, 10.000 Stunden mit Aufnahmen unterschiedlicher Aussprachen typischer Sätze der menschlichen Sprache zu sammeln, um ein akzeptables Fehlerniveau bei der Spracherkennung zu erreichen. Derzeit haben die Projektteilnehmer bereits insgesamt 4.300 Stunden diktiert, von denen 3.500 Stunden validiert wurden. Bei der Schulung des finalen englischen Modells für DeepSpeech wurden 3.816 Stunden Sprache verwendet, zusätzlich zu Common Voice, die Daten aus den Projekten LibriSpeech, Fisher und Switchboard umfassen sowie etwa 1.700 Stunden transkribierter Aufnahmen von Radioshows.
Bei Verwendung des zum Download angebotenen fertigen englischen Modells liegt die Fehlerquote der Spracherkennung in DeepSpeech bei 7,5 % im Testset. . Zum Vergleich liegt die Fehlerquote bei der menschlichen Spracherkennung 5,83%.
DeepSpeech besteht aus zwei Subsystemen – einem akustischen Modell und einem Decoder. Das akustische Modell nutzt Methoden des tiefen maschinellen Lernens zur Berechnung der Wahrscheinlichkeit bestimmter Zeichen im Eingangssignal. Der Decoder verwendet einen Suchalgorithmus, um die Wahrscheinlichkeitsdaten der Zeichen in ein Textformat umzuwandeln.
Haupt DeepSpeech 0.6 (die 0.6-Version ist nicht mit früheren Releases kompatibel und erfordert ein Update des Codes und der Modelle):
- Ein neuer Streaming-Decoder wurde vorgeschlagen, der eine höhere Reaktionsfähigkeit bietet und nicht von der Größe der verarbeiteten Audio-Daten abhängt. Infolgedessen konnte die Verzögerung bei der Spracherkennung in der neuen Version von DeepSpeech auf 260 ms gesenkt werden, was 73 % schneller ist als zuvor und die Anwendung von DeepSpeech in Echtzeitanwendungen zur Spracherkennung ermöglicht.
- Änderungen an der API wurden vorgenommen, und es wurde an der Vereinheitlichung der Funktionsnamen gearbeitet. Funktionen zum Abrufen zusätzlicher Metadaten zur Synchronisierung wurden hinzugefügt, die es ermöglichen, nicht nur eine textliche Ausgabe zu erhalten, sondern auch die Zuordnung einzelner Zeichen und Sätze zu Positionen im Audiostream zu verfolgen.
- Die Toolkit für das Training von Modulen hat die Unterstützung für die Verwendung der Bibliothek hinzugefügt. zur Optimierung der Arbeit mit rekurrenten neuronalen Netzen (RNN) wurde eine signifikante (ungefähr doppelte) Steigerung der Trainingsleistung des Modells erreicht, was jedoch Änderungen im Code erforderte, die die Kompatibilität mit zuvor vorbereiteten Modellen beeinträchtigen.
- Die minimalen Anforderungen an die TensorFlow-Version wurden von 1.13.1 auf 1.14.0 angehoben. Die Unterstützung der leichtgewichtigen Version TensorFlow Lite wurde hinzugefügt, wodurch die Paketgröße von DeepSpeech von 98 MB auf 3,7 MB reduziert wurde. Für den Einsatz auf eingebetteten und mobilen Geräten wurde die Größe der gepackten Datei mit dem Modell ebenfalls von 188 MB auf 47 MB reduziert (zur Kompression wurde das Verfahren der Quantisierung nach Abschluss des Modelltrainings verwendet).
- Das Sprachmodell wurde in ein anderes Datenstrukturformat umgewandelt, das die Zuordnung von Dateien beim Laden im Speicher ermöglicht. Die Unterstützung des alten Formats wurde eingestellt.
- Der Lade-Modus der Sprachmodell-Datei wurde geändert, um den Speicherverbrauch zu reduzieren und die Verzögerungen bei der Verarbeitung der ersten Anfrage nach Erstellung des Modells zu verringern. DeepSpeech benötigt nun während der Laufzeit 22-mal weniger Speicher und startet 500-mal schneller.
- Seltene Wörter wurden im Sprachmodell gefiltert. Die Gesamtzahl der Wörter wurde auf 500.000 der am häufigsten vorkommenden Wörter im Trainingstext reduziert. Diese Bereinigung hat die Größe des Sprachmodells von 1800 MB auf 900 MB verringert, ohne die Erkennungsfehlerquote merklich zu beeinflussen.
- Unterstützung für verschiedene zur Erstellung zusätzlicher Variationen (Augmentation) von Audiomaterial, das beim Training verwendet wird, wurde hinzugefügt (z. B. das Hinzufügen von Varianten mit Verzerrungen oder Rauschen).
- Eine Bibliothek mit Bindings zur Integration in Anwendungen auf der .NET-Plattform wurde hinzugefügt.
- Die Dokumentation wurde überarbeitet und ist jetzt auf einer separaten Website verfügbar .
Quelle: opennet.ru
