.. _`kognihome/mirror/dialog`: KogniMirror-Dialog ================== :Kontakt: Alexander Neumann :CITK: `kognimirror-dialog `_ :Vorbedingung: Es wird benötigt: * `speech_recognition ` * `pocketsphinx ` (Python) * Deutsches ``pocketsphinx``-Modell für ``speech_recognition``. Ein bereits vorbereitetes Modell finden Sie im `CITK ` 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. RSB-Schnittstellen ------------------ .. rsbpubsub:: IN /io/display/mirror/model/mode string Lädt Grammatik passend zum aktuellen GUI-State .. rsbpubsublist:: :type: IN .. rsbpubsub:: OUT-Intern /io/display/mirror/model/mode string Setzt den GUI-Modus anhand von Sprachnachrichten .. rsbpubsub:: OUT-Intern /io/display/mirror/model/widgets//enabled boolean (De-)aktiviert ein beliebiges Widget .. rsbpubsub:: OUT-Intern /io/display/mirror/model/speechEnabled boolean Signalisiert ob Spracherkennung aktiv (durch Hotword) .. rsbpubsub:: OUT-Intern /io/display/mirror/model/speechDetected string Sendet den erkannten Phrasenstring .. rsbpubsub:: OUT-Intern /io/display/mirror/faceMode string (De-)Aktiviert bei Bedarf die Gesichtserkennung .. rsbpubsublist:: :type: OUT 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 * .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 ` umdl/pmdl ersetzt werden. Der Name muss gleich bleiben oder im Code angepasst werden.