我想在我的项目中实现文本到语音的实现,因为我使用了 java-google 文本到语音 api https://code.google.com/p/java-google-translate-text-to-speech/但最多只能识别 100 个字符。如果我给出超过 100 个字符的长段落,则会显示错误。
演讲还应保存为wav或mp3文件
java.io.FileNotFoundException: http://translate.google.com/translate_tts?q=Some%20JVMs%20put%20restrictions%20on%20the%20total%20amount%20of%20memory%20available%20on%20the%20heap%20If%20you%20are%20getting%20to.%20Some%20JVMs%20put%20restrictions%20on%20the%20total%20amount%20of%20memory%20available%20on%20the%20heap%20If%20you%20are%20getting%20to&tl=en
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at com.gtranslate.Audio.getAudio(Audio.java:34)
at googl.STT.main(STT.java:25)
Exception in thread "main" java.lang.NullPointerException: in
at javazoom.jl.decoder.Bitstream.<init>(Unknown Source)
at javazoom.jl.player.Player.<init>(Unknown Source)
at javazoom.jl.player.Player.<init>(Unknown Source)
at com.gtranslate.Audio.play(Audio.java:39)
at googl.STT.main(STT.java:42)
有什么方法可以更正此错误或建议我一个可以在 Java 中使用的良好的开源文本到语音 API。
最佳答案
你可以很容易地分割你的字符串,并像这样把字符串分成 block :
String longString;
...
Audio audio = Audio.getInstance();
InputStream sound;
String[] chunks = longString.split(" ");
for(int i = 0; i < chunks.length; i++){
sound = audio.getAudio(chunks[i], Language.ENGLISH);
audio.play(sound);
}
现在,出于演示目的,我使用空格来拆分字符串。
关于Java 文本转语音 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26610467/