Заметка (RHVoice — голосовой движок) по мотивам ранее написанной и практически используемой на Ubuntu Trusty, но сейчас оптимизированная для Ubuntu 18.04 Server amd64
Ведь работать данная заметка будет в паре с сервисом личной настройки своего «Умного Дома» на базе MajorDoMo. А как поставить MajorDoMo на Ubuntu 18.04 Server смотрите здесь (), я ведь использую только самолично настроенное, а не готовые сборки не пойми кого, чтобы не задавать на профильных ресурсах вопросы, у меня это не работает, почему?
ekzorchik@srv-bionic:~$ hg clone --insecure https://172.35.35.8/hg/dproject
ekzorchik@srv-bionic:~$ sudo ./dproject/default
ekzorchik@srv-bionic:~$ sudo apt-get install scons gcc git flite flite1-dev expat libunistring-dev libsox-dev libpulse-dev libao-dev build-essential libc6-dev g++-multilib -y
ekzorchik@srv-bionic:~$ sudo git clone https://github.com/Olga-Yakovleva/RHVoice /usr/src/rhvoice
Cloning into '/usr/src/rhvoice'...
remote: Enumerating objects: 9154, done.
remote: Total 9154 (delta 0), reused 0 (delta 0), pack-reused 9154
Receiving objects: 100% (9154/9154), 316.04 MiB | 2.69 MiB/s, done.
Resolving deltas: 100% (5302/5302), done.
Checking out files: 100% (1345/1345), done.
ekzorchik@srv-bionic:~$ cd /usr/src/rhvoice/
ekzorchik@srv-bionic:/usr/src/rhvoice$ sudo scons
ekzorchik@srv-bionic:/usr/src/rhvoice$ sudo scons X11=no
ekzorchik@srv-bionic:/usr/src/rhvoice$ sudo scons install
ekzorchik@srv-bionic:/usr/src/rhvoice$ sudo ldconfig
ekzorchik@srv-bionic:/usr/src/rhvoice$ cd ~
Итого:
- Звуковые профили голоса:
/usr/local/share/RHVoice/voices/
- Конфигурационный файл:
/usr/local/etc/RHVoice/RHVoice.conf
- Файлы голосового движка:
/usr/local/share/RHVoice/
- Звуковые профили на иностранных языках:
ekzorchik@srv-bionic:~$ ls /usr/local/share/RHVoice/languages/
English Esperanto Georgian Kyrgyz Russian Tatar Ukrainian
- Звуковые профили кто произносит:
ekzorchik@srv-bionic:~$ ls /usr/local/share/RHVoice/voices/
alan anatol azamat clb irina natia slt talgat
aleksandr anna bdl elena natalia nazgul spomenka
ekzorchik@srv-bionic:~$ sudo nano /usr/local/etc/RHVoice/RHVoice.conf
; Список голосовых профилей. Первым в профиле указывается основной
; голос (он будет читать числа и другой текст, для которого не удаётся
; автоматически определить язык). Далее следуют дополнительные
; голоса. Если в профиле заданы два голоса, чьи языки имеют общие
; буквы, то второй будет использоваться только в том случае, когда
; программа экранного доступа специально запросит использование
; данного языка.
voice_profiles=Aleksandr+Alan,Elena+CLB
Чтобы проверить работу офлайного голосового движка RHVoice я сперва разверну Ubuntu 18.04 Server внутри Virtualbox на основной системе Ubuntu 18.04 Desktop ноутбука Lenovo E555, т. к. у меня уже был успешный опыт работы аудио под Virtualbox, подробнее смотреть заметку:
ekzorchik@srv-bionic:~$ sudo apt-get install alsa alsa-tools lame -y
ekzorchik@srv-bionic:~$ sudo adduser ekzorchik audio
Adding user `ekzorchik' to group `audio' ...
Adding user ekzorchik to group audio
Done.
ekzorchik@srv-bionic:~$ aplay -l
aplay: device_list:270: no soundcards found...
ekzorchik@srv-bionic:~$ sudo aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC9221 A1 Analog [STAC9221 A1 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: STAC9221 A1 Digital [STAC9221 A1 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
ekzorchik@srv-bionic:~$ lspci -v | grep Audio
00:05.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 01)
Subsystem: SigmaTel 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller
ekzorchik@srv-bionic:~$ sudo nano /etc/modules
snd_intel8x0
ekzorchik@srv-bionic:~$ sudo modprobe -r snd_intel8x0
ekzorchik@srv-bionic:~$ sudo modprobe snd_intel8x0
ekzorchik@srv-bionic:~$ sudo lsmod | grep snd_intel8x0
snd_intel8x0 40960 0
snd_ac97_codec 131072 1 snd_intel8x0
snd_pcm 98304 5 snd_hda_intel,snd_hda_codec,snd_hda_core,snd_ac97_codec,snd_intel8x0
snd 81920 9 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_hda_codec_idt,snd_ac97_codec,snd_timer,snd_intel8x0,snd_hda_codec_generic,snd_pcm
ekzorchik@srv-bionic:~$ sudo reboot
ekzorchik@srv-bionic:~$ alsamixer
Теперь настал момент проверки работы аудиовоспроизведения под Virtualbox в текущей гостевой системе — Ubuntu 18.04 Server
ekzorchik@srv-bionic:~$ sudo apt-get install moc -y
Копирую с основной систему в гостевую аудио файл для проверки воспроизведения:
ekzorchik@navy:~$ scp /media/ekzorchik/own/02\ Midnight\ Rider.mp3 ekzorchik@172.33.33.25:/home/ekzorchik
ekzorchik@172.33.33.25's password:
02 Midnight Rider.mp3 100% 7442KB 26.0MB/s 00:00
Запускаю на гостевой системе проигрыватель и указываю на звуковой файл:
ekzorchik@srv-bionic:~$ mocp 02\ Midnight\ Rider.mp3
Running the server...
Trying JACK...
Trying ALSA...
ekzorchik@srv-bionic:~$ killall mocp
И аудио файл проигрывается из Ubuntu 18.04 Server amd64 основной системы Ubuntu 18.04 Desktop amd64 ноутбука Lenovo E555.
Так, а теперь проверяю, как будет работать офлайновый голосовой движок RHVoice установленный выше по заметке в текущую систему Ubuntu 18.04 Server amd64:
ekzorchik@srv-bionic:~$ echo "Алиса, включи освещение в доме?" | RHVoice-test -t 1 -p Elena
default Engine is default
Воспроизведения не последовало.
Но не суть — это был эксперимент, никто и не надеялся, что под виртуализацией заработает проброс аудио как раньше.
Оформил данную заметку как скрипт, загрузил его к себе в Mercurial репозитарий, затем установил из него на основную систему Ubuntu 18.04 Desktop ноутбука Lenovo E555 и пробую как работает RHVoice:
ekzorchik@navy:~$ echo day | RHVoice-test
default Engine is default
слово «day» воспроизвело.
А теперь с использование голосового профиля диктора:
ekzorchik@navy:~$ echo "Алиса, включи освещение в доме?" | RHVoice-test -t 1 -p Elena
default Engine is default
Вполне себе ничего, стоит поиграться с настройками не будет такого отличительного металлического произношения.
Итого получается работоспособная заметка по установке RHVoice на Ubuntu 18.04 Server/Destkop
На этом у меня все с уважением автор блога Олло Александр aka ekzorchik.