Я пытаюсь создать программу, в которой я могу сказать «Компьютер, проверь мою почту».например, и компьютер будет имитировать голос, как моя самая последняя почта.Прямо сейчас моя программа может распознать мой голос и напечатать то, что я сказал.Но это не может повторить меня или интерпретировать то, что я сказал.Также я использую Eclipse IDE.Пожалуйста, помогите как можете!Спасибо!
SpeechRecognizerMain.java
package model;
import java.io.IOException;
import java.util.List;
import edu.cmu.sphinx.api.Configuration;
import edu.cmu.sphinx.api.LiveSpeechRecognizer;
import edu.cmu.sphinx.api.SpeechResult;
import edu.cmu.sphinx.result.WordResult;
public class SpeechRecognizerMain {
private LiveSpeechRecognizer recognizer;
private boolean ignoreSpeechRecognitionResults = false;
public static String speechRecognitionResult;
public SpeechRecognizerMain() {
Configuration configuration = new Configuration();
configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-
us/en-us");
configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-
us/cmudict-en-us.dict");
configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-
us/en-us.lm.bin");
try {
recognizer = new LiveSpeechRecognizer(configuration);
} catch (IOException e) {
e.printStackTrace();
}
startSpeechRecognition();
}
public synchronized void startSpeechRecognition() {
recognizer.startRecognition(true);
SpeechResult speechResult = recognizer.getResult();
speechRecognitionResult = speechResult.getHypothesis();
System.out.println("You said: [" + speechRecognitionResult + "]\n");
makeDecision(speechRecognitionResult, speechResult.getWords());
}
public synchronized void stopIgnoreSpeechRecognitionResults() {
ignoreSpeechRecognitionResults = false;
}
public void makeDecision(String speech , List<WordResult> speechWords) {
System.out.println(speech);
}
public static String Rawphrase() {
return speechRecognitionResult;
}
public static void main(String[] args) {
new SpeechRecognizerMain();
}
}
Speak.java
package model;
import com.sun.speech.freetts.VoiceManager;
public class Speak {
String phrase = SpeechRecognizerMain.Rawphrase();
private String name;
private com.sun.speech.freetts.Voice voice;
public Speak(String name){
this.name = name;
this.voice = VoiceManager.getInstance().getVoice(this.name);
}
public void say(String phrase){
this.voice.speak(phrase);
}
}
Main.java
package model;
public class Main {
public static void main(String[] args){
System.setProperty("mbrola.base", "C:\\Users\\Ethan\\mbr301d.zip");
Speak voice = new Speak("kevin16");
}
}