如何为MBROLA添加新语音 - FreeTTS

时间:2015-01-14 08:31:44

标签: java freetts mbrola

我花了几天的时间尝试在MBROLA和FreeTTS的项目中添加us1,us2和us3的不同声音。我在Windows(64位)上使用Eclipse

我已阅读所有这些消息:

How to change voice in FreeTTS - Java

freetts - text to speech setting mbrola voice com.sun.speech.freetts.ProcessException: Processing Utterance:

MBROLA voices with FreeTTS - Windows

FreeTTS mbrola not able to find path

How to change voice in FreeTTS - Java

和其他

http://sourceforge.net/p/freetts/discussion/137669/thread/848a09ab

这些是我已经完成的步骤:

1.-首先我读了Freetts docs http://freetts.sourceforge.net/docs/index.php#download_and_install

2.-我已经下载了

freetts-1.2.2-src.zip and freetts-1.2.2-bin.zip

3.-我创建了新的Eclipse项目,并添加了

freetts-1.2.2-src\freetts-1.2.2\demo\freetts\HelloWorld\FreeTTSHelloWorld.java

4.-导入jar

freetts-1.2.2-bin\freetts-1.2\lib\freetts.jar

运行时,在控制台中我得到

All voices available:
System property "mbrola.base" is undefined.  Will not use MBROLA voices.
    alan (time domain)
    kevin (general domain)
    kevin16 (general domain)

Using voice: kevin16
System property "mbrola.base" is undefined.  Will not use MBROLA voices.

然后我下载了MBROLA PC / DOS二进制文件

mbr301d.zip 

来自http://tcts.fpms.ac.be/synthesis/mbrola.html

我在

解压缩了
C:\Users\Usuario\Downloads\mbr301d

并添加了us1,us2和us3的声音。文件夹结构是:

mbr302a (folder)
us1 (folder)
us2 (folder)
us3 (folder)
mbrola.exe
readme.txt

现在我设置了mbrola.base

System.setProperty("mbrola.base", "C:\\Users\\Usuario\\Downloads\\mbr301d");

当我再次跑步时:

All voices available:
    alan (time domain)
    kevin (general domain)
    kevin16 (general domain)
    mbrola_us1 (general domain)
    mbrola_us2 (general domain)
    mbrola_us3 (general domain)

Using voice: mbrola_us1 

一切都与那些声音完美配合。但我需要与西班牙语合作。然后我从MBROLA网站下载

es1: Spanish Male (2.1Mb)    Alistair Conkie
es2: Spanish Male (5.1Mb)    TCC Communications Corp.
es3: Spanish Female (1.9Mb)    Universidad Carlos III de Madrid

并解压缩我的MBROLA文件夹

mbr302a (folder)
us1 (folder)
us2 (folder)
us3 (folder)
es1 (folder)
es2 (folder)
es3 (folder)
mbrola.exe
readme.txt

但是当我再次跑步时,没有找到。我得到了比以前更多的声音。

有没有人用不同的声音运行mbrola而不是us1,us2和us3?配置新语音需要遵循哪些步骤?

1 个答案:

答案 0 :(得分:0)

我现在也正在试验mbrola的声音,并尝试添加一些德语和日语的声音,这些声音也没有用。经过一段时间的搜索,我想我发现了问题。在lib文件夹(包含freetts.jar的文件夹)中,还有一个mbrola.jar文件。在MbrolaVoiceDirectory.class中,它注册所有mbrola语音,并且只有us1,us2和us3被注册。现在我正在尝试编辑此文件,再次编译它,然后用新文件替换mbrola.jar。我会告诉你它是否有用。

编辑:它工作了一半我认为^^我现在可以加载德语或日语或任何其他声音但不知何故我真的不能让它说些什么。也许是因为我正在用相同的英文文本尝试不同的声音。 以下是我使用其他声音所做的快速列表:

  1. 在lib文件夹中反编译mbrola.jar

  2. 编辑包de.dfki.lt.freetts.en.us中的MbrolaVoiceDirectory.java文件。我将代码更改为:http://pastebin.com/aUxw3FDv这会自动搜索语音文件夹,并且它应该始终适用于每种语言。只需将带有语言标识符的文件夹(例如“us”或“de”或“es”)放在mbola.base文件夹中的数字

  3. 然后我将它重新编译为一个不可运行的jar,打开jar(使用WinRaR或类似的那样)并用原始mbrola jar文件的META-INF文件夹替换那里的META-INF文件夹。 / p>

  4. 这是加载声音的jar文件:https://www.dropbox.com/s/i51mazz1wv39pn2/mbrola.jar?dl=0

    我希望它适合你。

    Moritz的