Установка речевого сервера VoiceMan в дистрибутивах Debian и Ubuntu

Дата публикации:2009
Twitter Facebook Vkontakte

Введение

Прежде всего автор выражает благодарность Дмитрию Падучих и Михаилу Пожидаеву за помощь и дельные советы, без которых эта статья не появилась бы на свет.

В статье речь пойдет о том, как установить речевой сервер VoiceMan на дистрибутивы Debian. Кое-какую информацию о VoiceMan можно почерпнуть на странице Speech — ALT Linux Wiki.

Исходный код доступен на ftp-сервере ALT Linux.

В моем случае был использован VoiceMan версии 1.2.0pre3, который установился на моей машине и завелся с пол пинка во всех случаях.

Продукт был испытан и  одинаково прекрасно показал себя на дистрибутивах debian, таких как  ubuntu8.10, ubuntu8.04.2, debian5.0-lenny. Сервер используется мной повседневно на постоянной основе.

Внимание! Инструкция рассчитана  на пользователей, установивших синтезаторы ru_tts , mbrola и сам  emacspeak с тифлокомповского архива.

В случае подключения VoiceMan к самостоятельно установленным синтезаторам или emacspeak, нужно сменить соответствующе указанные пути.

Установка и начальная настройка

Итак, поехали...

1. Скачиваем сорци программы:

$wget  ftp://ftp.altlinux.org/pub/people/msp/voiceman/voiceman-1.2.0pre3.tar.gz 

2. Разархивируем скачаный файл:

$tar xf voiceman-1.2.0pre3.tar.gz

3. Перейдем в папку с исходными кодами, в которой и будем производить компиляцию и установку:

$ cd voiceman-1.2.0pre3/

4. установим необходимые зависимости. На дебиан мне понадобились лишь  пакеты libao-dev и g++. На убунтах g++ уже был, поэтому доустановил лишь libao-dev.

.
$ sudo aptitude install libao-dev g++

скачать, помню, понадобилось  сущие килобайты :) Также следует учесть, что для работы VoiceMan необходима программа aplay.

5. Теперь то, что принято называть  "дальше как обычно".

Набираем ряд последовательных стандартных команд, давая им время отработать:

$ ./configure
$ make
$sudo make install

Поздравляю, сервер должен установиться. Проверим:

$ voicemand --say "privet-romashki"

Если установка прошла успешно, то вы слышите текст, указанный в кавычках,  произнесенный голосом espeak. О каких-либо других голосах сервер пока даже не догадывается. Следующие шаги призваны  заполнить этот пробел.

1." Скачаем файл с соответствующей конфигурацией и путями к интересующим синтезаторам:

$ wwget  http://www.tiflocomp.ru/download/linux/voiceman.conf

Это мой файл конфигурации, в котором пути к синтезаторам ru_tts и mbrola соответствуют путям к этим же синтезаторам, установленым из тифлокомповского архива.

 

2." Установим требуемую  конфигурацию, заменив файл конфигурации на новый:

$sudo cp -f voiceman.conf /usr/local/etc/

3. Там же полезно будет создать папку voiceman.d:

$sudo mkdir /usr/local/etc/voiceman.d
 

Проверим удачность предприятия. Для этого откроем две консоли и в одной из них от root запустим непосредственно сам сервер:

$sudo voicemand

А во второй консоли -- его клиентскую часть:

$voiceman

в окне которого теперь, если набирать символы, посылая их на отработку клавишей RET, вы должны будете слышать голос mbrola или ru_tts (в зависимости от языка символов).

 

Если у вас все происходит, как описываю, то можно переходить к следующему этапу ,а именно обеспечению его автозапуска с правами root  при старте системы.

Для автоматического запуска речевого сервера добавьте в файл etc/rc.local следующую строчку:

/usr/local/bin/voicemand -d

пропишите ее где нибудь в конце файла, но перед строкой

exit 0

так как все, что указано после этой строки, выполняться не будет.

После указанных изменений в /etc/rc.local, voicemand будет загружатьса автоматически при каждом старте системы в фоновом режиме, О чем вам будет докладывать каждый раз при своем пуске голосом mbrola еще до старта иксов и ввода пароля с логином.

Важно: не забыть указать в строке запуска ключ -d.

Подключение к программам речевого доступа

Emacspeak

Теперь добавим VoiceMan в список речевых серверов emacspeak. Для этого выполним два нехитрых действия:

1. Сделаем симлинк в директории .../emacspeak/servers/:

$sudo ln -sf /usr/local/bin/voiceman-espeak  /usr/local/share/emacs/site-lisp/emacspeak/servers/voiceman-espeak

2. Добавим его имя в список серверов:

sudo nano /usr/local/share/emacs/site-lisp/emacspeak/servers/.servers 

Откроется консольный редактор nano, в котором вам нужно будет добавить следующую новую строчку:

voiceman-espeak 

Сохраните изменения и закройте редактор: Ctrl+X y.

После произведенных дополнений в /emacspeak/servers/, работая в emacspeak, вы сможете переключиться на VoiceMan по  команде:

 
C-e d d voiceman-espeak RET

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

 

Для того чтобы запускать emacspeak в паре с voiceman, в /usr/local/bin сделал специальный скрипт (назовем его, к примеру, emacsvoice).

$sudo nano /usr/local/bin/emacsvoice

Код скрипта:

#!/bin/sh

export EMACSPEAK=/usr/local/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup
export DTK_PROGRAM=/usr/local/bin/voiceman-espeak
exec emacs "$@"

Сохраним файл и сделаем скрипт исполняемым:

$sudo chmod +x /usr/local/bin/emacsvoice

После этого команда emacsvoice будет запускать emacspeak, исправно транслирующим речь через voiceman.

Orca

Поклонникам этого скринридера рекомендую обратить внимание на VoiceMan особо. VoiceMan поддерживает utf-8, поэтому при работе с Orca вам не придется загружать свою систему лишними процессами конвертации кодировок как в случае с multispeech.

Для того чтобы получить возможность работать в Orca с Voiceman, нужно добавить всего  одну строчку в файл~/.orca/orca-customizations.py. Это строка :

orca.espeechfactory._codeTable['voiceman-espeak'] = 'dectalk'

Если у вас файла ~/.orca/orca-customizations.py не существует, создайте его с таким содержимым:

import orca.espeechfactory
orca.espeechfactory.SpeechServer.location = '/usr/local/share/emacs/site-lisp/emacspeak/servers/'
orca.espeechfactory._codeTable['voiceman-espeak'] = 'dectalk'

После вышеуказанных изменений можно выбрать VoiceMan в диалоге параметров Orca, на вкладке "Речь".

    Yasr

Если этой чудной программуленки у вас еще не стоит, немедля исправляем это:

$sudo apt-get install yasr

Затем в файл /etc/yasr/yasr.conf добавляем строку:

synthesizer port=|/usr/local/bin/voiceman-espeak

При работе с yasr был замечен лишь один баг: при посимвольном чтении русских букв они не читались, но и кому это может понадобиться в консоли -- сложно представить.

Заключительные замечания

 

Нужно сказать, что, хотя интонирование речи включено, вам необходимо его будет настроить. Для этого нужно закомментировать знаки препинания, которые за это ответствены, в файле /usr/local/share/voiceman/replacements. К примеру, у меня в разделе # For russian language символом "#" закомментированы такие знаки, как: !, "?, . и т. п.

Подобным образом, редактируя файлы в каталоге /usr/local/share/voiceman/, можно настроить чтение на любой лад.

Простым редактированием файлов в VoiceMan можно настроить многое в чтении синтезаторами. К примеру,подобным приемом   у меня настроен уровень чтения символов пунктуации (это можно сделать файле /usr/local/share/voiceman/charstable).



Проект осуществлен при поддержке компании RU-CENTER
Распространение материалов сайта означает, что распространитель принимает условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2017
Rambler's Top100
Рейтинг@Mail.ru