私はJavaが初めてで、プログラムの一部にひどく引っかかっています。
Voce というライブラリを使用しています。これは音声認識に使用されます。音声または単語を認識し、組み込みの文法と比較して、「文字列」値で出力します。例: "five" と話すと、"five" と出力されます。
私が質問している理由は次のとおりです。その文字列値を目的の値と比較するにはどうすればよいですか。例:値が「5」の場合、さらに作業するために別の文字列に保存します
ここにコードがあります:ここでVoceライブラリを見つけることができます 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);
}
}