RHVoice - проблеми прі збиранні синтезатора мовлення

RHVoice це - вільний мовний синтезатор з відкритим вихідним кодом. Він  підтримує такі мови як російську, американську англійську, бразильську, португальську, есперанто, грузинську, українську, киргизьку і татарську. По звучанню напевне не є ідеальним, але голоси розбірливі й приємні на слух.
Цей голосовий синтезатор розроблений російською програмісткою Ольгою Яковлевою, та підтримується на таких операційних системах як Windows, GNU/Linux та Android. Під GNU/Linux синтезатор треба зібрати самостійно, з початкових кодів, що доставляє деякі незручності. Але я спробував і мені це вдалось, що правда не з першого разу. Тут я зібрав деяку інформацію для себе, бо може через де який час знадобиться. А то що я забуду як це я робив, так це абсолютно точно.

Як встановлювати є опис Сборка в GNU/Linux. Якщо коротко, то треба було встановити такі пакети, наприклад, як було написано в цьому пості - Летопись моей установки RHVoice (Герасим без Му-му). У автора також виникли проблеми схожі з моїми.
sudo su
apt-get install gcc g++ git pkg-config scons libao4 libao-common libao-dev
Але де які пакети у мене вже були встановлені, тому пункт з установкою пакетів вирішив не виконувати. Такі пакунки як 'gcc g++ git pkg-config scons' у мене дійсно були, я перевіряв, а от 'libao4 libao-common libao-dev' перевірку не робив тому, що в описі на цій сторінки Building on Linux (Russian) (офіційна російськомовна wiki сторінка RHVoice) було сказано що потрібно щось одне з цього 'PulseAudio, Libao, PortAudio V19', а 'PulseAudio' у мене точно є, я й не парився. І це в де якій мірі була помилка.

Звантажив початковий код у вигляді zip архіву, та за допомоги архіватора Ark розпакував, перетягнувши теку `RHVoice-master` у теку `python` по шляху `/home/oleg/python/`. Чому туди не знаю, можливо там програмувати збирався на Python

Звантаження початкового коду у вигляді zip архіву,
Звантаження початкового коду у вигляді zip архіву

Розпакування архіву у вибрану теку
Розпакування архіву у вибрану теку

Потім я відкрив теку `RHVoice-master` у консолі, за допомоги правої кнопки миші та випадаючего контекстного меню.

Відкриття теки у консолі за допомоги контекстного меню у Delphi
Відкриття теки у консолі за допомоги контекстного меню у Delphi

Та ввів у консолі, послідовно, такі команди:
sudo su
#scons
#scons install
#ldconfig
#ln -s /usr/local/bin/sd_rhvoice /usr/lib/speech-dispatcher-modules
Тест по команді:
$ echo test|RHVoice-test
Пройдений не був, звук не зʼявився, як і файл `sd_rhvoice`. Після цього я спробував ще раз виконати установку RHVoice, але це не дало результату. Став шукати відповіді у Google.

Ось що відбувається коли повторно виконуєш команду 'scons'. Він виводить те що знайшов, або не знайшов, помічаючи це 'yes' або 'no'. Ті проблемні міста які я зрозумів, що вони дійсно проблемні, ввів в таблицю та виділив червоним.

 1 root@oleg-System-Product-Name:/home/oleg/python/RHVoice-master# scons
 2
 scons: Reading SConscript files ...
 3 Mkdir("build/linux")
 4 Checking whether the C compiler works... (cached) yes
 5 Checking whether the C++ compiler works... (cached) yes
 6 Checking for pkg-config... (cached) yes
 7 Checking for libpulse-simple... (cached) no
 8 Checking for ao... (cached) no
 9 Checking for portaudio-2.0... (cached) no
 10 scons: done reading SConscript files.
 11 scons: Building targets ...
 12 scons: `.' is up to date.
 13 scons: done building targets.
 14 root@oleg-System-Product-Name:/home/oleg/python/RHVoice-master#

Все це вказувало на те (пункт 7 та 8) що не хвата таких пакетів як - 'libao4 libao-common libao-devʼ. Чому так, гарно написано тут - О сборке RHVoice. Якщо коротко, то ці відсутні фали/пакети розробки необхідні для роботи з 'pulseaudio', без яких у мене не з'явився файл `sd_rhvoise`, та й і взагалі не працював RHVoice, тобто не проходив тест.

Тому, я все що встановив видалив, використавши як основу інструкцію, з сайту Синтезатор речи, в той частині де йдеться про видалення.
sudo su
scons --clean install scons --clean
А також видалив теку build:
rm -rf build 
З початку хотів так, у файловому менеджері Dolphin, але не вийшло, потребувало адміністраторських привілеїв, тому прийшлось видаляти від імені суперкористувача у консолі.

Не вдала спроба видалення теки
Не вдала спроба видалення теки у менеджері файлів Dolphin

Ну й вдала спроба видалення у консолі.

Вдала спроба видалення теки у консолі
Вдала спроба видалення теки build у консолі


Потім встанови відсутні фали - 'libao4 libao-common libao-devʼ.

Встановлення відсутніх пакетів 'libao4 libao-common libao-devʼ
Встановлення відсутніх пакетів 'libao4 libao-common libao-devʼ

До речі якщо уважно придивитись, то встановлений лише один файл. Інші вже були встановленні.

Після я повторив дії, яки робив спочатку. Тобто відкрив теку `RHVoice-master` у консолі та ввів:
sudo scons

Введення у косолі команди sudo svons
Введення у консолі команди sudo svons

Все як вказано на сайті Ольги Яковлевої Building on Linux (Russian), ну майже, там не було `sudo`, це я від себе додав :).

Далі вже перейшов на права суперкористувача:
sudo su
Та ввів такі команди (дивись Building on Linux (Russian))
# scons install 
# ldconfig
Хотів виконати ще таку команду
# ln -s /usr/local/bin/sd_rhvoice /usr/lib/speech-dispatcher-modules
Але перед тим як її вводити вирішив спочатку подивитись є там - '/usr/local/bin/' - файл `sd_rhvoice`, він є і більш того він вже прописаний у теці `speech-dispatcher-modules` як символічне посилання (бо ln - це команда на створення символічного посилання). Думаю це пов'язано з тим що я вже цю команду виконував, але тоді не було файлу `sd_rhvoice` у зв'язку з некоректним збиранням `RHVoice`, а оскільки файлу не було то й символічного посилання теж.

Поява файлу `sd_rhvoice`
Поява файлу `sd_rhvoice`

До речі тест був пройдений. Все запрацювало.

Проходженя тесту, звук був
Проходження тесту, звук був :)





Коментарі