Festival (Русский)

From ArchWiki
Revision as of 20:43, 13 February 2015 by Lahwaacz.bot (talk | contribs) (update Pkg/AUR templates (https://github.com/lahwaacz/wiki-scripts/blob/master/update-package-templates.py))
Jump to navigation Jump to search

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

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

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

Установка

Установите festival из официальных репозиториев. Кроме того, необходимо установить один или несколько голосовых пакетов festival-english, festival-us, festival-ru[broken link: package not found]. Также для 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 или /usr/share/festival/festival.scm

(set! voice_default voice_msu_ru_nsh_clunits)

Вы также можете установить голос по умолчанию в /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 or

festival> (quit)

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

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

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

cat letter.txt | text2wave -o letter.wav


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

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

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

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

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

Can't open /dev/dsp

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

Linux: can't 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 говорить и слушать