Nachdem ich mir heute mal etwas Zeit genommen habe um Mozilla Deepspeech auf dem Jetson Nano zu installieren wollte ich mal die Ergebnisse von 3 unterschiedlichen Mikrofonen testen.
Für den Test habe ich die SD Karte im Jetson Nano mal wieder neue initialisiert und dann DeepSpeech v0.9.3 installiert. Unter https://github.com/AASHISHAG/deepspeech-german#trained-models habe ich sogar ein deutsches Modell für Deepspeech gefunden.
This model is trained on DeepSpeech v0.9.0 using pre-trained English model released by Mozilla English+Mozilla_v5+SWC+MAILABS+Tuda-De+Voxforge (1700+750+248+233+184+57h=3172h)
Vielen Dank an Karsten Ohme für die Bereitstellung des TFLite-Modells.
Link: https://drive.google.com/drive/folders/1L7ILB-TMmzL8IDYi_GW8YixAoYWjDMn1?usp=sharing
Relevant sind die Dateien output_graph_from_koh-osug.tflite und kenlm.scorer. Im Github Repository https://github.com/mozilla/DeepSpeech-examples habe ich das kleine Python Script „mic_vad_streaming.py“ gefunden, dass für den einfachen Test gut geeignet ist, denn es enthält einen Voice Activity Detection (VAD) Filter, der sehr hilfreich ist, um Sprechpausen zu erkennen.
Sprechpausenerkennung (englisch voice activity detection, VAD) ist eine in der Sprachverarbeitung genutzte Technik, bei der die An- oder Abwesenheit menschlicher Stimme erkannt wird. Die Hauptverwendungszwecke für Sprechpausenerkennung liegen in den Bereichen der Sprachkodierung und Spracherkennung. Es kann die Sprachverarbeitung erleichtern und kann genutzt werden, um manche Vorgänge während einer Sprechpause zu deaktivieren.
https://de.wikipedia.org/wiki/Sprechpausenerkennung
Die Spracherkennungs-Engine DeepSpeech ist eine TensorFlow-Implementierung der DeepSpeech-Architektur von Baidu. Diese nutzt unter anderem die Sprachdaten des Common Voice Projekts.
Für den Test habe ich die ersten 30 Sekunden vom Podcast „KI in der Industrie: Kurz KI – Was ist Anyline?“ auf meinem Handy abgespielt und jeweils ein Mikro vor dem Handy aufgebaut um mal zu sehen, wie sehr sich die Ergebnisse unterscheiden.
Das ist natürlich kein „wissenschaftlich korrekter Test“ aber es geht mir hier auch eher darum, ein Gefühl dafür zu bekommen, wie gut Deepspeech mittlerweile geworden ist und ob es sinn macht mit einer „Offline-Alexa-Alternative“ auf Basis von Deepspeech die wirklich alltagstauglich ist anzufangen.
Zum Einsatz gekommen sind die folgenden 3 Mikros:
1. USB Mikrofon AKIRO Kinobo PC Mikro für Skype, MSN, VOIP für Desktop und Laptop Computer
Das USB Mikrofon ermöglicht es, Sprache und Klänge aufzunehmen, ohne dass man eine Mikro-Buchse bzw. Soundkarte benötigt. Ich habe das Mikro lange für Skype Chats verwendet und war immer zufrieden mit der Qualität.
2. Sony Playstation 3 PS3 Kamera Move Motion Eye
Die PS3 Kamera enthält auch ein Mikrofon mit Kugelcharakteristik für mit dem sogar eine Sprach-Standortbestimmung möglich sein soll.
3. Webcam mit Mikrofon, HD 1080P Web Kamera mit 120° Blickfeld, Belichtungskorrektur und Drehbarem Clip, USB 2.0 Plug & Play für Live-Streaming, Videoanruf, Konferenz, Kompatibel mit PC/Mac/Linux
Seit man sich wegen Corona privat und beruflich fast nur noch Remote trifft habe ich mir diese Webcam zugelegt um etwas flexibler zu sein und nicht immer auf die im Notebook eingebaute Webcam angewiesen zu sein.
Für den Test habe ich das Deepspeech Beispiel wie folgt aufgerufen:
python3.7 mic_vad_streaming.py -m output_graph_from_koh-osug.tflite -s kenlm.scorer -v 1
Test 1 (USB Mikrofon AKIRO Kinobo)
Recognized: all diese fort kast verdienen präsentiert von süden
Recognized: viel vergnügen beim zuhören
Recognized: elodie zu rennen zu bekommt zu einer neuen folgen des potestas kargen in der industrie meinem es oberbieber und mir wir duell hin sie zugeschaltet ist er an das graimberg halo andreas kusti
Test 2 (Sony Playstation 3 PS3 Kamera)
Recognized: all diese pro gast war ihnen präsentiert von zykel
Recognized: viel sag neben beim zuhören
Recognized: alo die zu rennen zur bekommt zum einen neuen folge des portas kate in der industrie minamisoma lieber und mir wir tull in sieben zugeschaltet esters grein huber halo areas gösting
Test 3 (Webcam mit Mikrofon, HD 1080P Web Kamera mit 120° Blickfeld)
Recognized: hallo dieser podcast einen präsentiert von zügeln
Recognized: viel vergnügen beim zuhören
Recognized: elodie zu hören und zu er bekommt zu einer neuen folge des protestes kai in der industrie meinem es ruben biber und mir virtuell in wien zugeschaltet ist der des grein huber halo andreas rüstig
Ergebnis
Alles in allem noch nicht so erfolgreich. Kein Mikro hat auch nur annähernd brauchbare Ergebnisse geliefert. Fairerweise muss man aber anmerken, dass ich ein tflite Model verwendet habe was zwar die Performance auf dem Jetson Nano deutlich verbessert aber leider auf Kosten der Qualität geht. Außerdem handelt es sich eigentlich um das englische Mozilla Deepspeech Modell dass dann unter Zuhilfenahme von deutschen Datensätzen mit der „Transfer-Learning“ Methode für die deutsche Sprache angepasst wurde. Da ist also noch Luft nach oben :-).
Damit es in Zukunft ein besseres frei verfügbares deutsches Sprachmodell gibt lohnt es sich, mal unter https://commonvoice.mozilla.org/ reinzuschauen und etwas dazu beizutragen. Einfach ein paar Texte sprechen oder gesprochene Texte anhören und bewerten. Man benötigt nur einen Computer mit Mikro und Lausprecher. So kann jeder einen Teil zur Demokratisierung der Spracherkennung beitragen.