Taligenkänning Animatronic talande träd - del 2 - (5 / 8 steg)
Steg 5:
Kan börja med några enkla dynamisk information, tiden och dagen.
Först, kommentera ut eller ta bort raden...
respond(s);från om-uttryck i din loop funktion. För att kommentera den ut bara föregå det med "/ /", som denna...
//respond(s);Vi vill inte riktigt göra en papegoja, men snarare ett träd som verkar lite smart.
Lägg till linjer som visas med fet stil till din loop funktion.
void draw() {
om (voce. SpeechInterface.getRecognizerQueueSize() > 0) {//if voce erkänner något sagt
Sträng s = voce. SpeechInterface.popRecognizedString(); tilldela strängen att voce hörde till variabel s
println ("du sa:" + s); Skriv ut vad hördes till felsökningsfönstret.
respond(s);
om (s.equals ("träd vad är klockan")) {
getTime();
} }
om (s.equals ("träd vilken dag är det")) {
whatDay();
}
}
Vad detta gör är att kontrollera om strängen i s är lika med vår jämförelse strängar, och om det är, sedan en sker till en funktion som kallas getTime() eller whatDay().
Rulla längst ned i din skiss och Lägg till följande getTime() funktion, som kommer att få tid, tilldela den till en strängvariabel och sedan skicka den till vår respond() funktion.
/ / Funktion för att få tidenvoid getTime() {
int m = minute(); Värden från 0 - 59
int h = hour(); Värden från 0 - 23
booleska dn = false;
Sträng tid;
Sträng daynight = "Ay em"; A.M. läses som ett enda ord när det gäller vår animation funktion så vi fuska här.
IF(h>12) {
DN = sant;
h = h - 12.
daynight = "kissa em"; P.M. läses som ett enda ord när det gäller vår animation funktion så vi fuska här.
}
IF(h==0) {
h = 12.
}
IF(m<10) {//if minuter är mindre än tio, bearbeta den till låta naturligt, vi säger inte 5 noll en pm
IF(m==0) {
tid = "Det är nu" + h + daynight; om minuter är på noll bara säga 5 pm
}
annat {
tid = "Det är nu" + h + "! Åh "+ m + daynight; annat låt säga oh i stället för noll
println(Time);
}
}
annat {//if minuter är större än tio bara säga dem normal
tid = "det är nu" + h + "!" + m + daynight;
println(Time);
}
meddelande = tid;
respond(Message);
}
Och nu kan lägga till kod att fråga vilken dag det är lika bra.
Vi kommer att lägga till en rad i deklarationsavsnittet i vår skiss. Kom ihåg att koden innan våra setup-funktionen, överst på skissen.
//gregorian kalender för att bestämma dagGregorianCalendar gcal = nya GregorianCalendar();
Lägg till följande funktion till botten av din skiss.
//get dagen i veckanvoid whatDay() {
int vecka = gcal.getActualMaximum(Calendar.DAY_OF_WEEK);
println ("dag i veckan:" + vecka);
int först = gcal.getFirstDayOfWeek();
Switch(First) {
fall 1:
println("Sunday");
respond("Sunday");
bryta;
fall 2:
println("Monday");
respond("Monday");
bryta;
fall 3:
println("Tuesday");
respond("Tuesday");
bryta;
fall 4:
println("Wednesday");
respond("Wednesday");
bryta;
fall 5:
println("Thrusday");
respond("Thursday");
bryta;
fall 6:
println("Friday");
respond("Friday");
bryta;
fall 7:
println("Saturday");
respond("Saturday");
bryta;
}
}
Spara filen och försök köra den. Du bör kunna begära ditt träd, och vilken dag det finns om du följer rätt struktur och tala tydligt.
Du måste säga någon av strängarna jämförelse vi lägger i vår kod, som "träd, vad är klockan?".
Det är helt acceptabelt att tala din skiljetecken, programmet är likgiltig för det.