我正在使用FreeTTS在我的java程序中说出一些文字。我想在其中嵌入MBROLA音色。我跟着the instructions,但我被困在这里:
为MBROLA启用FreeTTS支持
要为MBROLA启用FreeTTS支持,只需将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 IDE,我也有'FreeTTSHelloWorld.jar'文件
简而言之,我正在寻找一个清晰的解释,如何在Java中为MBTOLA音色库添加MBROLA音色(对于新手)......
你怎么说?我应该考虑将我的操作系统改为Ubuntu for Java Development ???
答案 0 :(得分:4)
进入终端:-)这意味着你需要从命令行运行你的程序,here是很好的教程如何做到这一点。
但我认为也可以从NetBeans运行,转到项目的Properties
,转到Run
并将-Dmbrola.base=/home/jim/mbrola
粘贴到VM options
。您当然需要在类路径上FreeTTSHelloWorld.jar
(您可以通过Properties -> Libraries -> Add JAR/Folder
添加它)。
答案 1 :(得分:1)
-D用于为java程序提供系统属性。所以你需要在运行java程序时提供它:
java -Dmbrola.base=/home/jim/mbrola -jar bin/FreeTTSHelloWorld.jar mbrola_us1 yourJavaClass
如果您使用的是诸如eclipse之类的IDE,那么您可以通过以下方式执行相同操作:
运行 - >运行配置,选择项目,第二个选项卡:“参数”。 顶部框用于您的程序,底部框用于VM参数,例如 -Dmbrola.base = / home / jim / mbrola -jar bin / FreeTTSHelloWorld.jar mbrola_us1
答案 2 :(得分:0)
你有没有试过像:
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();
}