Установка речевого сервера VoiceMan в дистрибутивах Debian и Ubuntu |
| Автор: | © Tolyangin |
| Дата публикации: | 2009 |
Прежде всего автор выражает благодарность Дмитрию Падучих и Михаилу Пожидаеву за помощь и дельные советы, без которых эта статья не появилась бы на свет.
В статье речь пойдет о том, как установить речевой сервер 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.
Теперь добавим 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.
Поклонникам этого скринридера рекомендую обратить внимание на 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, на вкладке "Речь".
Если этой чудной программуленки у вас еще не стоит, немедля исправляем это:
$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-2012 |
| |||