Как мне взять свой голос и заставить компьютер отвечать звуковым ответом? - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь создать программу, в которой я могу сказать «Компьютер, проверь мою почту».например, и компьютер будет имитировать голос, как моя самая последняя почта.Прямо сейчас моя программа может распознать мой голос и напечатать то, что я сказал.Но это не может повторить меня или интерпретировать то, что я сказал.Также я использую 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");

     }

}
...