Установка и использование синтезатора речи Festival

Настройка синтеза речи в Ubuntu


Установка и использование синтезатора речи Festival в Ubuntu:

Устанавливаем festival и сопутствующие утилиты:

sudo apt-get install festival speech-tools 

Cтавим пакет с голосом, которые занимает 186 Мб.

В репозитории universe Ubuntu 9.10 уже есть готовый пакет festvox-ru:

sudo apt-get install festvox-ru 

Если используется Ubuntu 9.04 в /etc/apt/sources.list добавляем: 

deb http://ppa.launchpad.net/sergey-udaltsov/ppa/ubuntu jaunty main 
deb-src http://ppa.launchpad.net/sergey-udaltsov/ppa/ubuntu jaunty main  

 Ставим:

sudo apt-get install festvox-ru 

 В остальных дистрибутива можно установить/распаковать deb-пакет с голосом из Ubuntu 9.10:

sudo wget http://ubuntu.mirrors.tds.net/ubuntu/pool/universe/f/festvox-ru/festvox-ru_0.5-1_all.deb
sudo dpkg --install festvox-ru_0.5-1_all.deb 

 Проверяем (русский текст воспринимается только в кодировке UTF-8):

festival

>(SayText "Hello!")

Активируем русский голос

>(voice_msu_ru_nsh_clunits) 

Активируем русский голос

>(voice_msu_ru_nsh_clunits) 

 Произносим русский текст:

>(SayText "Привет!")
>(exit) 

Читаем содержимое файла:

festival -b '(begin (voice_msu_ru_nsh_clunits) (tts_file "./file.txt"))' 

Сохранить результат в файл:

text2wave -eval '(voice_msu_ru_nsh_clunits)' ./file.txt -o ./file.wav 

 Чтобы заработало:

cat file.txt | festival --tts --language russian 

или

festival --tts --language russian file.txt 

 Нужно в файл /usr/share/festival/languages.scm перед строкой "(define (select_language language)" добавить (по аналогии с другими языками):


   (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)) 

Нужно в файл /usr/share/festival/languages.scm

На будущее:


В deb пакетах предусмотрен замечательный скрипт preinst, специально для того, чтобы пользователи не правили руками конфиги и т.д. , а изменения вносились автоматом.

#!/bin/sh
#preinst

temp='tempfile'
config="/usr/share/festival/languages.scm"

cat $config | sed -e s/'(define (select_language language)'/' (define (language_russian) \n "(language_russian)\n Set up language paremetrs for Russian"\n (set! male1 voice_msu_ru_nsh_clunits)\n(male1)\n(Paremeter.set \'Language\' russian)\n)\n(select_language language)'/ > $temp

cat $temp > $config 

 

 

 

 

Вверх