воскресенье, 23 сентября 2018 г.

Практика использования синтезатора речи Festival в Ubuntu Linux 18.04

Festival - это система синтеза речи, которая поддерживает множество языков и работает под Linux. Иначе говоря, "говорилка". Разработана в Исследовательском Центре Речевых Технологий (CSTR) Эдинбургского университета. Собственно, кроме Festival других вменяемых "говорилок" для Linux я не встречал. Так что выбирать не приходится. Качество синтеза чуть хуже, чем у других синтезаторов речи под Windows или Android, но достаточно приемлемое, чтобы слушать. Русский язык поддерживается. Распространяется под свободной лицензией BSD, что несомненное преимущество перед платными аналогами.

В Ubuntu Linux 18.04 LTS установка теперь происходит без каких-либо проблем из основного репозитория:

sudo apt-get install festival festvox-ru

В прошлом приходилось самому "колдовать" с установкой и настройкой русского движка "msu_ru_nsh_clunits". Теперь такой проблемы нет. После установки мы получаем работоспособную систему.

Приведу некоторые команды, которыми я пользовался.

Запуск программы в терминале:

festival

Смена голосового движка:

festival> (voice_msu_ru_nsh_clunits) - Русский.

festival> (voice_kal_diphone) - Английский американский.

Произнести текст (смотрите, чтобы движок соответствовал вводимому языку):

festival> (SayText "say text")


festival> (SayText "произнести текст")

Вызвать справку:

festival> help

Выйти из программы:

festival> (quit)

Команды можно вводить и непосредственно из терминала.

Произнести текст из терминала:

festival -b '(SayText "say text")'

festival -b '(begin (voice_msu_ru_nsh_clunits) (SayText "сказать текст"))'

Прочитать текст из текстового файла в терминале:

festival -b '(begin (voice_msu_ru_nsh_clunits) (tts_file "/home/lookolovka/test.txt"))'

Внимание! Ударения в тексте можно указывать символом "+".

Можно создать аудиофайл из текста.

В формате wav (mono, 16 bit, 16000 Hz):

text2wave -eval '(voice_msu_ru_nsh_clunits)' ~/test.txt -o ~/test.wav

cat test.txt | text2wave > test.wav -eval '(voice_msu_ru_nsh_clunits)'

Можно самому задать битрейт wav-файла, например битрейт 8000 Hz:

cat test.txt | text2wave > test.wav -eval '(voice_msu_ru_nsh_clunits)' -F 8000

Источники полезной информации по теме:

Комментариев нет:

Отправить комментарий