29.01.2014 Aufrufe

Belegarbeit (.pdf - 2.3 MB) - Technische Universität Dresden

Belegarbeit (.pdf - 2.3 MB) - Technische Universität Dresden

Belegarbeit (.pdf - 2.3 MB) - Technische Universität Dresden

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

8. ENTWICKLUNG EINER SCHNITTSTELLE AUF BASIS DER MICROSOFT SPEECH API 52<br />

Nur Befehle die zu Regeln gehören deren Status ’aktiv’ ist können erkannt werden. Um ein Regel zu<br />

aktivieren können die Funktion activate_menu_index und activate_menu_name verwendet werden. Es<br />

ist allerdings nicht vorteilhaft immer alle Menüs aktiv zu lassen. Damit man ein Menü also auch wieder<br />

deaktivieren kann stehen die Funktionen deactivate_menu_index und deactivate_menu_name zur Verfügung.<br />

Dadurch wird Wahrscheinlichkeit reduziert, dass Spracheingaben verwechselt werden.<br />

Falls nötig können aus einer Regel auch alle Befehle gelöscht werden indem man erneut die Funktion<br />

add_menu mit dem entsprechenden Index aufruft. Der Name der Regel hat darauf allerdings keinen<br />

Einfluss und ändert sich auch dann nicht, wenn man beim Aufruf der Funktion einen neuen Namen<br />

angibt.<br />

8.<strong>2.3</strong> Der Befehl<br />

Jede Spracheingabe, die erkannt werden kann, wird als Befehl bezeichnet. Der Begriff umfasst dabei<br />

sowohl Befehle die nur aus einem einzigen Wort bestehen als auch Befehlswortgruppen.<br />

Mittels der Funktion add_command wird der Grammatik ein neuer Befehl hinzugefügt. Bei den übergebenen<br />

Parametern handelt es sich um den Menüindex, die Spracheingabe, den Befehlsindex sowie<br />

den Name des Befehls. Der Menüindex gibt an zu welchem Menü der neue Befehl hinzugefügt werden<br />

soll. Der Name und der Index eines Befehls identifizieren ihn innerhalb seines Menüs eindeutig. Die<br />

Spracheingabe gibt an, was gesagt werden muss um den entsprechenden Befehl auszulösen. Natürlich<br />

kann es vorkommen das verschiedene Spracheingaben den selben Befehl auslösen sollen. Zum Beispiel<br />

könnten die Eingaben ’exit program’, ’close program’ und ’end program’ alle die gleiche Wirkung verfolgen.<br />

Um dies zu realisieren muss für jede Spracheingabe erneut die Funktion add_command, mit dem<br />

gleichen Menü- und Befehlsindex aufgerufen werden.<br />

Um heraus zu bekommen welcher Befehl in der letzten Spracheingabe aufgerufen wurde, können die<br />

Funktionen get_menu_name und get_command_index aufgerufen werden. Falls nur eine Regel existieren<br />

sollte ist das ausreichend. Wenn mehrere Regeln existieren und gleichzeitig aktiv sind sollten noch<br />

entweder der Regelname oder der Regelindex abgefragt werden um einen Befehl eindeutig zu identifizieren.<br />

An dieser Stelle soll noch auf eine Besonderheit eingegangen werden. Wie schon zuvor erwähnt können<br />

mehrere Spracheingaben den selben Befehl auslösen. Außerdem wurde gesagt, dass dazu wiederholt<br />

die Funktion add_command mit dem gleichen Menü- und Befehlsindex aufgerufen werden muss. An<br />

dieser Stelle kommt die Frage auf, ob den nicht auch der Name des Befehls gleich lauten muss, da auch<br />

er einen Befehl eindeutig identifiziert. Die Antwort ist allerdings nein. Man kann einem Befehl also

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!