# Festival (Русский)

Эта страница нуждается в сопроводителе

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Festival - это многоязычная система синтеза речи, разработанная CSTR (Centre for Speech Technology Research).

## Установка

Установите festival из официальных репозиториев. Кроме того, необходимо установить один или несколько голосовых пакетов festival-english, festival-us. Также для Festival доступны и другие голоса; некоторые из них вы можете найти в AUR.

Для проверки выполните команду:

    $ echo "This is an example. Arch is the best." | festival --tts

Если вы слышите то, что написано в примере, вы успешно установили TTS-систему. Если вы ничего не слышите, слышите какой-то странный звук или только начало предложения, смотрите раздел #Решение проблем.

## Настройка

Основной конфигурационный файл расположен в /etc, но рекомендуется создать пользовательский файл `~/.festivalrc`, или редактировать непосредственно `/usr/share/festival/festival.scm`.

### Использование со звуковым сервером

Для PulseAudio, добавить эти строки в конец файла `~/.festivalrc` или `/usr/share/festival/festival.scm`:

    (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, использовать эти строки вместо (source):

    (Parameter.set 'Audio_Method 'Audio_Command)
    (Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

### Голоса

Чтобы узнать, какие голоса в настоящее время установлены и какой из них используется по умолчанию, перейдите в оболочку фестиваля (представляющую схему REPL):

       $ festival

       Festival Speech Synthesis System 2.1:release November 2010
       Copyright (C) University of Edinburgh, 1996-2010. All rights reserved.

       clunits: Copyright (C) University of Edinburgh and CMU 1997-2010
       clustergen_engine: Copyright (C) CMU 2005-2010
       hts_engine:
       The HMM-based speech synthesis system (HTS)
       hts_engine API version 1.04 (http://hts-engine.sourceforge.net/)
       Copyright (C) 2001-2010  Nagoya Institute of Technology
                     2001-2008  Tokyo Institute of Technology
       All rights reserved.
       For details type `(festival_warranty)'
       festival> voice_default
       voice_cmu_us_slt_arctic_hts          ;;<-- THIS IS THE VOICE FESTIVAL SPEAKS WITH
       festival> default-voice-priority-list

       (kal_diphone                         ;;<-- THIS IS THE HARD-CODED LIST OF VOICES FESTIVAL CAME PRE-AWARE OF
        cmu_us_bdl_arctic_hts
        cmu_us_jmk_arctic_hts
        cmu_us_slt_arctic_hts
        cmu_us_awb_arctic_hts
        ked_diphone
        don_diphone
        rab_diphone
        en1_mbrola
        us1_mbrola
        us2_mbrola
        us3_mbrola
        gsw_diphone
        el_diphone)

       festival> (voice_                    ;;<-- PRESS TAB HERE TO SEE WHAT VOICES FESTIVAL HAS AVAILABLE
       voice_cmu_us_slt_arctic_hts     voice_kal_diphone               voice_nitech_us_slt_arctic_hts  voice_reset
       voice_default                   voice_nitech_us_clb_arctic_hts  voice_rab_diphone
       festival> (voice_cmu_us_slt_arctic_hts)
       cmu_us_slt_arctic_hts
       festival> (SayText "Arch makes me happy")
       #<Utterance 0x7fb5b8c423b0>
       festival>

### Установка голоса по умолчанию

Чтобы установить голос по умолчанию, добавьте следующую строку в конец вашего `~/.festivalrc`

    (set! voice_default voice_msu_ru_nsh_clunits)

You cannot set the voice with festival.scm; to set voices globally, set order of searched voices in `/usr/share/festival/voices.scm`.

#### Ручная установка голосов

Вы также можете получить голоса прямо из festvox.org. Файлы для загрузки различных голосов имеют вид "festvox_*.tgz". Чтобы их задействовать, необходимо распакованный архив переместить в каталог, содержащий голос. На данный момент для Arch подходящей директорией является `/usr/share/festival/voices/` с соответствующей подкаталогом для голоса из 'festvox'.

### Поддержка русского языка

В файл /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? language 'russian)
    (language_russian))

Для проверки выполните команду:

    $ echo "Арч самый лучший. Я гарантирую!" | festival --tts --language russian

## Использование

### Интерактивный режим (тестирование голосов и пр.)

festival имеет командную строку, которая вы можете использовать для тестов. Несколько примеров (с примерами выводов)

    $ festival
    [...]
    festival>

Список доступных голосов:

    festival> (voice.list)
    (cstr_us_awb_arctic_multisyn kal_diphone don_diphone)

Установить голос:

    festival> (voice_cstr_us_awb_arctic_multisyn)
    #<voice 0x1545b90>

Произнести:

    festival> (SayText '"test this is a test oh no a test bla test")
    inserting pause after: t.
    Inserting pause
    [...]
    id _63 ; name t ;
    id _65 ; name # ;
    #<Utterance 0x7f7c0c144810>

Помощь:

    festival> help
    "The Festival Speech Synthesizer System: Help

Выход - ctrl+d или набрать:

    festival> (quit)

### Чтение текстового файла

    festival --tts /path/to/letter.txt

### Чтение текстового файла и сохранение в wav

    cat letter.txt | text2wave -o letter.wav

### Пример скрипта для festival

Одним из классических приложений, для которых удобно использовать festival, является ping. Используйте этот скрипт при пинге хоста, который будет возвращать успешный или неудачный результат:

    #!/bin/bash
    while [ 1 = 1 ]; do
         ping -c $1 && (echo "Ping" | festival --tts) || (echo "Fail" | festival --tts)
    done

Заметьте, что синтезатор речи работает не в реальном времени, т.к. ему нужно некоторое время перед воспроизведением.

## Решение проблем

### Cannot open /dev/dsp

Если festival возвращает следующую ошибку:

    Linux: cannot open /dev/dsp

В зависимости от установленной аудиосистемы (можно проверить, набрав aplay или paplay в терминале), добавьте эти строки в ваш .festivalrc, или в usr/share/festival/festival.scm (source, source):

Для ALSA:

    (Parameter.set 'Audio_Method 'Audio_Command)
    (Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

Для PulseAudio:

    (Parameter.set 'Audio_Command "paplay $FILE")
    (Parameter.set 'Audio_Method 'Audio_Command)
    (Parameter.set 'Audio_Required_Format 'snd)

### Alsa playing @ wrong speed

Если решение выше даёт скрипучий (писклявый) голос, можно попробовать следующее:

    (Parameter.set 'Audio_Method 'Audio_Command)
    (Parameter.set 'Audio_Command "aplay -Dplug:default -f S16_LE -r $SR $FILE")

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

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

Учим компьютер говорить по-русски / Festival скрипты

Говорящий пингвин. Учим Linux говорить и слушать

Categories:

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