使用MaryTTS嵌入时如何使用其他声音?

时间:2016-03-11 04:53:00

标签: java marytts

我想在我的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嵌入时如何使用其他声音?

1 个答案:

答案 0 :(得分:3)

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

这是the list of all available voices。因此,假设您要添加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中查看。通常是知识共享,但根据语音许可,它可能会或可能不会在商业上使用。