我使用Java 6运行Ubuntu 10.10并且无法获取FreeTTS来输出任何音频.我现在已经在3台不同的计算机上试过它,甚至要求我的一个伙伴在他的Ubuntu PC上试用它并且他遇到了同样的问题.绝对没有显示错误,在获得MBROLA后我甚至不再收到关于没有检测到MBROLA声音的警告.等等等等等等..
使用同一台计算机,我运行了一个虚拟盒并启动了Windows XP,我实际上能够在运行HelloWorld.jar和TTSHelloWorld.jar时获得音频,但是当我尝试输入自己的文本时,freetts.jar仍然是静默的.
我使用的命令.
java -jar lib/freetts.jar -text你好
当我按下Enter键时,它启动并用来给我丢失的MBROLA警告信息,但现在它只是坐在那里直到我按CTRL-C来阻止它.
我不明白我做错了什么以及为什么没有其他人遇到这个问题,当我在每台计算机上展示它时,它在Windows上有所作为.谁能帮我?
谢谢,
约翰
我正在尝试在html5中使用语音合成来用阿拉伯语讲话,但是它不起作用.我运行以下脚本来检查chrome支持的语言,而阿拉伯语不是其中之一.
window.addEventListener("DOMContentLoaded", function () {
if (window.speechSynthesis != undefined) {
document.getElementById("playback").addEventListener("click", function () {
var stimmen = window.speechSynthesis.getVoices();
for (var i = 0; i < stimmen.length; i++) {
console.log("Voice " + i.toString() + " " + stimmen[i].name);
}
}, false)
}
}, false)
Run Code Online (Sandbox Code Playgroud)
这是我用过的脚本
var msg = new SpeechSynthesisUtterance();
msg.text = '????? ????? ???????';
msg.lang = 'ar-SA';
window.speechSynthesis.speak(msg);
Run Code Online (Sandbox Code Playgroud)
有没有办法在阿拉伯语中安装语音/语言以使此功能正常工作.如果没有,任何人都可以引导我为网站嵌入文本到语音服务,它必须支持阿拉伯语吗?或者任何可以做到的事情?我已经联系了readpeech,但他们的价格高于我的预算
我正在使用freeTTS库将文本转换为语音.我可以使用这个库编写代码,我可以使用以下代码播放特定文本的语音:
Voice voice = VoiceManager.getInstance().getVoice("kevin16");
if (voice != null) {
voice.allocate();
}
voice.speak("Hello world");
Run Code Online (Sandbox Code Playgroud)
当tts lib完成说话过程时,是否有一种方法可以获得回调?
我写了一个小程序,它应该简单地用 Java 进行文本到语音转换。
我的班级看起来像这样:
import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;
public class TalkResource {
private static final String VOICENAME_kevin = "kevin16";
private final String text; // string to speech
public TalkResource(String text) {
this.text = text;
}
public void speak() {
Voice voice;
VoiceManager voiceManager = VoiceManager.getInstance();
voice = voiceManager.getVoice(VOICENAME_kevin);
voice.allocate();
String newText = "example";
voice.speak(newText);
}
}
Run Code Online (Sandbox Code Playgroud)
我很确定语法(和东西)是正确的,但我voice
的总是null
.
我假设“kevin16”没有找到,也没有包含在项目中,但我根本不知道如何向我的项目添加任何声音。为了获取依赖项,我使用maven
.
<dependency>
<groupId>net.sf.sociaal</groupId>
<artifactId>freetts</artifactId>
<version>1.2.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
一切都在那里,除了声音。根据我的阅读,我认为“kevin16”应该包含在 FreeTTS 中。任何想法如何继续?如何添加语音?我也发现了一些关于MBROLA
,但这让我更加不清楚:/
谢谢你的帮助。
所以我正在处理文本到语音。我需要让它在特定线路上播放(通过我的电视而不是通过默认耳机)。
我设法阅读了设备并抓住了正确的行
static void printAllMixerNames() {
for(Mixer.Info info : AudioSystem.getMixerInfo()) {
System.out.println(info.getName());
}
}
Run Code Online (Sandbox Code Playgroud)
但我如何实际设置播放哪条线?
谢谢!
编辑*我正在使用 FreeTTS
在FreeTTS的Java程序中使用MBROLA语音...
我正在研究一个简单的Java 文本到语音程序.我决定使用FreeTTS,但声音并不是我想的,而且我还是想用一个女声.所以我开始环顾四周,并决定使用MBROLA来改变我的文本到语音转换程序的声音.
我读到"FreeTTS可以使用MBROLA语音",但我在各处搜索,找不到如何设置MBROLA的明确指南,以及需要哪些文件.MBROLA上有许多论坛与FreeTTS一起工作,但似乎没有人知道他们在做什么.
所以问题:
我尝试在我的java程序中使用FreeTTS(来自https://freetts.sourceforge.io/docs/index.php),但收到此错误:java.lang.ClassCastException: com.sun.speech.freetts.en.us.cmu_time_awb.AlanVoiceDirectory cannot be cast to com.sun.speech.freetts.VoiceDirectory
我尝试将免费 TTS jar 文件重新添加到我的项目中,这是我的代码:
import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;
public class TextToSpeech {
//String voiceName = "kevin16";
VoiceManager freeVM;
Voice voice;
public TextToSpeech(String words) {
freeVM = VoiceManager.getInstance();
voice = VoiceManager.getInstance().getVoice("kevin16");
if (voice != null) {
voice.allocate();//Allocating Voice
}
try {
voice.setRate(190);//Setting the rate of the voice
voice.setPitch(150);//Setting the Pitch of the voice
voice.setVolume(3);//Setting the volume of the voice
SpeakText(words);// Calling speak() method
} catch (Exception e1) {
e1.printStackTrace();
}
} …
Run Code Online (Sandbox Code Playgroud) 首先,如果重要的话我会使用Ubuntu linux.
我有一个基于FreeTTS和JSAPI(Java Speech API)的简单项目构思
我已经下载并解压缩FreeTTS并运行他们的构建脚本.然后尝试编译我的代码将lib目录中所需的几个jar链接到类路径中,如下所示:
javac -cp /home/travis/Desktop/freetts-1.2/lib/jsapi.jar:/home/travis/Desktop/freetts-1.2/lib/freetts.jar HelloUnleashedReader.java
Run Code Online (Sandbox Code Playgroud)
然后编译成java字节码就好了.但是,当我跑:
java HelloUnleashedReader
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/speech/EngineModeDesc
Run Code Online (Sandbox Code Playgroud)
关于这个问题的任何帮助将不胜感激,因为网络周围有许多网站讨论让它工作的问题,但讨论解决方案的问题并不多.
有没有办法在Java中编写语音识别程序?
我知道有很多技术,我发现freetts看起来很舒服,虽然我成功地编写了一个文本到语音的程序,但没有找到任何语音识别参考.
在这件事上有没有人提到我?
提前致谢