Samstag, 8. Juni 2013

Spracherkennung


Für EVAGui2 ist es möglich verschiedene Spracherkennungen zu implementieren.

Die Windows-Sapi ist hierbei die einfachste Möglichkeit, hat jedoch nach einer gewissen Zeit (zumindest bei mir) Schwierigkeiten gemacht, weshalb ich weitere Spracherkennungen getestet habe.

Eine freie Software für Spracherkennung ist Simon-Listens.
Wir benötigen dieses Paket, um uns ein Vokabular zu generieren.

Jetzt installieren wir Simon auf unserem PC und starten es. 
Zu aller Anfang müssen wir uns ein eigenes Sprachmodell anlegen.

Simon bietet uns hier bereits "Standard" an.
Jetzt legen wir jedes Wort in Simon an. Die Pronunciation muss aus dem Internet oder aus einem Schattenvokabular geholt werden.

Ich bevorzuge dieses Schattenvokabular: http://script.blau.in/speech-model/german.zip.
Das Wort wird beim anlegen durch die Benutzerführung trainiert. Wichtig ist die Zuordnung
des Wortes zu einer Kategorie, wie z.B. "Trigger", "Geraet" oder "Aktion".
Unter dem Reiter "Training" legen wir jetzt einen Text mit unseren Wörtern an.
z.B. Für Spracherkennung, TV und PC sowie aus und ein wäre dies :
Spracherkennung TV ein, Spracherkennung TV aus, Spracherkennung PC ein ...
somit Trainieren wir alle Worte in einem Rutsch beim Training.
Unter dem Reiter Grammar können wir nun vorgeben, welche Worte in welcher Reihenfolge
als gültige Eingabe zählen. Hierzu geben wir z.B. "Trigger Geraet Aktion" ein, damit nur eingaben
wie "Spracherkennung TV ein" zugelassen werden.

Nachdem Wir alle Wörter angelegt haben sollten wir unter Training einige Durchläufe
der Spracherkennung machen, um die Sprachdatei zu trainieren.

Das Compilieren des Sprachmodells passiert automatisch im Hintergrund.
(CMU-Sphinx ist Standard)


Verwenden der Sprachdateien unter CMU-Shpinx:

Zuerst laden wir uns Pocketsphinx und Sphinxbase unter: http://cmusphinx.sourceforge.net/wiki/download/
herunter und kopieren die Dateien:

pocketsphinx.dll
pocketsphinx continous.exe
(aus pocketsphinx)
sphinxbase.dll
(aus Base)

in einen neuen Ordner
in diesem Ordner erstellen wir einen Ordner namens "hmm".

Jetzt wechseln suchen wir im Windows-Explorer nach dem Ordner Benutzer\Benutzername\Appdata\Roaming\.kde\tmp-Computername\Simond\Default\sphinx\

und kopieren alle Dateien außer die *.dic und die *.jsgf datei in den Ordner HMM.
die dic-Datei und die .jsgf-Datei kommt in den Stammordner und wird in Commands.Dic bzw. Commands.gram (aus der jsgf) umbenannt.

jetzt erstellen wir eine Batch-Datei mit dem Inhalt:

pocketsphinx_continuous.exe -hmm hmm\voxforge-de -dict commands.dic -jsgf commands.gram -samprate 16000 -maxwpf 10 -pl_window 2 -backtrace true -adcin true

und starten die Datei und testen die Spracherkennung.

Verwenden der Sprachdateien unter Julius:

Um die Sprachdateien mit Julius zu verwenden muss in Simon unter "Configure Simon" - Recognition
- Configure Server die Sprachmodellcompilierung auf das Backend Julius umgestellt werden.
Zum kompilieren eines Julius-Models sind die HTK-Programme dringend erforderlich.
In der Simon-Anleitung stehen weitere Anweisungen dazu.

Für das erstellen des Models in Simon muss ein erneutes Training gestartet werden.

Für Julius erstellen wir uns Ebenfalls einen Ordner und kopieren die Julius.exe sowie alle Inhalte aus
Benutzer\Benutzername\Appdata\Roaming\.kde\tmp-Computername\Simond\Default\Julius hinein.

Jetzt legen wir wieder eine Batch-Datei mit folgendem Inhalt an und starten das ganze.

julius -C julius.jconf -gram model -input mic



Keine Kommentare:

Kommentar veröffentlichen