0

私は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);
}
}
4

1 に答える 1

0

あなたが探しているのは等しい機能です...詳細については、このリファレンスを確認してください

http://www.java-samples.com/showtutorial.php?tutorialid=660

于 2012-10-06T14:59:09.973 に答える