ZAPIS KOMEND GŁOSOWYCH UŻYWANYCH DO DIALOGU UŻYTKOWNIKA Z ROBOTEM ================================================================= Lista przewidywanych komend głosowych zapisywana jest w pliku komend, który jest plikiem tekstowym (rozszerzenie .VCD). Plik ten powinien być kodowany w formacie ANSI. W pliku komend pojedyncza komenda zapisywana jest pod postacią jednego lub większej ilości sformułowań (wariantów). Każda komenda musi mieć unikalną nazwę, za pomocą której będzie ona reprezentowana w programie w języku Arlang (patrz opis procedury COMMAND w dokumentacji języka Arlang). Jeżeli podajemy sformułowania komend w języku polskim, to w pliku komend musi się znaleźć dyrektywa: $ Language: Polish Podstawowa struktura zapisu informacji w pliku komend jest następująca. Pojedyncza komenda jest opisywana w kilku kolejnych liniach w ten sposób, że pierwsza z tych linii zawiera słowo kluczowe #COM po którym podana jest nazwa komendy, zaś każda kolejna linia zawiera pojedynczy wariant komendy tj. ciąg wyrazów stanowiących tę komendę. Ilustruje to poniższy przykład. PRZYKŁAD PLIKU KOMEND: ---------------------- $ LANGUAGE: Polish #com open otwórz chwytak proszę otworzyć chwytak #com close zamknij chwytak proszę zamknąć chwytak #com move przesuń ramię proszę przesunąć ramię #com nest zaparkuj proszę zaparkować #com halt zakończ proszę zakończyć Odwołanie do pliku komend następuje za pomocą procedury MICROPHONE języka Arlang. Procedura ta powoduje rejestrację (nagrywanie) tekstu wypowiadanego do mikrofonu. Następnie sprawdzane jest, czy tekst ten odpowiada któremuś ze sformułowań podanych w pliku komend. Jeśli tak, to zapamiętywana jest nazwa tej komendy, której odpowiada rozpoznany tekst. Korzystając z procedury COMMAND w programie (patrz opis języka Arlang) można sprawdzić, która komenda została rozpoznana. Aby zwiększyć niezawodność systemu rozpoznawania mowy, przed każdym wywołaniem procedury MICROPHONE można zawęzić zbiór rozpoznawanych komend. Zawężenie takie jest realizowane za pomocą jedno- lub wielokrotnego wywołania procedury ACTIVATE (patrz opis języka Arlang). Ilustruje to poniższy przykładowy program w języku Arlang. PRZYKŁAD PROGRAMU w JĘZYKU ARLANG ODWOŁUJĄCEGO SIĘ DO POWYŻSZYCH KOMEND: ------------------------------------------------------------------------ program load(nt) execute otwarty:=1 nest:=1 activate(close) activate(move) activate(halt) repeat speaker(1,Sl^ucham) microphone if command(open) load(go) otwarty:=1 endif if command(close) load(gc) otwarty:=0 endif if command(move) load(mc_1,5) nest:=0 endif if command(nest) load(nt) nest:=1 otwarty:=1 endif if command(halt)=0 execute activate(halt) if otwarty activate(close) else activate(open) endif if nest activate(move) else activate(nest) endif endif until command(halt)