我正在使用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开发?
发布于 2014-01-03 13:52:02
进入终端:-)这意味着您需要从命令行运行您的程序,这里是一个很好的教程。
但我认为它也可以从NetBeans运行,转到项目的Properties,转到Run并将-Dmbrola.base=/home/jim/mbrola粘贴到VM options中。当然,类路径上需要FreeTTSHelloWorld.jar (您可以通过Properties -> Libraries -> Add JAR/Folder添加它)。
发布于 2014-01-03 13:49:55
-D用于为您的java程序提供系统属性。因此,您需要在运行java程序时提供它:
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
发布于 2014-01-05 15:56:36
你有没有尝试过这样的方法:
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();
}https://stackoverflow.com/questions/20905123
复制相似问题