0

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

我已阅读所有这些消息:

如何在 FreeTTS 中改变声音 - Java

freetts - 文本到语音设置 mbrola voice com.sun.speech.freetts.ProcessException:处理话语:

带有 FreeTTS 的 MBROLA 声音 - Windows

FreeTTS mbrola 无法找到路径

如何在 FreeTTS 中改变声音 - Java

还有这个

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

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

1.- 首先我阅读 Freetts 文档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.- 导入罐子

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 不同?我需要遵循哪些步骤来配置新声音?

4

1 回答 1

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 或类似的东西)并将其中的 META-INF 文件夹替换为原始 mbrola jar 文件的 META-INF 文件夹。

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

我希望这个对你有用。

莫里茨

于 2015-04-27T13:56:47.297 回答