Java FreeTTS 缺少语音

Das*_*ffe 5 java maven freetts

我写了一个小程序,它应该简单地用 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,但这让我更加不清楚:/

谢谢你的帮助。

uts*_*eep 6

我有完全相同的问题。当我试图打电话时,我得到的名单是空的voiceManager.getVoices()。问题是,freetts.voices系统属性未设置。因此,添加以下行解决了我的问题:

System.setProperty("freetts.voices", "com.sun.speech.freetts.en.us.cmu_us_kal.KevinVoiceDirectory");
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用kevinkevin16声音。

希望这可以帮助。