Викия

Банк скриптов для голосового движка Festival Wiki

Начальные приготовления

13статей на
этой вики
Добавить новую страницу
Обсуждение3 Поделиться

Для начала нужно установить festival и русский голос.

Если у вас debian/ubuntu, вы можете легко установить программу из репозитория. Для этого выполните

sudo apt-get install festival festvox-ru

festvox-ru установит русский голосовой движок (весит около 250 мегабайт).

После установки можете проверить работу, выполнив из консоли


$ festival

Нас встретит приглашение на ввод. В festival встроен функциональный схемо-подобный язык.

Чтобы подать команду разговора напишите


festival> (SayText "Hello")

Вы должны услышать Hello из динамиков вашего компьютера.

Чтобы выйти из программы, напишите (quit). Сразу сделаю оговорку, что я никогда не посылаю текст напрямую на разговор, так как бывает, что вылезают баги и фестиваль говорит что-то ужасное. Если же использовать утилиту text2wave и генерировать wave-файлы, а потом их воспроизводить, то никаких проблем не возникает.

Теперь давайте создадим отдельную папку для разных скриптов, например


$ mkdir -p ~/scripts/festival/data/

Папка data понадобится нам для хранения различной временной и не очень информации.

Теперь вы можете складывать в ~/scripts/festival/ все скрипты, которые вы напишете.

Напишем небольшой скрипт, который поможет нам в будущем упростить вывод текста на festival.

#!/bin/bash
# http://ru.festivalspeaker.wikia.com

echo "$1" | text2wave -o /home/username/scripts/festival/data/saytext_ru.wav -eval "(voice_msu_ru_nsh_clunits)"
aplay /home/username/scripts/festival/data/saytext_ru.wav > /dev/null 2>&1

Конечно, замените username на свой логин. Использовать тильду (~) в качестве домашней папки в скриптах не хорошо, так как если вы захотите запустить его даже от рута (хотя лучше этого не делать - как никак скрипты в домашней папке хранятся, мало ли что), то оболочка просто не найдет указанного адреса.

Сохраните с именем saytext_ru.sh и дайте ему прав выполнения


$ chmod u+x saytext_ru.sh

Параметр -eval "(voice_msu_ru_nsh_clunits)" указывает программе использовать русский голос (именно так он и называется - msu_ru_nsh_clunits).

Аналогично создайте saytext_en.sh, просто убрав параметр -eval "(voice_msu_ru_nsh_clunits)" у text2wave.

Проверьте работоспособность скриптов выполнив

$ ./saytext_ru.sh "Привет мир"
$ ./saytext_en.sh "Hello world"

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Викия-сеть

Случайная вики