首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改TTS for Java的语音

如何更改TTS for Java的语音
EN

Stack Overflow用户
提问于 2014-01-03 13:48:14
回答 3查看 3.3K关注 0票数 1

我正在使用FreeTTS在我的java程序中说出一些文本。我想把MBROLA的声音嵌入其中。我跟踪了指示,但我被困在这里:

为MBROLA启用FreeTTS支持 要启用FreeTTS对MBROLA的支持,只需将mbrola/mbrola.jar复制到lib/mbrola.jar。然后,每当您运行任何FreeTTS应用程序时,将"mbrola.base“目录指定为系统属性: java -Dmbrola.base=/home/jim/mbrola -jar bin/FreeTTSHelloWorld.jar mbrola_us1

在教程中,他们在cmd中键入这一行,让jar文件以他们所告诉的声音(us1)说话,但我要做的是,我已经有了一个java程序,我想要更改它所讲的声音。怎么做?

我试图更改vm选项,但这并没有帮助。

注意:我正在使用Netbeans,我还有文件“FreeTTSHelloWorld.jar”

因此,简而言之,我正在寻找一个清晰的解释,说明如何在java(对于新手)的FreeTTS库中继续/添加MBROLA的声音.

你说呢?我是否应该考虑将我的操作系统改为Ubuntu开发?

EN

回答 3

Stack Overflow用户

发布于 2014-01-03 13:52:02

进入终端:-)这意味着您需要从命令行运行您的程序,这里是一个很好的教程。

但我认为它也可以从NetBeans运行,转到项目的Properties,转到Run并将-Dmbrola.base=/home/jim/mbrola粘贴到VM options中。当然,类路径上需要FreeTTSHelloWorld.jar (您可以通过Properties -> Libraries -> Add JAR/Folder添加它)。

票数 4
EN

Stack Overflow用户

发布于 2014-01-03 13:49:55

-D用于为您的java程序提供系统属性。因此,您需要在运行java程序时提供它:

代码语言:javascript
复制
java -Dmbrola.base=/home/jim/mbrola -jar bin/FreeTTSHelloWorld.jar mbrola_us1 yourJavaClass

如果您正在使用IDE (如eclipse ),则可以通过以下方式进行相同的操作:

运行->运行配置,选择项目,第二个选项卡:“参数”。顶部框用于程序,底部框用于VM参数,例如-Dmbrola.base=/home/jim/mbrola -jar bin/FreeTTSHelloWorld.jar .-jar mbrola_us1

票数 1
EN

Stack Overflow用户

发布于 2014-01-05 15:56:36

你有没有尝试过这样的方法:

代码语言:javascript
复制
public static void main(String[] args) {
    System.setProperty("mbrola.base", "your/mbrola/base/directory");
    VoiceManager voiceManager = VoiceManager.getInstance();
    String voice = "mbrola_us1";
    Voice helloVoice = voiceManager.getVoice(voice);
    if (helloVoice == null) {
        Voice[] availableVoices = voiceManager.getVoices();
        List<String> voiceList = new ArrayList<>();
        for (Voice v : availableVoices) voiceList.add(v.getName());
        System.out.println("Not a valid voice: " + voice + "\nValid voices: " + voiceList);
        return;
    }
    helloVoice.allocate();

    /* Synthesize speech. */
    helloVoice.speak("Thank you for giving me a voice. " + "I'm so glad to say hello to this world.");

    /* Clean up and leave. */
    helloVoice.deallocate();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20905123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档