gpt4 book ai didi

java - 如何使用内置的 Java tts?

转载 作者:行者123 更新时间:2023-11-30 04:44:01 25 4
gpt4 key购买 nike

我正在尝试使用内置于语音中的java,但是每当我尝试使用它时,当我调用synth.allocate 时,它​​都会给我一个空指针异常。我已经查看了在线示例,但仍然遇到相同的错误,而且我看不出我做错了什么

JButton button = new JButton();
button.addActionListener(new ActionListener(){

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
try {
Synthesizer synth = Central.createSynthesizer(
new SynthesizerModeDesc(Locale.ENGLISH));

synth.allocate();
synth.resume();

synth.speakPlainText("Hello, world!", null);

synth.waitEngineState(Synthesizer.QUEUE_EMPTY);

synth.deallocate();
} catch (Exception e) {
e.printStackTrace();
}
}
});

最佳答案

您的系统可能没有安装 Locale.ENGLISH 合成器。这反过来会导致 Central.createSynthesizer() 返回 null,从而导致在 synth.allocate() 处出现空指针异常。

在调用 Central.createSynthesizer() 之前,您可能需要调用 Central.availableSynthesizers() 来查找系统上安装了哪些合成器。

此外,作为快速测试,您可以尝试使用 Locale.US 而不是 Locale.ENGLISH,看看是否有效……这只是一个猜测。

我看到 FreeTTS (http://freetts.sourceforge.net/docs/index.php) 被描述为 Java Speech 接口(interface)的实现。安装这可能会有所帮助。

关于java - 如何使用内置的 Java tts?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11530296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com