Die Anzahl der Dateien können Sie selbst festlegen, indem Sie im Verzeichnis etc/ des Akustik-Modells die Dateien 7646_test.fileids, 7646_test.transcription, 7646_train.fileids und 7646_train.transcription anpassen. Achten Sie dabei peinlich genau darauf, dass der Eintrag in der n-ten Zeile der Datei Name.fileids der Datei Name.transcription entsprechen muss, um einem späteren wunderlichen Verhalten der Spracherkennung vorzubeugen.
Liegen die Dateien vor, stoßen Sie den Trainingsprozess im Verzeichnis PfadZuSeheiah/acoustic_model/ mit dem Kommando sphinxtrain run an. An dessen Ende erfolgt jedes Mal eine Prüfung mithilfe der Testdateien, um den Erkennungsgrad zu ermitteln (Abbildung 4). Während des Trainings bietet es sich an, die Kommandos von verschiedenen Positionen im Zimmer zu geben und dabei den Aufnahmepegel zu optimieren.

Abbildung 4: 20 Übungseinheiten pro Kommando ziehen noch eine hohe Fehlerquote nach sich. Besser sind 50 Trainingssätze pro Kommando, optimal wären 500.
Bei der Spracherkennung selbst meckerte der RasPi in Verbindung mit Alsa permanent, dass der Aufnahme-Stream nicht schnell genug interpretiert werden könne. Abhilfe schaffte ein Wechsel auf Pulseaudio, was mit überraschend vielen Konfigurationsschritten verbunden war, ehe die Spracherkennung reibungslos funktionierte [8]. Zunächst müssen Sie den ausführenden Nutzer der Gruppe pulse-access hinzufügen:
$ sudo adduser username pulse-access
Des Weiteren gilt es, eine /etc/asound.conf zu erstellen (Listing 2), in der /etc/default/pulseaudio müssen Sie den Wert von DISALLOW_MODULE_LOADING auf null setzen. In der Datei /etc/libao.conf geben Sie pulse anstelle von alsa als Standardtreiber an. Weitere Änderungen betreffen das File /etc/pulse/daemon.conf (Listing 3).
Listing 2
#/etc/asound.conf
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
Listing 3
#/etc/pulse/daemon.conf daemonize = yes high-priority = yes nice-level = 5 exit-idle-time = -1 resample-method = src-sinc-medium-quality default-sample-format = s16le default-sample-rate = 48000 default-sample-channels = 2"
Fazit und Ausblick
Seheiah wurde bisher nur in zwei Haushalten installiert und getestet. Hier zeigte sich, dass ein regelmäßiger Tagesablauf die Voraussetzung dafür bildet, Stürze zuverlässig zu erkennen (Abbildung 5). Außerdem gilt es, mit den Schwellwerten zu experimentieren. Das System erkennt Stürze nur dann zeitnah, wenn sie direkt vor einem sich regelmäßig wiederholenden Ereignis eintreten, etwa beim nächtlichen Sprint auf die Toilette, oder wenn sie mit einem ungewöhnlich hohen Wasserverbrauch einhergehen, etwa der Senior unter der laufenden Dusche ausrutscht.

Abbildung 5: Eine Visualisierung der in der Seheiah-Datenbank gespeicherten Tupel in Fünf-Minuten-Intervallen.
Stürzt ein Senior beim Verlassen der Dusche oder auf dem Rückweg ins Bett, dauert es im schlimmsten Fall mehrere Stunden, ehe Seheiah den Sturz erkennt. Im besten Fall bleibt der Gestürzte bei Bewusstsein und verfügt noch über eine klare, vom Schmerz nicht verzerrte Aussprache, sodass er Seheiah anweisen kann, einen Hilferuf abzusetzen.
Das System soll in der nächsten Zeit weiterentwickelt und mit zusätzlichen Funktionen versehen werden. So wollen die Entwickler den Nutzern frei wählbare Kommandos und Trigger ermöglichen und einen VoIP-Client einbinden, sodass Hilfsbedürftiger und Helfer permanent in Kontakt stehen können.
Ferner soll Seheiah auch regelmäßige, aber nicht tägliche Ereignisse erkennen. Denkbar wären auch ein generisches akustisches Modell für die Spracherkennung, das auf den Trainingsdaten vieler verschiedener Sprecher basiert, sowie eine Hilfsanwendung, mit der sich sinnvolle Werte für Intervalle und Schwellwerte ermitteln lassen.
Glossar
- Seheiah
-
Der Engel der Langlebigkeit und des Schutzes gegen Stürze, Unfälle und Krankheiten. Neben der Fähigkeit, Ereignisse vorherzusagen, zählen auch Rehabilitation, Gesundheit und durch das Studieren gemachter Erfahrungen erlangte Weisheit sowie große innere Ruhe zu Seheiahs Qualitäten.
Infos
- 12. koordinierte Bevölkerungsvorausberechnung: Statistisches Bundesamt, https://www.destatis.de/DE/Publikationen/Thematisch/Bevoelkerung/VorausberechnungBevoelkerung/BevoelkerungDeutschland2060Presse.html
- Allein Lebende in Deutschland: Statistisches Bundesamt, https://www.destatis.de/DE/Publikationen/Thematisch/Bevoelkerung/HaushalteMikrozensus/AlleinlebendeInDeutschlandPresse.html
- Seheiah: https://github.com/aal4all/seheiah
- Flusssensor in Betrieb nehmen http://www.seeedstudio.com/wiki/G3/4_Water_Flow_sensor
- Pocketsphinx: http://sourceforge.net/projects/cmusphinx/files/pocketsphinx/0.8
- Sphinxbase: http://sourceforge.net/projects/cmusphinx/files/sphinxbase/0.8
- Sphinxtrain: http://sourceforge.net/projects/cmusphinx/files/sphinxtrain/1.0.8
- Pocketsphinx, Gstreamer und das Mikro der USB-Webcam: http://stackoverflow.com/questions/17778532/raspberrypi-pocketsphinx-ps3eye-error-failed-to-open-audio-device





