Как добавить новый голос в MBROLA - FreeTTS

Несколько дней я пытался добавить разные голоса us1, us2 и us3 в проект с MBROLA и FreeTTS. Я работаю с Eclipse на Windows (64bit)

Я прочитал все эти сообщения:

Как изменить голос в FreeTTS - Java

freetts - настройка преобразования текста в речь mbrola voice com.sun.speech.freetts.ProcessException: обработка высказывания:

MBROLA голоса с FreeTTS - Windows

FreeTTS mbrola не может найти путь

Как изменить голос в FreeTTS - Java

и этот другой

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

Вот шаги, которые я сделал:

1.- Сначала я прочитал документы Freetts http://freetts.sourceforge.net/docs/index.php

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 для ПК /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 ответ

Я также экспериментирую с голосами mbrola прямо сейчас и пытаюсь добавить несколько немецких и японских голосов, которые также не работают. После некоторого поиска я думаю, что нашел проблему. В папке lib (в папке, содержащей freetts.jar) также находится файл mbrola.jar. В классе MbrolaVoiceDirectory.class он регистрирует все голоса mbrola и там регистрируются только us1, us2 и us3. Прямо сейчас я пытаюсь отредактировать этот файл, скомпилировать его снова и затем заменить mbrola.jar новым файлом. Я скажу тебе, если это сработало.

РЕДАКТИРОВАТЬ: он работал наполовину, я думаю ^^ Теперь я могу загрузить немецкий или японский или любой другой голос, но почему-то я не могу позволить этому сказать что-то. Возможно, потому что я пробую разные голоса с одинаковым английским текстом. Вот краткий список того, что я сделал, чтобы использовать другие голоса:

  1. Декомпилируйте mbrola.jar в папку lib

  2. Отредактируйте файл MbrolaVoiceDirectory.java в пакете de.dfki.lt.freetts.en.us. Я изменил код на это: http://pastebin.com/aUxw3FDv Это автоматически ищет голосовые папки, и это должно работать все время для каждого языка. Просто поместите папку с идентификатором языка (например, "us" или "de" или "es"), а затем номер в папку mbola.base

  3. Затем я перекомпилировал его в недоступный для запуска jar, открыл jar (с WinRaR или чем-то подобным) и заменил там папку META-INF на папку META-INF исходного файла jar mbrola.

А вот файл jar, который загружает голоса: https://www.dropbox.com/s/i51mazz1wv39pn2/mbrola.jar?dl=0

Я надеюсь, что это работает для вас.

Moritz

Другие вопросы по тегам