2

我想在我的 Java 应用程序中使用嵌入的 MaryTTS。我已经下载了这些罐子并将它们放在我的类路径中。我可以成功运行这个测试:

    public static void main(String[] args) throws Exception {
        MaryInterface marytts = new LocalMaryInterface();
        Set<String> voices = marytts.getAvailableVoices();
        marytts.setVoice(voices.iterator().next());
        AudioInputStream audio = marytts.generateAudio("Hello world.");
        AudioPlayer player = new AudioPlayer(audio);
        player.start();
        player.join();
    }

问题是唯一可用的声音是cmu-slt-hsmm,这是有道理的,因为这是voice-我在类路径中唯一的 jar。但是,我找不到其他声音的其他罐子,这让我相信我做错了什么,因为 Mary GUI 可以很好地使用其他声音。

使用 MaryTTS embed 时如何使用其他声音?

4

1 回答 1

4

您需要找到或创建新的语音 jar 并将此语音 jar 添加到您的库中。MaryTTS 使用组件安装程序自己完成此操作,但我更喜欢从官方网站手动下载 jars。

这是所有可用声音的列表。因此,假设您要添加voice-dfki-spike-hsmm. 在中找到适当的名称marytts-components.xml和链接通常看起来像这样:http://mary.dfki.de/download/5.1/voice-dfki-spike-hsmm-5.1.zip. 现在您可以轻松地解压缩并将此声音放到您的项目库中,靠近 maryTTS 源。

演示

Set<String> voices = maryTTS.getAvailableVoices();
for(String v : voices){
    System.out.println("Voice available: " + v);
}

结果:

Voice available: cmu-slt-hsmm
Voice available: voice-dfki-spike-hsmm

如果您使用 maryTTS GUI,您可能已经在硬盘上保存了所有声音。本文可能会帮助您找到它们: http: //myrobotlab.org/content/marytts-multi-language-support

PS。TTS 声音本身有单独的许可证,所以不要忘记查看它marytts-components.xml。通常是知识共享,但取决于语音的许可,它可能会或可能不会用于商业用途。

于 2016-03-18T03:07:59.213 回答