Mad*_*lie 3 java eclipse text-to-speech freetts
在FreeTTS的Java程序中使用MBROLA语音...
我正在研究一个简单的Java 文本到语音程序.我决定使用FreeTTS,但声音并不是我想的,而且我还是想用一个女声.所以我开始环顾四周,并决定使用MBROLA来改变我的文本到语音转换程序的声音.
我读到"FreeTTS可以使用MBROLA语音",但我在各处搜索,找不到如何设置MBROLA的明确指南,以及需要哪些文件.MBROLA上有许多论坛与FreeTTS一起工作,但似乎没有人知道他们在做什么.
所以问题:
Mad*_*lie 12
上述问题的答案:
1.需要下载哪些文件?
1.1 FreeTTS库(在freetts-1.2.2-bin/freetts-1.2/lib中找到):
1.2 MBROLA zip文件夹包括:
1.3 音色是压缩文件夹,包含名为" us1 "或" af1 "等的单个文件夹.
2.将这些纳入我的计划的步骤?
注意:我的计算机上也安装了MBROLA Tooklit,但我不确定它是否对程序有影响,但我怀疑它没有.编辑:我已经测试了MBROLA工具包是否需要与FreeTTS一起运行MBROLA,结果证明它不需要.
完成此操作后,您的mbrola文件夹应如下所示:
您可以将所有语言放在此文件夹中,只需从Java程序中调用它们即可.
3.使用MBROLA语音的简单FreeTTS示例?
我见过很多人都会收到这个错误:
System property "mbrola.base" is undefined. Will not use MBROLA voices.
Run Code Online (Sandbox Code Playgroud)
该mbrola.base
指的是你的mbrola文件位于您的计算机上,并没有财产被指向到正确的位置,您将收到此错误.
对于出现此错误的NON-MBROLA用户:如果您只使用FreeTTS,只需从引用的库中删除mbrola.jar
要设置mbrola.base
属性,请使用:
System.setProperty("mbrola.base", "C:/Path/to/your/mbrola")
Run Code Online (Sandbox Code Playgroud)
下面是在FreeTTS程序中使用MBROLA语音的简单示例.请注意,必须先执行上述步骤才能执行此操作.如果未设置基础,只需将语音名称更改为"mbrola_us1"即可生效!
package com.madmob.test;
import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;
public class TestTTS {
VoiceManager freettsVM;
Voice freettsVoice;
public TestTTS(String words) {
// Most important part!
System.setProperty("mbrola.base", "C:/mbrola");
freettsVM = VoiceManager.getInstance();
// Simply change to MBROLA voice
freettsVoice = freettsVM.getVoice("mbrola_us1");
// Allocate your chosen voice
freettsVoice.allocate();
sayWords(words);
}
public void sayWords(String words) {
// Make her speak!
freettsVoice.speak(words);
}
public static void main(String [] args) {
new TestTTS("Hello there! Now M BROLA and Free T T S work together!");
}
}
Run Code Online (Sandbox Code Playgroud)
MBROLA和FreeTTS现在应该合作!此代码是从我的计算机上直接复制的,并且在将其放入此处之前已经过测试.
归档时间: |
|
查看次数: |
13386 次 |
最近记录: |