Учим PCLinuxOS говорить по-русски
В Linux на первом месте по преобразованию текста в речь стоит многоязычная система синтеза речи Festival. В данной статье будет рассказано, как сделать, чтобы Festival не просто заговорил, а заговорил по-русски. Кстати, после установки он вообще не говорит и выдает ошибки :)
1. Для начала необходимо установить через Synaptic два пакета: festival 1.96 (с более поздними версиями русский голос работать не будет) и speech_tools. *
2. Подключить репозиторий rpm http://repo.pclinuxos.su/rulinuxos/apt/ etc/2011 main и установить оттуда русский синтетический голос festvox_msu_ru_nsh_clunits.
3. От rootа сделать русский язык одним из языков по умолчанию, чтобы не указывать это каждый раз при чтении русских текстов. Для этого в конце файла /usr/share/festival/lib/voices.scm найти секцию defvar default-voice-priority-list и добавить строчку нашего языка msu_ru_nsh_clunits.
4. Затем в начале файла /usr/share/festival/lib/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) после (language_klingon)) добавить:
((equal? language 'russian)
(language_russian))
4. После этого в фомашней директории /home/ваш user создать файл .festivalrc и в нем прописать настройки для вашей аудиосистемы.
Для 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)
5. Все. Проверяем работоспособность программы. В консоли набираем festival и даем команду:
festival> (SayText "Привет мир!")
Если все сделали правильно, то услышите, как компьютерный голос скажет вам: "Привет мир!" **
6. Чтобы начать читать текст из файла (который обязательно должен быть в кодировке UTF-8), нужно дать следующую команду:
festival --tts /path/to/file.txt
А чтобы чтение сохранить в аудиофайл wav, можно дать такую команду в каталоге с текстовым файлом:
cat text.txt | text2wave -o text.wav
7. Festival 1.96 - программа сырая, поэтому после чтения файла будет завершаться некорректно. Чтобы полностью завершить процесс чтения, необходимо будет нажать сочетание клавиш Ctrl+Z и затем набрать в консоли exit.
Примечания
* Если хотите, чтобы Festival читал английские тексты, через Synaptic установите английские синтетические голоса: festvox-kallpc16k или festvox-kedlpc16k.
** Выход из программы Festival осуществляется после чтения заданной вами фразы или по комбинации клавиш Ctrl+D.
*** Если вы хотите научить свой компьютер называть время, дату, читать погодные сводки, почту Gmail, вам нужно воспользоваться соответствующими скриптами, которые можно взять здесь.