Как добавить новый голос в MBROLA - FreeTTS
Несколько дней я пытался добавить разные голоса us1, us2 и us3 в проект с MBROLA и FreeTTS. Я работаю с Eclipse на Windows (64bit)
Я прочитал все эти сообщения:
Как изменить голос в FreeTTS - Java
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 новым файлом. Я скажу тебе, если это сработало.
РЕДАКТИРОВАТЬ: он работал наполовину, я думаю ^^ Теперь я могу загрузить немецкий или японский или любой другой голос, но почему-то я не могу позволить этому сказать что-то. Возможно, потому что я пробую разные голоса с одинаковым английским текстом. Вот краткий список того, что я сделал, чтобы использовать другие голоса:
Декомпилируйте mbrola.jar в папку lib
Отредактируйте файл MbrolaVoiceDirectory.java в пакете de.dfki.lt.freetts.en.us. Я изменил код на это: http://pastebin.com/aUxw3FDv Это автоматически ищет голосовые папки, и это должно работать все время для каждого языка. Просто поместите папку с идентификатором языка (например, "us" или "de" или "es"), а затем номер в папку mbola.base
Затем я перекомпилировал его в недоступный для запуска jar, открыл jar (с WinRaR или чем-то подобным) и заменил там папку META-INF на папку META-INF исходного файла jar mbrola.
А вот файл jar, который загружает голоса: https://www.dropbox.com/s/i51mazz1wv39pn2/mbrola.jar?dl=0
Я надеюсь, что это работает для вас.
Moritz