我使用VOCE库(https://sourceforge.net/projects/voce/)在Java中使用netbeans进行语音合成,以下是代码。
public class synthesisTest{
public static void main(String[] argv){
voce.SpeechInterface.init("../../../lib", true, false, "", "");
voce.SpeechInterface.synthesize("This is a speech synthesis test.");
voce.SpeechInterface.synthesize("Type a message to hear it spoken "
+ "aloud.");
try
{
String s = "Hey testing";
voce.SpeechInterface.synthesize(s);
voce.SpeechInterface.stopSynthesizing();
}
catch (Exception ioe)
{
System.out.println( "error:" + ioe );
}
voce.SpeechInterface.destroy();
System.exit(0);
}
}
但是,当我运行此代码时,输出为
[Voce] Initializing synthesizer
[Voce] Initialization complete
[Voce] Shutdown complete
BUILD SUCCESSFUL (total time: 0 seconds)
但没有语音输出。但是,如果从控制台读取字符串,它将提供输出。如何修复此问题,因为我希望这对代码中提供的字符串起作用?
答案 0 :(得分:1)
你打电话
voce.SpeechInterface.synthesize(s);
开始演讲
voce.SpeechInterface.stopSynthesizing();
来自文档:“告诉语音合成器停止合成。这会取消所有待处理的消息。”
然后立即停止演讲。
您必须等到演讲结束而不强制停止演讲。 这必须在循环中完成,否则应用程序在演讲之前结束。