回答上述问题:
1.需要下载哪些文件?
- 的FreeTTS 所有的库 (1.2.2的FreeTTS斌) - 这里下载
- MBROLA zip文件夹 mbr301d.zip
- 声音 可在上找到MBROLA网站
1.1 FreeTTS 库 (位于freetts-1.2.2-bin / freetts-1.2 / lib中) :
- cmu_time_awb.jar
- cmu_us_kal.jar
- cmudict04.jar
- cmulex.jar
- cmutimelex.jar
- en_us.jar
- freetts.jar
- freetts-jsapi10.jar
- mbrola.jar
1.2 MBROLA zip文件夹将包括:
- 可执行文件
- mbr302a (文件夹)
- readme.txt
1.3 语音 是压缩文件夹,其中包括一个名为“ us1 ”或“ af1 ”等的单个文件夹。
2.将这些步骤包括到我的程序中的步骤?
注: 我的计算机上也安装了MBROLA
Tooklit,但是我不确定它是否对程序有影响,但我怀疑不会。编辑:我已经测试过,看看是否需要MBROLA工具包与FreeTTS一起运行MBROLA,事实证明它不是必需的。
- 提取freetts-1.2.2-bin
- 将库复制到您的项目中,并包含在构建路径中
- 解压缩mbr301d.zip文件夹
- 将’mbr301d’重命名为’mbrola’
- 将声音解压缩到名为“ mbrola”的文件夹
完成此操作后,您的mbrola文件夹应如下所示:
- [mbr302a]- 文件夹
- [us1]- 文件夹(名称取决于您下载的语言)
- mbrola.exe- 文件
- readme.txt- 文件
您可以将所有语言都放在此文件夹中,而它们只会从Java程序中调用。
3.使用MBROLA语音的简单FreeTTS示例?
我已经看到很多人得到这个错误:
System property "mbrola.base" is undefined. Will not use MBROLA voices.
该
mbrola.base指的是你的mbrola文件位于您的计算机上,并没有财产被指向到正确的位置,您将收到此错误。
对于收到此错误的NON-MBROLA用户: 如果仅使用FreeTTS,只需从引用的库中删除mbrola.jar。
要设置
mbrola.base属性,请使用:
System.setProperty("mbrola.base", "C:/Path/to/your/mbrola")以下是在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!"); }}MBROLA和FreeTTS现在应该一起工作!此代码是直接从我的计算机复制的,并经过测试,然后再放在此处。



