Festival (Русский)
Festival — это многоязычная система синтеза речи, разработанная CSTR (Centre for Speech Technology Research). Она предлагает основу для построения систем синтеза речи, а также включает примеры различных модулей. В целом, она предлагает преобразование текста в речь через несколько API: на уровне командной оболочки, через интерпретатор команд Scheme, как библиотека C++, из Java и интерфейс Emacs. Festival является мультиязычным (в настоящее время это британский английский, американский английский, итальянский, чешский и испанский, другие языки доступны в прототипе).
Установка
Установите пакет festival и какие-нибудь голосовые пакеты:
- festival-english — британский и американский английский языки;
- festival-us — американские мужчина/женщина и шотландский мужчина;
- festvox-ruAUR — русский.
Больше голосовых пакетов есть в AUR.
Настройка
Глобального файла конфигурации в /etc/
нет, но можно создать пользовательский файл ~/.festivalrc
, или редактировать непосредственно /usr/share/festival/festival.scm
. Оба эти файла являются файлами Scheme, используют синтаксис Scheme и перезапускаются при каждом запуске festival.
Звуковой сервер
Вы должны выбрать звуковой сервер (PulseAudio или ALSA). Следующие настройки позволяют Festival работать, если уже воспроизводится звук из других источников.
Для PulseAudio:
(Parameter.set 'Audio_Required_Format 'aiff) (Parameter.set 'Audio_Method 'Audio_Command) (Parameter.set 'Audio_Command "paplay $FILE --client-name=Festival --stream-name=Speech")
Для ALSA: [1]
(Parameter.set 'Audio_Method 'Audio_Command) (Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")
Голоса
Arch разделяет набор официальных голосов на festival-us (рекомендуемый) и festival-english. В AUR есть и другие, находящиеся в разном состоянии поддержки, которые могут работать или не работать в данный момент.
Чтобы узнать, какие голоса в настоящее время установлены и какой из них используется по умолчанию, используйте #Интерактивный режим (REPL scheme). Чтобы навсегда изменить голос по умолчанию, добавьте такую строку в свой файл настроек (пример для русского голоса из пакета festvox-ruAUR):
(set! voice_default voice_msu_ru_nsh_clunits)
Добавьте её в файл /usr/share/festival/siteinit.scm
, чтобы задать новый голос по умолчанию для всех пользователей.
Ручная установка голосов
Вы также можете получить голоса напрямую из Festvox [2] [3]. Файлы для загрузки различных голосов имеют вид "festvox_*.tgz". Чтобы их задействовать, необходимо распакованный архив переместить в каталог, содержащий голос. На данный момент для Arch подходящей директорией является /usr/share/festival/voices/
с соответствующей подкаталогом для голоса из 'festvox'.
Поддержка русского языка
Стандартная установка Festival не знает про существование русского языка. Можно просто прописать использование голоса msu_ru_nsh_clunits
из пакета festvox-ruAUR, но если вы хотите, чтобы опция --language russian
тоже работала, то можно отредактировать файл /usr/share/festival/languages.scm
.
В начале файла допишите:
(define (language_russian) "(language_russian) Set up language parameters for Russian." (set! male1 voice_msu_ru_nsh_clunits) (male1) (Parameter.set 'Language 'russian) )
и в этом же файле после строки (define (select_language language)
и перед любой строкой ((equal?
добавьте:
((equal? language 'russian) (language_russian))
Для проверки выполните команду:
$ echo "Арч самый лучший. Я гарантирую!" | festival --tts --language russian
Использование
Использование файлов в качестве ввода или вывода
Чтение текста из файла:
$ festival --tts текстовый_файл
Чтение выделенного текста:
$ xsel | festival --tts
Преобразование текстового файла в mp3-файл:
$ text2wave текстовый_файл | lame - текст.mp3
Создание аудиофайла с указанными голосом:
$ text2wave -o вывод.wav -eval '(voice_msu_ru_nsh_clunits)' текстовый_файл
Интерактивный режим
Festival имеет командную строку, которая вы можете использовать для тестов. Для её запуска введите команду festival
. Несколько примеров:
Посмотреть голос, используемый по умолчанию:
voice_default
Список доступных голосов:
(voice.list)
Установить голос:
(voice_msu_ru_nsh_clunits)
Произнести:
(SayText "Арч делает меня счастливым")
Список доступных команд:
help
Выход - ctrl+d или набрать:
(quit)
Решение проблем
Can't open /dev/dsp
Если festival возвращает следующую ошибку:
Linux: can't open /dev/dsp
Смотрите раздел #Звуковой сервер выше.
Воспроизведение через alsa с неправильной скоростью
Если решение выше даёт скрипучий (писклявый) голос, можно попробовать следующее:
(Parameter.set 'Audio_Method 'Audio_Command) (Parameter.set 'Audio_Command "aplay -Dplug:default -f S16_LE -r $SR $FILE")
Команда aplay не найдена
Установите пакет alsa-utils.
Завершение процесса festival не останавливает аудио
Завершение фонового процесса festival не остановит продолжение воспроизведения звука.
Чтобы остановить воспроизведение звука, нужно завершить дочерние процессы audsp
. Это можно сделать с помощью команды:
$ pkill -v audsp
Сервер
Для использования Festival с Speech dispatcher (например, для режима чтения в Firefox) установите festival-freebsoft-utilsAUR.