Dieser Artikel befasst sich mit dem Einsatz des Spracherkennungsmoduls Say-it von Parallax zur Sprachsteuerung eines Boe-Bot

s. Denn die Spracherkennung ist ein wichtiger Vorteil für einen

und steigert seine Fähigkeit, mit dem Menschen zu interagieren, und zwar auf die für den Menschen natürlichste Art und Weise.

Le module Say-it de reconnaissance vocale pour robot Boe-Bot de Parallax Das Say-It Modul ist eine von der Firma Veear (http://www.veear.eu) speziell für Parallax entwickelte Steckkarte.
Parallax

In diesem Artikel wird gezeigt, wie das Spracherkennungsmodul Say-It für Parallax , Boe-Bot installiert wird, wie das Say-It Modul mithilfe der mitgelieferten grafischen Schnittstelle zu parametrieren ist, wie man diese Parametrierung testet und schließlich, wie die BS2-Codegenerierung erfolgt, um anhand der erkannten Wörter Aktionen auszulösen. Denn darin besteht schließlich das Ziel. Der Artikel ist also logisch aufgebaut. Doch bevor wir näher auf das Spracherkennungsmodul Say-it eingehen, wollen wir uns zunächst die Grundlagen der Spracherkennung in Erinnerung rufen..

Grundlagen der Spracherkennung

Einführung und Funktionsweise

Die Spracherkennung (engl. Automatic Speech Recognition) zählt zusammen mit der Sprachsynthese (engl. Speech Synthesis) zur so genannten Sprachverarbeitung.

Die Spracherkennung zielt darauf ab, ein Wort oder einen Satz über ein Mikrophon zu erfassen und zu analysieren und anschließend in seine Textversion auf Computer (oder gleichwertige Geräte) zu transkribieren, um eine Weiterverwendung zu ermöglichen. Die wichtigsten Anwendungsgebiete der Spracherkennung sind automatische Diktiersysteme sowie Voice-Applikationen für Telefonanlagen.

Die Funktionsweise erfolgt in zwei Schritten:

  1. Extraktion des akustischen Signals und Ausschneiden von analysierbaren 30 ms-Fenstern („frames“). Für jedes dieser Fenster wird ein sog. akustisches Bild extrahiert, also ein Merkmalsvektor des Sprachsignals.
  2. Anschließend wird für jedes Fenster jenes Phonem bestimmt, das mit der größten Wahrscheinlichkeit diesem Signal entspricht. Das Phonem ist die kleinste Einheit der gesprochenen Sprache. Die deutsche Sprache zählt 36 Phoneme. Für jedes Fenster des Sprachsignals bestimmt das Programm die Wahrscheinlichkeit einer Entsprechung mit jedem Phonem und kombiniert diese Wahrscheinlichkeiten mit den Aussprachewahrscheinlichkeiten eines Worts (ein Wort ist eine Verkettung von Phonemen, manche Phonemfolgen sind daher wahrscheinlicher als andere, da sie Wörter bilden) und der Wahrscheinlichkeit des Vorkommens eines Wortes in einer Zielsprache (denn bestimmte Wörter sind häufiger als andere).

Mehr darüber erfahren Sie unter: :
http://de.wikipedia.org/wiki/Spracherkennung
Sphinx, eine Open Source-Spracherkennungssoftware http://cmusphinx.sourceforge.net

Anwendung in der Robotik

Die Einführung der Spracherkennung liegt in der Robotik nahe, da es sich hierbei um eine der häufigsten Kommunikationsformen beim Menschen handelt. Im Zusammenhang mit der menschlichen Sprache sprechen wir von natürlicher Sprache. Diese ist sehr hoch entwickelt, da sie vom Kontext, der Person, dem Moment usw. abhängt. Die heutige Robotik macht zwar große Fortschritte, hat jedoch längst noch nicht dieses Komplexitätsniveau erreicht.

Bei individuellen

n (einmal abgesehen von den sehr fortschrittlichen

n in Labors wie ICub oder überaus eindrucksvollen Errungenschaften im militärischen Bereich) sind die angetroffenen Probleme wesentlich prosaischer. Denn die Spracherkennung hängt bei einem mobilen

von der Qualität der Komponenten, aber auch – wie immer in der Robotik – von der Umwelt ab. Diese kann laut sein, ein Echo erzeugen oder die Tonwahrnehmung aufgrund ihrer Form verzerren (der Signalempfang kann unterschiedlich sein, wenn der

sich beispielsweise an einer Wand entlang bewegt). Wie wir später sehen werden, ist es wesentlich komplizierter, einen

mit der Stimme zu steuern, als einem Computer per Mikrophon einen Text zu diktieren.

Installation und Konfiguration des Say-it Moduls

Das Say-it Modul

Beim

">Spracherkennungsmodul Say-It handelt es sich um eine 6,3 cm lange, 1,3 cm starke Steckkarte, die an den Anwendungssteckverbinder (Application Connector) angeschlossen wird. Die Steckkarte enthält auf der Oberseite ein Mikrophon sowie eine praktische LED-Leuchte, die dem Anwender anzeigt, wann das Modul im Spracherkennungsmodus läuft. Es können bis zu 32 gesprochene Befehle (d.h. parametrierte Wörter) gespeichert werden.

Anschluss des Say-it Moduls am

 

Das Spracherkennungsmodul Say-it wird an den Application Connector angeschlossen (auf der untenstehenden Abbildung in Rot gekennzeichnet). Der Anschluss erfolgt über den Schalter, der in der 0-Stellung für eine Stromzufuhr sorgt.

Parallax Board of Education plateforme robotique

Vorsicht auf die Ausrichtung des Steckers. Um Irrtümer zu vermeiden: Das Zeichen Vdd (Vdd ist der auf +5V regulierte Eingang) befindet sich unten links, an der Rückseite des Say-it Moduls. An der diesem Zeichen nächstliegenden Pinbuchse ist daher der mit Vdd gekennzeichnete Steckverbinder des Application Connectors (unten links auf der obenstehenden Abbildung) anzuschließen..

Nach dem Anschließen befindet sich das Say-it Modul in folgender Position:

Anschluss des Say-it Moduls am <p style=

Nach dem Einführen der Steckkarte muss die Anwendung „Say-it GUI“ heruntergeladen und installiert werden. Sie steht unter folgendem Link zum Download bereit: http://www.parallax.com/Portals/0/Downloads/docs/prod/comm/SayItGUI-1.1.5.zip

Im Anschluss an die Softwareinstallation die Say-it Steckkarte einschalten, indem der Hauptschalter des Boe-Bot auf 1 gestellt und die Software „Say-it GUI“ gestartet wird. Nun wird der COM-Port spezifiziert, an dem der Boe-Bot

angeschlossen ist. Klicken Sie anschließend auf die „Connect“-Schaltfläche (beide in der nachstehenden Abbildung rot umrandet). Achtung, der Debug-Terminal der Programmierumgebung BASIC Stamp Editor muss geschlossen werden, bevor Sie die Schaltfläche „Connect“ anklicken.

Anschluss mithilfe von Say-it GUI

Wenn Sie das Say-it Modul zum ersten Mal anschließen, wird Ihnen automatisch angeboten, auf ihrem Basic Stamp eine sog. Bridge (Brücke) herunterzuladen. Dieses Add-on für das BASIC Stamp Mikroprogramm ist notwendig, damit das Say-it Modul funktioniert. Klicken Sie auf „Yes“ und warten Sie, bis der Bridge-Download abgeschlossen ist. Anschließend schaltet die Fortschrittsleiste oben rechts auf der „Say-it GUI“ Schnittstelle ganz auf Grün.

Download des Parallax Say-it Moduls

Fertig! Jetzt ist das Modul einsatzbereit.

Weitere Einzelheiten dazu finden Sie in den kompletten englischsprachischen Unterlagen des Say-it Moduls unter folgender Adresse: http://www.parallax.com/Portals/0/Downloads/docs/prod/comm/30080_SayItModulev1.2.pdf

Ein erster Test

Bevor wir die Parametrierung des Moduls verändern, wollen wir die (englischen) Wörter testen, die auf dem Modul vorparametriert sind, um uns mit seiner Verwendung und den verschiedenen Konzepten vertraut zu machen, auf die wir später zurückgreifen werden.

Bevor Sie die nachstehenden Tests durchführen, stellen Sie bitte sicher, dass Ihr

über das USB-Kabel an Ihren Computer angeschlossen ist und Sie den

in der Softwareschnittstelle „Say-it GUI“ wie oben beschrieben ordnungsgemäß installiert haben. Stellen Sie den Hauptschalter Ihres

s auf 1 (d.h. Steckkarte eingeschaltet, Motoren aus).

In der „Say-it GUI“ Schnittstelle wird die erste Zeile der links verfügbaren Liste ausgewählt („Trigger“), anschließend die Schaltfläche „Test Group“ wie in nachstehender Abbildung gezeigt anklicken.

Test der Spracherkennung im Say-it von Parallax Schnittstelle

Wenn Sie diese Schaltfläche betätigen, schaltet das Say-it Modul für einige Sekunden in den Abtastmodus und versucht das oder die Wörter einer ausgewählten Grupppe zu erkennen (hier ist das Wort „Robot“ das einzige parametrierte Wort der Gruppe „Trigger“. Sprechen Sie in unmittelbarer Nähe des Mikrophons der Say-it Steckkarte das Wort „Robot“ (mit englischem Akzent) aus. Wenn das Wort nicht erkannt wird, so erscheint ein kleiner Bildschirm mit der Angabe „Timeout“, d.h. das Programm war nicht in der Lage, in der Abtastphase das Wort „Robot“ zu identifizieren. Wenn Sie das Wort hingegen richtig ausgesprochen haben, wird es in Ihrer Schnittstelle hellgrün markiert (mehrere Sekunden andauerndes hellgrünes Blinklicht).

Wie Ihnen bereits aufgefallen ist, leuchtet die grüne LED auf der Say-it Steckkarte auf, so bald sich der

im Abtastmodus befindet. Diese Funktion wird später noch sehr nützlich sein.

VÜben Sie mit anderen Gruppen wie der Gruppe WordSet Nr. 1, die 8 Wörter enthält, oder zwei weiteren Wordsets mit jeweils 6 und 11 Wörtern.

Erläuterung der Konzepte

Im vorangegangenen Absatz haben wir das Konzept des Auslösers (Trigger) sowie weitere Konzepte wie Gruppen und WordSets kennen gelernt. Diese Konzepte sollen nachstehend definiert werden.

Trigger (Auslöser)

Wie der Name schon sagt, handelt es sich um jenes Wort, das eine Spracherkennung auslöst. Der

weiß, dass auf dieses Wort ein weiteres Wort folgt, das einem Befehl entspricht.

Gruppen

Parametrierte Wörter sind Befehle, da sie eine Aktion auslösen sollen (wir kommen später darauf zurück). Gesprochene Befehle sind in Gruppen zusammengefasst.

WordSets

WordSets sind vorparametrierte Gruppen, in denen keine Wörter gelöscht oder hinzugefügt werden können.

Parametrieren benutzerspezifischer Befehle

In folgenden Schritten wird ein neuer Befehl hinzugefügt:

  1. Die gewünschte Gruppe für den neuen Befehl auswählen
  2. Die Schaltfläche „Add command“ anklicken (Sprechblase mit grünem Kreuz)
  3. Namen des Befehls in der soeben im rechten Fenster hinzugefügten Zeile eingeben. Beim Namen kann es sich um eine beliebige Kette handeln.
  4. Die hinzugefügte Zeile durch Anklicken auswählen (sie muss blau markiert sein)
  5. Die Schaltfläche „Train Command“ (Sprechblase mit Zahnrad) anklicken. Es erscheint folgender Bildschirm:
    0
  6. Die Schaltfläche „Phase 1“ anklicken und das gewünschte Wort, das gespeichert werden soll, einmal aussprechen.
  7. Die Schaltfläche „Phase 2“ (die jetzt anstelle der Schaltfläche „Phase 1“ erscheint) anklicken und das dem Befehl entsprechende Wort erneut aussprechen.

Jetzt ist Ihr Befehl konfiguriert. Um ihn zu testen, ist wie zuvor die Schaltfläche „Test Group“ zu verwenden. Sollte die Parametrierung nicht zufriedenstellend sein, noch einmal von vorn beginnen. Das Löschen eines Befehls erfolgt mithilfe der Schaltfläche „Remove Command“.

Jetzt wissen Sie, wie Sie einen Befehl hinzufügen, und können Ihre eigenen Gruppen erweitern.

Erzeugung eines BS2-Codes

Wie wir gesehen haben, kann das Say-it Modul gesprochene Befehle erkennen, und wir können weitere Befehle hinzufügen. Sehen wir uns nun an, wie man den

dazu bringt, auf diese Spracherkennung mit konkreten Aktionen zu reagieren.

Mit dem Say-it GUI kann BS2 (PBASIC)-Code erzeugt werden. Dazu dient die Schaltfläche „Generate Code“ (Zauberstab auf einem weißen Blatt Papier).

Generieren und Testen von Codes

In unserem Beispiel wurden der Gruppe 1 die nachstehenden 5 Befehle hinzugefügt :

  • WEITER
  • STOPP
  • ZURÜCK
  • RECHTS
  • LINKS

Die Schnittstelle fragt, wie der Code benannt und wo er platziert werden soll. Anschließend kann das „Say-it GUI“ geschlossen und der BASIC Stamp Editor verwendet werden, die Programmierumgebung für den Boe-Bot.

Der erzeugte Code ist relativ lang. Bevor sie ihn testen können, muss jedoch ein Parameter bearbeitet werden, und zwar der Wert des Parameters VRGROUP. Der Standardwert beträgt 0, d.h. es werden gesprochene Befehle der Gruppe 0 erwartet. In unserem Beispiel wurden jedoch 5 Befehle in Gruppe 1 hinzugefügt, der Wert von VRGROUP muss demnach auf 1 lauten..

Ebenso empfiehlt es sich, für ein signifikanteres Testergebnis einen Teil des Codes wie folgt zu verändern. Diese Änderung ist zwar nicht unerlässlich, macht den Test jedoch aussagekräftiger.

Vorher Nachher
 Basic Stamp Code  Basic Stamp Code

Starten Sie das solcherart bearbeitete Programm und testen Sie nacheinander die einzelnen Befehle. Der Debug Terminal muss der nachstehenden Abbildung entsprechen:

Debug terminal der Basic Stamp

Die erste Zeile zeigt das Wort „error“ – das bedeutet, dass in dieser Abtastphase kein parametrierter Befehl erkannt wurde. Dadurch lässt sich die Funktionsweise des erzeugten Codes besser verstehen, d.h. die Abtastphase befindet sich in einer Schleife mit einer Dauer von jeweils 5 Sekunden. Um diesen Parameter zu verändern, muss der Wert des Parameters VRA1 auf Zeile 81 verändert werden.

Hinzufügen von

befehlen

Beim endgültigen Code wurden am Ende des Programms eine Reihe von Routinen hinzugefügt, mit denen der

sich vorwärts, rückwärts usw. bewegt. Außerdem haben wir den Aufruf dieser Routinen im bereits zuvor bearbeiteten Codeabschnitt hinzugefügt, wie die nachstehende Abbildung zeigt:

end programm say it parallax

Mithilfe dieses Codes kann der

jetzt mit der Stimme gesteuert werden! Der vollständige Code steht unter diesem Link zum Download bereit

Einen Beispielcode finden Sie bei Parallax unter folgender Adresse: http://www.parallax.com/Portals/0/Downloads/docs/prod/comm/SayItExampleCode.zip. Damit kann insbesondere der Begriff des Triggers getestet werden.

Jetzt liegt es an Ihnen, dieses Spracherkennungsmodul selbst auszuprobieren!(">http://www.generationrobots.de)

Jegliche Verwendung oder Vervielfältigung bedarf der vorherigen ausdrücklichen Genehmigung.