1.30.1.3.1.2. KogniMirror-Dialog

Kontakt:

Alexander Neumann <alneuman@techfak.uni-bielefeld.de>

CITK:

kognimirror-dialog

Vorbedingung:

Es wird benötigt: * speech_recognition <https://github.com/Uberi/speech_recognition> * pocketsphinx <https://github.com/cmusphinx/pocketsphinx> (Python) * Deutsches pocketsphinx-Modell für speech_recognition. Ein bereits vorbereitetes Modell finden Sie im CITK <https://opensource.cit-ec.de/projects/citk/repository/revisions/master/entry/projects/speech-recognition-python.project>

CMUSphinx/pocketsphinx sind Spracherkenner und haben mit dem Dokumtationstool Sphinx keine Gemeinsamkeiten.

Quickstart:

Das Paket installiert eine Anwendung namens smartdialog. Smartdialog kann optional mit einem Ordnerpfad für die benötigten Grammatiken gestartet werden:

${prefix}/bin/smartdialog [${prefix}/etc/dialog]

Sonst wird auf die Grammatiken im Paket zurückgegriffen. ACHTUNG: Der Nutzer, der smartdialog auführt, muss Schreibrechte entweder auf dem übergebenen Grammatikordner besitzen oder auf das Paketverzeichnis (${prefix}/lib/python2.7/site-packages). Sonst können die benötigten Graphen nicht generiert werden.

1.30.1.3.1.2.1. RSB-Schnittstellen

Scope Type Description
/io/display/mirror/model/mode string Lädt Grammatik passend zum aktuellen GUI-State
Scope Type Description
/io/display/mirror/faceMode string (De-)Aktiviert bei Bedarf die Gesichtserkennung
/io/display/mirror/model/mode string Setzt den GUI-Modus anhand von Sprachnachrichten
/io/display/mirror/model/speechDetected string Sendet den erkannten Phrasenstring
/io/display/mirror/model/speechEnabled boolean Signalisiert ob Spracherkennung aktiv (durch Hotword)
/io/display/mirror/model/widgets/<widget>/enabled boolean (De-)aktiviert ein beliebiges Widget

1.30.1.3.1.2.2. Hinweise

Es gibt view Komponenten die Einfluss darauf haben, wie die Spracherkennung opperiert:

  • transitions.yaml – ist Teil des smartmirror_dialog-Paketes; Hier werden State-Übergange definiert, sowie die State-Namen und die regulären Ausdrücke, welche einen Übergang auslösen
  • <state_name>.gram – Zu jedem State, der Spracherkennung nutzen möchte muss eine genauso benannte *.gram-Datei existieren, welche die zugelassenen Phrasen in dem State definiert. Gram-Files können entweder im Ordnerpfad liegen der beim Starten übergeben wird oder im Paket selber.
  • Sprachmodell-Dictionary – ist Teil des Pocketsphinx-Sprachhmodells (*.dict). Hier sind alle Wörter vermerkt, die CMUSphinx erkennen kann. Wenn Wörter hier nicht vorkommen können sie NICHT in Gram-Files genutzt werden. Groß- und Kleinschreibung beachten! Sollte ein Wort in einer Gram-File genutzt werden, welches hier nicht vorkommt, kann kein Sprach-Finite-State-Graph erzeugt werden und die Spracherkennung stürzt ab.
  • Hotword-Snowboy-Modell – Aktuell reagiert der Spiegel auf das Hotword ‘smart mirror’. Sollte ein anderen Code-Wort benutzt werden, kann smart_mirror.umdl im Paket durch ein anderes Snowboy <https://snowboy.kitt.ai/> umdl/pmdl ersetzt werden. Der Name muss gleich bleiben oder im Code angepasst werden.