Difference between revisions of "Festival (Русский)"

From ArchWiki
Jump to navigation Jump to search
(update Pkg/AUR templates (https://github.com/lahwaacz/wiki-scripts/blob/master/update-package-templates.py))
m
Line 79: Line 79:
 
=== Установка голоса по умолчанию ===
 
=== Установка голоса по умолчанию ===
  
Вы можеет установить голос по умолчанию, добавив эти строки в конец вашего {{ic|~/.festivalrc}} или /usr/share/festival/festival.scm
+
Чтобы установить голос по умолчанию, добавьте следующую строку в конец вашего {{ic|~/.festivalrc}}
 
  (set! voice_default voice_msu_ru_nsh_clunits)
 
  (set! voice_default voice_msu_ru_nsh_clunits)
Вы также можете установить голос по умолчанию в {{ic|/usr/share/festival/voices.scm}}. У вас должны быть привилегии суперпользователя и добавьте их в конец файла, просто перечисляя по кругу.
+
You cannot set the voice with festival.scm; to set voices globally, set order of searched voices in {{ic|/usr/share/festival/voices.scm}}.  
  
 
==== Ручная установка голосов ====
 
==== Ручная установка голосов ====
  
Вы также можете получить голоса прямо из [http://festvox.org/festival/downloads.html festvox.org]. Файлы для загрузки различных голосов имеют  вид  "festvox_*.tgz". Чтобы их задействовать, вам нужно будет вручную распаковать и переместить в нужное место каталог, содержащий голос. На данный момент для Arch подходящей директорией является {{ic|/usr/share/festival/voices/}} с соответствующей подпапкой для голоса из 'festvox'.
+
Вы также можете получить голоса прямо из [http://festvox.org/festival/downloads.html festvox.org]. Файлы для загрузки различных голосов имеют  вид  "festvox_*.tgz". Чтобы их задействовать, необходимо распакованный архив переместить в каталог, содержащий голос. На данный момент для Arch подходящей директорией является {{ic|/usr/share/festival/voices/}} с соответствующей подкаталогом для голоса из 'festvox'.
  
 
===Поддержка русского языка===
 
===Поддержка русского языка===
 +
 
В файл /usr/share/festival/languages.scm дописать вначале:
 
В файл /usr/share/festival/languages.scm дописать вначале:
 
  (define (language_russian)
 
  (define (language_russian)
Line 102: Line 103:
  
 
Для проверки выполните команду:
 
Для проверки выполните команду:
 +
 
  $ echo "Арч самый лучший. Я гарантирую!" | festival --tts --language russian
 
  $ echo "Арч самый лучший. Я гарантирую!" | festival --tts --language russian
  
Line 109: Line 111:
  
 
=== Интерактивный режим (тестирование голосов и пр.) ===
 
=== Интерактивный режим (тестирование голосов и пр.) ===
 +
 
festival имеет командную строку, которая вы можете использовать для тестов. Несколько примеров (с примерами выводов)
 
festival имеет командную строку, которая вы можете использовать для тестов. Несколько примеров (с примерами выводов)
 
  $ festival  
 
  $ festival  
Line 119: Line 122:
 
  festival> (voice_cstr_us_awb_arctic_multisyn)
 
  festival> (voice_cstr_us_awb_arctic_multisyn)
 
  #<voice 0x1545b90>
 
  #<voice 0x1545b90>
Сказать:
+
Произнести:
 
  festival> (SayText '"test this is a test oh no a test bla test")
 
  festival> (SayText '"test this is a test oh no a test bla test")
 
  inserting pause after: t.
 
  inserting pause after: t.
Line 130: Line 133:
 
  festival> help  
 
  festival> help  
 
  "The Festival Speech Synthesizer System: Help
 
  "The Festival Speech Synthesizer System: Help
Выход: ctrl+d or
+
Выход - ctrl+d или набрать:
 
  festival> (quit)
 
  festival> (quit)
  
Line 144: Line 147:
 
=== Пример скрипта для festival ===
 
=== Пример скрипта для festival ===
  
Одним из классических приложений, которые использует festival является ping. Используйте этот скрипт при проверка ping'а до хоста, он вернёт вам результат успешного или неудачного выполнения ping:
+
Одним из классических приложений, для которых удобно использовать festival, является ping. Используйте этот скрипт при пинге хоста, который будет возвращать успешный или неудачный результат:
  
 
  #!/bin/bash
 
  #!/bin/bash
Line 151: Line 154:
 
  done
 
  done
  
Заметьте, что синтезатор речи не работает в реальном времени, т.к. ему нужно некоторое время перед воспроизведением.
+
Заметьте, что синтезатор речи работает не в реальном времени, т.к. ему нужно некоторое время перед воспроизведением.
  
 
== Решение проблем ==
 
== Решение проблем ==
 
   
 
   
 
=== Can't open /dev/dsp ===
 
=== Can't open /dev/dsp ===
 +
 
Если festival возвращает следующую ошибку:
 
Если festival возвращает следующую ошибку:
 
  Linux: can't open /dev/dsp
 
  Linux: can't open /dev/dsp
Line 171: Line 175:
  
 
=== Alsa playing @ wrong speed ===
 
=== Alsa playing @ wrong speed ===
 +
 
Если решение выше даёт скрипучий (писклявый) голос, можно попробовать следующее:
 
Если решение выше даёт скрипучий (писклявый) голос, можно попробовать следующее:
 
  (Parameter.set 'Audio_Method 'Audio_Command)
 
  (Parameter.set 'Audio_Method 'Audio_Command)
Line 176: Line 181:
  
 
== Смотрите также ==
 
== Смотрите также ==
 +
 
[http://ru.festivalspeaker.wikia.com/wiki/%D0%91%D0%B0%D0%BD%D0%BA_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B3%D0%BE%D0%BB%D0%BE%D1%81%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_Festival Банк скриптов для голосового движка Festival]
 
[http://ru.festivalspeaker.wikia.com/wiki/%D0%91%D0%B0%D0%BD%D0%BA_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D0%B3%D0%BE%D0%BB%D0%BE%D1%81%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B0_Festival Банк скриптов для голосового движка Festival]
  

Revision as of 19:58, 22 February 2015

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

(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

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

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

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