Aktivitätsüberwachung für allein lebende Senioren

Spracherkennung

Den meisten Aufwand erfordert die Spracherkennungssoftware. Seheiah verwendet Pocketsphinx [5] und generiert ein eigenes Akustikmodell. Das hat den Vorteil, dass es direkt für den zukünftigen Nutzer optimiert ist und undeutliche Aussprache sowie Dialekte keine Probleme bereiten. Der Nachteil: Das Akustik-Modell muss intensiv trainiert werden.

Nach abgeschlossenem Training genügen die vier Befehle ALARM AUS, BYE BYE, HILFE und TEST, um Seheiah zu steuern. Diesen wird jeweils der Trigger SEHEIAH vorangestellt, um Fehlerkennungen zu vermeiden. Es wäre beispielsweise tragisch, wenn Oma nach einer längeren Reise wieder daheim ist, sich telefonisch bei ihren Lieben zurückmeldet, sich dabei mit "Bye bye" verabschiedet und kurz danach über ihren Koffer stürzt.

Um Seheiah per Zuruf steuern zu können, benötigt man neben Pocketsphinx auch noch Sphinxbase [6] und Sphinxtrain [7]. Hinzu kommen noch eine Reihe Abhängigkeiten, die folgender Befehl nachzieht:

$ sudo apt-get install cython python-gst0.10 python-gst0.10-dev gstreamer-tools gstreamer0.10-plugins-base libpulse-dev gstreamer0.10-pulseaudio

Seheiah ruft Pocketsphinx über eine Gstreamer-Pipeline auf. Die Zeile export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-0.10 in der Datei ~/.profile sorgt dafür, dass das entsprechende Plugin später ohne viel Gefrickel gefunden wird. Ferner sind noch einige Anpassungen nötig, um sich später einige Überraschungen zu ersparen. Im Sphinxbase-Verzeichnis löschen Sie python/sphinxbase.c, im Pocketsphinx-Ordner python/pocketsphinx.c. Beide sind fehlerhaft und werden während des Installationsprozesses von Cython neu generiert.

In den Dateien gstpocketsphinx.c und gstvader.c im Verzeichnis /pocketsphinx-0.8/src/gst-plugin setzen Sie die Sample-Rate von 8000 auf 16000 (rate = (int) 16000). Eine Rate von 8000 Hz eignet sich nur für Spracherkennung via Telefon.

Nach diesen Vorarbeiten installieren Sie Sphinxbase, Pocketsphinx und Sphinxtrain jeweils mit ./configure, make clean all und sudo make install.

Akustikmodell

Für das Training des Akustikmodells bringt Seheiah bereits ein Sprachmodell sowie einige Konfigurationsdateien (PfadZuSeheiah/acoustic_model/) mit. Die lästige Pflicht vor der Kür ist das Aufnehmen von genügend Rohmaterial. Die Sphinx-Entwickler nennen als Basis fünf Stunden Audio-Material bei einem Sprecher und geringem Vokabular.

Im Test ließen sich bereits mit 50 Wiederholungen jedes Kommandos sehr brauchbare Resultate erzielen. Um auf die von den CMU-Sphinx-Entwicklern empfohlene Trainingsmenge von fünf Stunden zu kommen, müssten Sie jedes Kommando rund 500 Mal üben. Die Aufnahmen speichern Sie im Unterverzeichnis wav/ mit folgendem Befehl:

$ arecord -r 16000 -D hw:1,0 -d 5 -f S16_LE -c 1 Name#.wav

Dateinamen der Form Name#.wav dienen für Testzwecke, es gibt je drei Exemplare für alle vollständigen Kommandos mit Trigger (SEHEIAH + Kommando). Die Dateinamen für die einzelnen Kommandos zeigt die Tabelle "Dateinamen und zugehörige Kommandos". Mit AUS tat sich Pocketsphinx im Test schwer. Das wichtige Kommando HILFE sollten Sie intensiv üben.

Dateinamen und zugehörige Kommandos

Datei

Kommando

alarm_aus#.wav

SEHEIAH ALARM AUS

aus#.wav

AUS

bye#.wav

SEHEIAH BYE BYE

hilfe#.wav

SEHEIAH HILFE

ohilfe#.wav

HILFE

test#.wav

SEHEIAH TEST

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"

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Computer-Kit Kano im Test

    Kano möchte für Grundschulkinder mehr sein als nur ein reiner Lerncomputer. Das RasPi-basierte System setzt auf ein innovatives, ganzheitliches Konzept.

Aktuelle Ausgabe

08/2019
Smarte Hacks

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Immer der Reihe nach

    Mit einer einfachen Schaltung testen Sie Bausteine, die über den SPI-Bus miteinander kommunizieren.

  • Einzigartig

    Eine MAC-Adresse ermöglicht die Kommunikation im Netzwerk. Der 24AA02E48 liefert sie für Setups, die aus grundlegenden Komponenten bestehen.

  • Steinkuchen

    Der Raspberry Pi hat viele Fans, doch nicht ohne Grund sehnen sich viele Anwender nach einem RasPi 4. Der Rock Pi 4 übertrumpft den RasPi 3 in Sachen Leistung um Längen und schlägt sich auch in der Praxis gut.

  • Kerngeschäft

    Der Einstieg in die Welt der Mikrocontroller fällt nicht ganz leicht. Mit dem Nucleo F401RE haben Sie jedoch ein Entwicklerboard samt abgestimmter Entwicklungsumgebung an der Hand.

  • Himbeer-Geräte

    Mit Maus und Tastatur im weiß-roten Raspberry-Look macht die Raspberry Pi Foundation das eigene Angebot an Peripheriegeräten für den Mini-Rechner komplett.

  • Unter Kontrolle

    PiCockpit ist eine speziell auf den RasPi zugeschnittene Online-Monitoring-Lösung. Wir werfen einen ersten Blick auf den brandneuen und in Ausbau befindlichen kostenlosen Dienst.

  • Ins rechte Licht gesetzt

    Selbst ohne eigenen Garten holen Sie sich Pflanzen mithilfe von LEDs in jeden Raum und sehen ihnen mit dem RasPi beim Wachsen zu.

  • Helligkeit nach Maß

    Wer bei wechselnden Lichtverhältnissen nicht ständig die Beleuchtung manuell nachregeln möchte, der spannt dafür einen PiXtend ein.

  • Geschrumpft

    Kleine Bildschirme gibt es zwar viele, aber der Support von Raspbian ist überraschend schlecht. Mit ein paar Tricks erzielen Sie trotzdem ein optimales Ergebnis.

  • Brüllwürfel

    Kompakt-Stereoanlagen mit CD-Spieler und Kassettendeck sind inzwischen oft ein Fall für den Recyclinghof – oder für die digitale Wiederbelebung mit einem RasPi und etwas Geschick.