В конце идёт описание сборки, если кому нужно.

Igor B. Poretsky:

IP> Если интересно, можно взять на
IP> 
ftp://ftp.rakurs.spb.ru/pub/Goga/projects/speech-interface/multispeech-2.0.tar.gz

Интересно, конечно. Спасибо!

[...]

IP> Буду рад услышать отзывы хорошие и разные, еще же более обрадуюсь
IP> конструктивным предложениям, если таковые будут.

Самая большая проблема, по-моему, в том, что Multispeech делает большие
паузы перед тем, как что-нибудь сказать. Особенно это заметно при вводе
текста с побуквенным озвучиванием и при перемещении по пустым строкам (пауза
перед звуком пустой строки). Внутри текста после знаков препинания или при
переключении на другой голос эти паузы тоже очень заметны. Речь не всегда
хорошо прерывается. Например, в буфере *scratch* (то есть, выделение голосом
там соответствующее и полный режим пунктуации, обычный для меня) есть такие
строки:

(let ((dtk-program "/opt/multispeech-2.0/bin/multispeech"))
  (tts-restart))

Если при чтении первой из них прервать речь, то Multispeech прерывается, но
тем не менее довольно часто всё-таки проговаривает две закрывающие скобки.
PulseAudio и другие звуковые серверы у меня не запущены.

Другая проблема - тяжёлые зависимости. Нужные для сборки библиотеки заняли
164MB свободного места на диске. А если бы я установил Boost 1.37 вместо
1.34, то потребовалось бы на 173MB больше. Если не собирать Multispeech, то
потребовалось бы намного меньше, но всё равно много зависимостей - это
дополнительные возможности для того, что что-нибудь сломается, устареет, да
и просто может быть неудобно в некоторых ситуациях. Например, если нужно
установить скомпилированный Multispeech из архива с речевой поддержкой, то
все эти зависимости придётся удовлетворять вручную.

Не такое важное.

Лучше, наверное, искать файл конфигурации не в /etc/multispeech.conf, а в
${sysconfdir}/multispeech.conf с возможностью задать другой путь в командной
строке или в переменной окружения. Для других настроек тоже хорошо бы иметь
возможность переопределить значение из конфига в командной строке или в
переменной окружения. Например, Multispeech может вызываться с кодировкой
koi8-r из Emacspeak и с utf-8 - из Orca.

Если в файле конфигурации указан неправильный путь к словарю произношения,
то вместо Configuration error лучше было бы выдать куда-нибудь
предупреждение и использовать значение по умолчанию (то есть, без словаря).

Когда Multispeech завершает работу с Configuration error, в колонках слышен
щелчок. Возможно, лучше инициализировать звук уже после обработки конфига.

Если запустить Multispeech в командной строке, то по C-d он не завершает
работу, хотя на команды перестаёт реагировать. К счастью, помогает C-c C-c
(в Emacs).

                                   * * *

Для сборки в Debian нужно установить несколько пакетов. Надеюсь, что я
ничего не упустил, и что в Ubuntu всё точно так же. Вот команда для
установки пакетов:

  sudo aptitude install g++ make libboost-filesystem-dev libboost-iostreams-dev 
libboost-program-options-dev libbobcat-dev libsndfile1-dev libsoundtouch1-dev 
portaudio19-dev libportaudiocpp0

Дальше всё, как обычно. В директории multispeech-2.0 я выполнил команды:

  ./configure --prefix=/opt/multispeech-2.0
  make
  sudo make install

и сделал

  sudo ln -sf /opt/multispeech-2.0/etc/multispeech.conf /etc/multispeech.conf 

После этого отредактировал файл multispeech.conf, исправив пути к файлам
словарей и директории с голосами Mbrola. Ещё закомментировал строчку

charset = KOI8-R

Так как у меня настроено так, чтобы Multispeech получал на входе utf-8 при
вызове из Emacs, а не только из Orca.

-- 
Дмитрий Падучих
-- 
Blinux-rus mailing list
[email protected]
http://www.a11ywiki.org/cgi-bin/mailman/listinfo/blinux-rus

Ответить