Festival (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Festival. Дата последней синхронизации: 28 января 2024. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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.

Смотрите также