Sprachsteuerung mit fischertechnik - Tutorial

  1. Vorbereitungen

  2. Spracherkennungssoftware installieren und einrichten

  3. FreeSpeedSpeech

  4. Die Sprachsteuerung


  1. Vorbereitungen

    1. Benötigt werden:

      • ein Windows-Pc

      • ein Mikrophon

      • Spracherkennungssoftware
        (in diesem Tutorial: SmartWord Command & Control Edition)

      • Interfaceansteuerungssoftware
        (FreeSpeedSpeech, auch selbstprogrammiert möglich...)

    2.  

    3. Mikrophontest

      Bevor Sie die Spracherkennungssoftware installieren, sollten Sie ihr Mikrophon testen.
      Verwenden Sie dazu ein Audioaufzeichnungsprogramm, der Windows-Audio- Recorder ist dazu vollkommen ausreichend.
      (Auf den meisten System hier zu finden:
      Start->Programme->Zubehör->Unterhaltungsmedien->Audiorecorder)

      Drücken Sie auf Aufnahme (Kreis), Sprechen Sie etwas, dann Stop (Rechteck), Zurückspulen (Doppelpfeil links) und spielen Sie die Aufnahme ab (Pfeil rechts).

      Wenn die Qualität schlecht ist liegt das häufig an Hintergrundgeräuschen (Fenster zumachen etc.!), aber auch am Mikrophon oder der Aussprache.
      (Erstaunlicherweise erkennt er aber oft auch in dialekt gesprochene Wörter ganz gut...)

      Nach einigem Probieren bekommt man meistens eine bracuhbare Qualität und Lautstärke.

    4.  

    5. Programme herunterladen

      Laden Sie die Spracherkennungssoftware von www.ftcommunity.de.vu und FreeSpeedSpeech von www.MarMac.de.vu herunter und entpacken Sie die Archive.

    6.  

    7. Spracherkennungssoftware installieren und einrichten

      Installieren Sie SmartWord mit dem setup-Programm.

      Bei Standardeinstellungen finden Sie zum normalen Starten das Hauptprogramm unter Start -> Programme -> SmartWord für Windows -> SmartWord Command + Control Edition

      Wichtig:
      Das Mikrophon sollte unbedingt schon vor der Installation funktionieren!

      Es kann sein dass Sie während der Installation dazu aufgefordert werden, den "Audio Setup Assistenten" zu starten.

      Mit diesem kann man die Lautstärke von Mikrophon und Lautsprecher testen und anpassen.
      Außerdem wird ein Qualitätstest durchgeführt.

      Aus eigener Erfahrung ist die Erkennungsqualität immer etwas besser als der Assistent behauptet: Auch wenn er den Test mit "schlecht" und "absolut unzureichend" kennzeichnet und die Installation abbrechen will, sind trotzdem oft ncoh brauchbare Ergebnisse möglich.
      Dann den Assisistenten abbrechen und die Installation des Programms fortsetzen.

      Auf jeden Fall wird nach dem Einrichten eines Benutzerkontos ein sog. "Training"-Dialog mit zusammenhanglos erscheinenden Wörtern angezeigt, die man ein oder mehrmals nachsprechen soll.

      Es handelt sich um Schlüsselwörter für die Sprachsteuerungssoftware, das Tarining ist für die spätere richtige Erkennung sehr wichtig.
      (Nur wenn er weiß, wie der Benutzer ein Wort ausspricht kann er es später auch richtig wiedererkennen)

      Wichtig:
      Die Sprachsteuerung erkennt im Regelfall nur die Stimme einer Person.
      Für andere Personen sollte man neue Benutzerkonten einrichten.
      (Befehlsmenü->Benutzer->Anlegen)
      Der andere Benutzer muss dann allerdings alle Wörter im "Training" neu einsagen.

  2.  

  3. FreeSpeedSpeech

    Dieses Programm dient als "Vermittler" zwischen der Spracherkennungs- software und dem fischertechnik-Interface.

    Genauer genommen hat FreeSpeedSpeech (kurz: fss) gar nichts mit Spracheingabe zu tun, sondern steuert ein Modell auf Tastendrücke der Tastatur.

    Wie Sie in Kapitel 4) erfahren werden, erzeugt die Spracherkennungs- software "künstliche" Tastendrücke, mit denen dann fss angesprochen wird.

    Ich will die Funktion und das Zusammenspiel der Programme an einem einfachen Modell erklären:

    Nehmen Sie einen Motor, befestigen Sie eine Drehscheibe oder ein Rad (oder irgendetwas, woram man die Drehrichtng und Geschwindigkeit des Motors erkennen kann) an der Achse, befestigen Sie das ganze auf einer Platte und schließen Sie den Motor am Interface-Eingang M1 an.

    Überprüfen Sie dann die Interfaceverbindung und starten Sie fss.

    (Leider ist z.Zt. nur eine Ansteuerung des seriellen Interfaces möglich)

    Wenn Sie fss zum ersten Mal starten, sind keine Werte eingestellt, bei jedem erneuten Start werden die letzten Einstellungen wiederhergestellt.
    Zum löschen dann einfach auf "Einstellungen zurücksetzen" klicken.

     

    1. Startwerte

      Sie können in fss für jeden der 4 Motoren Startrichtung und -Geschwindigkeit einstellen, außerdem Endtaster für Links und rechtslauf.

      Stellen Sie jetzt für das Beispiel Die Startrichtung von Motor 1 von "A" (Aus) auf "L" (Links).

      Drücken Sie dann zum Starten auf "LOS!".

      Der Motor müsste sich jetzt bei richtiger Einstellung drehen.
      Zum Stoppen auf "NOT-AUS" klicken.

      Ändern Sie dann Testweise mit dem regler die Geschwindigkeit von Motor 1 auf 20% und testen Sie: Die Geschwindigkeitsregulierung ist dieselbe wie in "FreeSpeed".

      Diese Startwerte gelten solange, bis man etwas über einen (vorher einprogrammierten) Tastaturbefehl ändert.

      Machen Sie jetzt für das Beispiel die Änderungen mit "Einstellungen zurücksetzen" wieder rückgängig.

    2.  

    3. Tastaturbefehle

      Wir wollen jetzt folgendes einstellen:
      Bei Druck auf die Taste "Q" soll sich der Motor Links drehen, bei "W" stoppen und bei "E" rechts drehen.

      Setzen Sie dazu den Cursor in das kleine Eingabefeld neben dem "Neu:"- Button oben und drücken Sie die Taste "Q" (kleinbuchstabe!).
      Klicken Sie dann auf "Neu:", und das "q" wird der Liste links hinzugefügt.

      Stellen Sie jetzt gleich darunter bei "Aktion bei dieser Taste" "Motorstatus ändern" ein.

      Daraufhin erscheinen weitere Auswahlmöglichkeiten.

      Machen Sie jetzt an den Motor, den Sie ändern möchten (also Motor 1) ein Häkchen und stellen Sie daneben die Drehrichtung "L" ein.

      Fahren Sie jetzt mit der nächsten Taste ("W") auf die gleiche Weise fort:
      Tippen Sie "a" in das Eingabefeld neben "Neu:", klicken Sie den "Neu:"-Button, Stellen Sie "Motorstatus ändern" ein, machen Sie das Häkchen bei Motor 1 und stellen Sie die Richtung auf "A".

      Dasselbe dann gleich nochmal mit der Taste "E" und der Richtung "R" (Rechts).

      Wenn alles geklappt hat können Sie auf "LOS!" klicken.

      Sie können jetzt die Drehrichtung des Motors mit den Tasten q, w, e ändern.

      Stoppen Sie das programm ("NOT-AUS"), und stellen Sie jetzt zusätzlich noch eine Geschwindigkeitsänderung ein:
      Wir wollen die Taste "R" für 50% und "T" für 100%.

      Erstellen Sie also einen Eintrag für die Taste "R", dann aber nicht "Motorstatus ändern", sondern "Geschwindigkeiten ändern".

      Auch hier muss man den gewünschten Motor ankreuzen, kann dann aber anstatt der Richtung die gewünschte Geschwindigkeit einstellen.
      Stellen Sie für "R" 50% ein, danach analog für "T" 100%.

      Testen Sie jetzt das Programm, die Geschwindigkeitsänderung ist auch dann wirksam, wenn der Motor gerade ausgeschaltet ist.
      (Sie wirkt sich dann aber natürlich erst beim wieder einschalten aus)

      Sie können Einstellunegn jederzeit ändern, wählen Sie einfach die entsprechende Taste in der Lsite aus, fss "merkt" sich alle Einstellungen sofort.

      Wenn Sie aus versehen eine Taste doppelt eintragen oder löschen wollen:
      Eine Löschfunktion ist (noch) nicht integriert, allerdings können Sie einen der Einträge dadurch unwirksam machen, indem Sie einfach bei "Motorstatus ändern" alle Häkchen bei den Motoren entfernen:
      Dadurch wird der Eintrag einfach übersprungen.

      Man kann das Doppeltverwenden auch ausnutzen, z.B. wenn man mit einem einzigen Befehl sowohl Drehrichtung als auch Geschwindigkeit ändern will.
      Es werden immer beide (alle) Einträge ausgeführt, und zwar in der Reihenfolge wie sie in der Liste stehen.

      Sobald alles mit der Tastatur wie gewünscht funktioniert können Sie mit dem letzen (und wesentlichen!) Schritt weitermachen.

      Notieren Sie ggf. welche Aktion bei welcher Taste (und welchem gesprochenen Wort später) ausgeführt werden soll.

  4.  

  5. Die Sprachsteuerung

    Jetzt muss man noch die Spracherkennungssoftware dazu bringen, die Tastendrücke vorzutäuschen, um fss zu steuern.

    Starten Sie dazu die SmartWord Command & Control Edition, und bringen Sie das fss-Fenster wieder in den Vordergrund, sobald die SmartWord-Kontrolleiste am oberen Bildschirmrand erscheint.

    1. Steuerung mit Buchstabenbezeichnern

      Für das Motordrehung-Beispiel sollten Sie die Sprachsteuerung zunächst einmal mit den in SmartWord einprogrammierten Buchstabenbezeichnern versuchen:

      SmartWord kennt standardmäßig eine Reihe Wörter (meistens Namen), die einen Tastendruck vortäuschen (und zwar jeweils die Anfangs- Buchstaben dieser Wörter).

      Bsp:
      A: Anton, B: Berta, C: Cäsar...

      Diese Buchstabenbezeichner werden in der Regel sehr sicher erkannt (oft sogar fälschlicherweise...)

      Eine vollständige Liste der Bezeichner finden Sie in der SmartWord- Hilfe:
      Befehlsmenü->Hilfe->Inhalt, Referenzthemen->Buchstabieralphabet.

      Damit können Sie sofort einen Versuch starten:
      Schalten Sie (falls nötig) das Mikrophon ein, überprüfen Sie ob der Mikrophonbalken in der SmartWord-Kontrollleiste gelb ist
      (Wenn nicht: Klicken Sie auf die Mikrophonschaltfäche oder drücken Sie + auf der numerischen Tastatur, um die Spracherkennung zu aktivieren.
      Starten Sie dann das bereits richtig programmierte fss mit "LOS!".

      Die Buchstabenbezeichner für das Beispielprogramm sind folgende:

      Motor Links:Q:"Quelle"
      Motor Aus:W:"Wilhelm"
      Motor Rechts:E:"Emil"
      Geschw. 50%:R:"Richard"
      Geschw. 100%:T:"Theodor"

      Mit diesen 5 Wörtern müssten Sie jetzt bereits den Motor steuern können!

      Fehlerdiagnose:

      • Wenn überhaupt nichts erkannt wird:

        Überprüfen Sie, ob die Sprachsteuerung etwas erkennt:
        Erkannte Wörter werden in der SmartWord-Kontrollleiste Rechts angezeigt.
        Wenn SmartWord etwas nicht versteht, steht dort {???}.
        Dann: Nochmals sprechen, wenn er auch nach mehreren versuchen nichts erkennt:
        Mikrophontest wie in Kapitel 1) beschrieben wiederholen.

      • Wenn das Wort von SmartWord richtig erkannt wird:
        Prüfen Sie, ob fss im Vordergrund und eingeschaltet (auf "LOS") ist und der Cursor sich im hervorgehobenen Eingabefeld befindet.
        Wenn das alles der Fall ist: Programmierung überprüfen!
        Funktioniert es mit der Tastatur?
        (Wenn ja: es muss klappen! Wenn nein: Schauen was falsch programmiert / ob etwas abgestorben ist)

      • Wenn falsche Wörter erkannt werden:
        (Rechts in der Kontrollleiste steht ein vielleicht ähnlich klingendes, aber falsches Wort)

        Um den Fehler weiterhin zu vermeiden, sollten Sie die Korrektur- funktion von SmartWord verwenden:
        Sagen Sie dazu entweder "Hoppla!" ins Mikrophon oder, wenn das auch nicht/falsch erkannt wird, rufen Sie den Korrekturdialog manuell auf: Befehlsmenü->Hilfsmittel-Wortliste [Hoppla].

        Dort sehen Sie in der oberen, horizontalen Leiste die letzen 10 Wörter, die Smartword erkannt hat.
        Das Programm bietet jetzt unter dem letzten Wort eine vertikale Auswahlliste an, in der einige Vorschläge für das Wort stehen. Wenn das tatsächlich gesprochene Wort dabeisteht:
        Darauf doppelklicken und er wird es sich (hoffentlich) merken.
        Wenn es nicht dabeisteht: die {???} unten auswählen, besser nichts erkennen als falsch erkennen...

    2.  

    3. Eigene Wörter in SmartWord einprogrammieren

      War der vorige Versuch (mehr oder weniger) Erfolgreich, können Sie eigene, aussagekräftigere Wörter zur Sprachsteuerung definieren.

      Dazu sollte fss laufen und im Vordergrund sein, allerdings nicht auf "LOS". (ggf. "NOT-AUS" drücken).

      In der SmartWord-Kontrolleiste sollte in der Mitte "FREESP~1" oder etwas in dieser Art stehen.

      Klicken (oder sprechen!) sie dann:
      Befehlsmenü->Hilfmittel->Vokabularverwaltung.
      Ein umfangreicheres Fenster mit Wortlisten öffnet sich.

      Suchen Sie in der Liste links "FREESP~1" (oder eben das, was vorhin in der Kontrolleiste stand) und klicken Sie darauf.

      Im rechten Fenster finden Sie alle bisher einprogrammierten Wörter, d.h. beim ersten Versuch keine.

      Wir wollen jetzt folgende Wörter definieren:
      "Links" (Q)
      "Stop" (W)
      "Aus" (W)
      "Rechts" (E)
      "halbe Geschwindigkeit" (R)
      "volle Geschwindigkeit" (T)

      Klicken Sie dazu im Menü der Vokabularverwaltung Wort->Wort hinzufügen.

      Tippen Sie unter "Wortname" das ein, was Sie nacher sprechen möchten
      (Also: "Links").
      Tippen Sie dann in das weiße Eingabefeld unten "q".
      ("Ausgabe folgender Tastatureingabe" aktiviert lassen)

      Klicken Sie dann auf Ok.

      Es kommt eine Meldung, dass "Links" in "[Links]" umgewandelt wird, diese sollten Sie bestätigen.

      Das Wort wurde jetzt der Liste hinzugefügt.
      Verfahren Sie mit den anderen Aktionen wieder genauso:
      Wort hinzufügen, Wort eintippen, buchstabe eintippen, ok, ja, nächstes Wort...

      Wenn alles eingetragen ist, sind die Befehle eigentlich schon benutzungsbereit.
      Sie sollten aber auf jeden Fall die Wörter vorher in SmartWord "eintrainieren", damit er sie zuverlässig erkennt.
      Klicken Sie dazu im Menü Gruppe->Trainieren.

      Es kommt wieder der bekannte Dialog, in dem Sie die einzelnen Wörter mehrfach nachsprechen dürfen.

      (Hinweis: es ist mir vorgekommen, dass manche Befehle mit "Training beenden" verwechselt wurden und dadurch das Training vorzeitig abgebrochen wurde... dann auf jeden Fall "Hoppla!", korrigieren und das Training wiederholen.
      Sollte es wiederholt falsch erkennen, ist es vielleicht sinnvoll einen Befehl für die Aktion zu verwenden, der anders klingt.)

      Wenn das Training erfolgreich abgeschlossen ist, können Sie fss mit "LOS!" starten und es müsste alles funktionieren.

      Viel Spaß beim Steuern!


Impressum:

Markus Mack

MarMac@uni.de

http://www.MarMac.de.vu