Jump to content

# Festival (Русский)

3 languages

- English
- 日本語
- Português

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

Ссылки по теме

- Speech dispatcher

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.

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

- Руководство Festival
- List of applications/Other#Speech synthesizers
- Банк скриптов для голосового движка Festival
- Учим компьютер говорить по-русски / Festival скрипты
- Говорящий пингвин. Учим Linux говорить и слушать

Categories:

- Accessibility (Русский)
- Multimedia (Русский)