Java 文本转语音 API

标签 java text-to-speech

我想在我的项目中实现文本到语音的实现,因为我使用了 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/

相关文章:

java - ThreadLocal init 上的 FindBugs 警告

java - 数组有时无法按预期工作

java - 文本到语音 android 在 Activity 可见时输出语音

vbscript - 如何在 VBScript 中将 SAPI 文本保存为语音文件?

java - 提高 HTTPClient 连接 Android 的速度

java - 并行流将项目添加到同一数组

java - 使用 camel rest-dsl 相互调用

ios - 文本到语音转换

java - 将数据从 Activity 类传递到非 Activity 类而不离开当前 Activity ?

text-to-speech - 通用文本转语音语音