Установка голосового движка RHVoice на ARMBian (16.04) … и решение проблем сборки

Всем привет сегодня ведём рассказ о сборке и настройке голосового движка RHVoice на микрокомпьютере OrangePI PC с операционкой ARMBian (16.04).

Этот движок имеет кучу плюсов начиная от того, что он бесплатный, довольно шустрый, кросс-платформенный (Linux / Windows)

Используется почти всеми разработчиками умных домов (хотя некоторые все еще любят festival)
Ну и конечно с приятным голосом.

Начинаем установку (все команды без sudo т.к. делалось все под root`ом если вам это принципиально, то в начале всех команд поставить sudo)

Подготовим пакеты для сборки

apt-get install git scons libglibmm-2.4-dev libpulse-dev pkg-config build-essential

Забираем исходники движка

git clone https://github.com/Olga-Yakovleva/RHVoice.git

Начинаем шаманство с бубном

cd RHVoice
scons
scons install
ldconfig

Если всё хорошо…
пробный запуск
Женский голос

echo "Голосовая модель загружена женский голос" | RHVoice-client -s Anna+slt | aplay

Мужской голос

echo "Голосовая модель загружена мужской голос" | RHVoice-client -s Aleksandr+Alan | aplay

Возможные ошибки (подобные я видел в постах в интернете, решил, что стоит тут о них упомянуть)

root@mypipc:/# RHVoice-client
RHVoice-client: command not found

Из установленных бинарников только

ls /usr/local/bin/RH*
/usr/local/bin/RHVoice-make-hts-labels     
/usr/local/bin/RHVoice-test
/usr/local/bin/RHVoice-transcribe-sentences

Спросите Вы, а где же RHVoice-client?
И будете правы он не собрался…
Если разбираться в конструкции сборки, то основная проблема в glibmm-2.4 т.к. он участвует в образовании схемы сборки который добавляет в сборку компонент «service», а он то и отключен.

Открываем RHVoice/SConstruct находим строку 216

#        has_giomm=conf.CheckPKG("giomm-2.4")

Убираем коммент и делаем пересборку
Для начала удалим, что поставилось прежде

scons --clean install

Затем повторяем шаг

scons
scons install
ldconfig

Проверим всё ли получилось

ls /usr/local/bin/RH*
/usr/local/bin/RHVoice-client  
/usr/local/bin/RHVoice-make-hts-labels  
/usr/local/bin/RHVoice-service  
/usr/local/bin/RHVoice-test  
/usr/local/bin/RHVoice-transcribe-sentences

Теперь вы можете проверить тест голосовых моделей представленных выше.

echo "Голосовая модель загружена мужской голос" | RHVoice-client -s Aleksandr+Alan | aplay

Можно сразу отправить в файл

echo "Голосовая модель загружена мужской голос" | RHVoice-client -s Aleksandr+Alan > /tmp/test.wav

Можно сразу сделать его более компьютерным с приятным эхом и уменьшением пауз между словами, для этого нам поможет (sox)

apt-get install sox
echo "Голосовая модель загружена женский голос" | RHVoice-client -s Anna+slt > /tmp/test.wav; sox /tmp/test.wav /tmp/out.wav silence 1 0.1 1% -1 0.1 1% chorus 0.7 0.9 22.0 0.4 0.25 2.0 -s; aplay /tmp/out.wav

Можно еще поиграться с файлом конфигурации RHVoice, в котором можно настроить скорость воспроизведения интонации и т.д.

Проблема с запуском удаленной команды через SSH

Dbus error: 'Cannot autolaunch D-Bus without X11 $DISPLAY'

Решение!

export DISPLAY=:0; eval dbus-launch; export $(dbus-launch)

Если это передавать в начале запуска движка, то всё будет нормально!

Надеюсь эта статья была полезна.