在freeTTS中检测java的Speak结束

时间:2012-04-25 11:49:25

标签: java freetts

我正在使用freeTTS库将文本转换为语音。我可以使用这个库编写代码,我可以使用以下代码播放特定文本的语音:

Voice voice = VoiceManager.getInstance().getVoice("kevin16");
if (voice != null) {
    voice.allocate();
}
voice.speak("Hello world");

当tts lib完成发言过程时,有没有办法可以获得回调?

1 个答案:

答案 0 :(得分:3)

我自己找到了答案..当lib完成说话过程时,我们不需要回调。只有当说话过程结束时,控制才会进入下一行。

我是这样做的:

    Thread t = new Thread() {
        @Override
        public void run() {
            super.run();
            try {
            voice = initializeTTS(); // a func to initialize TTS lib.
            voice.speak("Hello world");
            // do whatever you want to do from here only.
            } catch (Exception e) {
               e.printStackTrace();
            }
        }
};
t.start();