Taligenkänning Animatronic talande träd - del 2 - (4 / 8 steg)
Steg 4: Grammatikfiler
Så vad är en grammatik fil?
Även om voce har förmågan att känna igen runt 120000 ord, i de flesta fall kommer bara några kommandon att krävas. De ord som definieras i en grammatik filen är de ord som kommer att erkännas för ett program. Så för varje program eller skiss, kommer att som du skapar med röst kräva en grammatik fil.
Grammatikfiler för voce följa Java tal grammatik filen (JSGF) format.
Vi använde siffror grammatik filen är exempel .gram fil som wasincluded med nedladdningen. Kan titta på en enkel .gram fil.
grammatik kläder;offentliga < clothesTypes > = (byxor | skjorta | strumpor);
I detta exempel skulle namnet på grammatiken vara kläder, så vi skulle också namnge våra filen clothes.gram. Grammatik regel clothesTypes skulle vara nöjd när handskriftstolken skulle höra något av orden int listan (byxor, skjorta, strumpor).
Det är en grundläggande grammatik fil. Vi kommer att använda något mer komplicerat, men det är faktiskt inte krävs för ett projekt av denna omfattning. Det ger bara oss en chans att bygga anständigt .gram fil så vi förstå strukturen när vi vill implementera den i något mer komplicerat.
Öppna Anteckningar, eller din favorit texteditor och skriv följande. (eller ta tag i det)
#JSGF V1.0; /** grammatik träd.
* Grammatik filen exempel för Animatronic träd
*/
offentliga < träd > = < adressen >< begäran >< requestTypes >;
offentliga < ordförråd > = (< adressen > Hej | Hej < adressen > | tack) *;
offentliga < extra > = (vet | hur | varför | som | du | hoo | shoo);
< adressen > = (träd);
< begäran > = (berätta | få den | vad);
< requestTypes > = (ett skämt | väder | är klockan | dag);
Nu kan ta en titt på våra definitioner.
Vi börjar med namnet på grammatiken, i detta fall träd. Sedan har vi en grammatik regel < träd > som kräver tre villkor uppfyllas. Adress, begäran och typ av begäran. Kan rulla ner och titta på dem nu.
Adress, skulle ordet "träd", som i mitt fall är vad jag kallar min träd, eller tilltala honom som. Du kan ändra detta till vad du vill så länge det är i ordboken av kända ord. Det finns några vanliga namn i filen, men för detta projekt jag gillade träd. En definition kan också vara en fras, så du kan få kreativ, jag använde "skallen vet vi" som namn på ett annat projekt. (Hans rätta namn var Skullduino)
Begäran och typ av begäran definierar hur man be om något, så strukturen när vi talar till roboten kommer att vara "Träd, begäran, requestType". Som ni ser lägga jag i ett par sätt att säga saker.
Om vi går tillbaka upp till de två regler att vi slätade över, vi kommer att se först ordförråd regel, delar nöjda för vissa med adressen, och några utan. För hälsningen trädet och säga tack.
Sedan har vi extra, vilket är bara några ord som sannolikt kommer att sägas mellan skämt. Vi sätter dem i inte så mycket att reagera på att höra något mellan fråga och punch linjer av skämt. Om vi inte innehöll dessa ' buffer'words, handskriftstolken skulle sitta och vänta på att höra en av kommandon eller strukturer som vi har på plats innan du avslutar ett skämt.
Spara din grammatik-fil i mappen gram i mappen bibliotek som vi skapade tidigare. Kalla det "tree.gram".
Ändra pekaren från "siffror" till "träd" i voce inledande koden, det vi inte skriva .gram, och försök den ute. Skissen ska nu försöka känna igen orden vi definierat i stället för nummer från innan.
följande initierar voce biblioteket
voce. SpeechInterface.init ("libraries/voce-0.9.1/lib", sant, true,"libraries/voce-0.9.1/lib/gram","träd");