I am new to java, and i am caught badly in a part of my program.
I am using a library called Voce. which is used for voice recognition. it recognizes voice or word , compares with its built in grammar and prints it in "string " value. e.g: if you spoke "five" it would print "five".
The reason i am asking the question is. that how can i compare that string value with a desired value. e.g : if the value is "five" then store it in another string for further working
here is the code : You can find the Voce library here http://voce.sourceforge.net/ ////////////////////////////////////////
//import the libraries
import guru.ttslib.*;
import processing.serial.*;
//give our instances names
Serial treePort;
TTS tts;
void setup(){
//the following initiates the voce library
voce.SpeechInterface.init("libraries/voce-0.9.1/lib", true, true,"libraries/voce-0.9.1/lib/gram","digits");
//start our port and also tts
treePort = new Serial(this,Serial.list()[0],9600);
tts = new TTS();
//the following settings control the voice sound
tts.setPitch( 180 );
tts.setPitchRange( 90 );
//tts.setPitchShift( -10.5 );
treePort.write("73"); //send command to turn on the lights and open the eyes
}
void draw(){
if (voce.SpeechInterface.getRecognizerQueueSize()>0){ //if voce recognizes anything being said
String s = voce.SpeechInterface.popRecognizedString(); //assign the string that voce heard to the variable s
println("you said: " + s); //print what was heard to the debug window.
respond(s);
}
}
//This function will split the text up into multiple words, and decide how to animate depending on the length of each word and also pauses which are denoted by "!"
void respond(String input){
if (input.length() > 0){ //we actually have something to say
voce.SpeechInterface.setRecognizerEnabled(false); //stop listening, otherwise we will hear ourselves and go into a loop
//this just splits up all the words sends motion
String[] words = split(input," ");
int howMany = words.length;
for(int i=0;i<howMany;i++){
String pieces[] = split(words[i],"!"); //if we see a ! then reading pauses slightly so it is a good time to blink
if(pieces.length==2){
treePort.write("1");
int pause = int(random(100));
if(pause>60){
treePort.write("5");
}
else{
treePort.write("7");
delay(500);
}
}
else{
treePort.write("1");
}
}
tts.speak(input);
voce.SpeechInterface.setRecognizerEnabled(true);
}
}