# Festival (Русский)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 скрипты[устаревшая ссылка 2021-05-11]

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

Categories:

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