Моя последовательность действий на случай повторения(если удачно) или найти эти грабли в конце-то-концов
Первое это разумеется я добавляю модуль RHVoice в маркете дополнений.
Удачная установка (вроде как). Дальше иду в сам модуль (левое боковое меню/Приложения/RHVoice)
В настройках выбираю голос Елена (субъективно он чаще используется)
Две нижние галочки (Использовать Speech Dispatcher и Использовать кэширование) пока не трогаю (не знаю их роль).
Захожу во вкладку "Помощь" вижу шпоргалку что нужно выполнить из консоли линукса.
Открываю SSH терминал, логинюсь на сервере.В моем случае это Мини-ПК Intel Core i3-4010Y + 2G RAM 60G SSD с алиэкспресс на котором установлена
Ubunty 18.10 Codename: cosmic (мать ее ети) .
Получаю суперпользователя sudo su
(для меня вопрос до сих пор под каким пользователем все это нужно устанавливать).
Далее по очереди копирую и вставляю в терминал все что в шпоргалке:
apt-get install gcc g++ git pkg-config scons libao4 libao-common libao-dev
(поставились нужные пакеты)
cd /usr/src/
(идем в папку куда скачаем исходники)
git clone https://github.com/Olga-Yakovleva/RHVoice
(скачиваю исходники)
cd RHVoice
(идем в каталог для установки синтезатора речи)
scons
scons install
ldconfig
На экране при установке что-то происходит (надеюсь что все правильно)
Пытаюсь проверить echo "test" | RHVoice-test
(тишина)
в ответ на #echo "test" | RHVoice-test
выдает default Engine is default
но звука на динамиках нет
Пытаюсь разобраться где накосячил. Пытаюсь разобрать информацию вывода на экран при инсталляции. Зацепился за эти строки:
~~root@homeadmin:/usr/src/RHVoice# scons install~~
~~scons: Reading SConscript files ...~~
~~Mkdir("build/linux")~~
~~Checking whether the C compiler works... (cached) yes~~
~~Checking whether the C++ compiler works... (cached) yes~~
~~Checking for pkg-config... (cached) yes~~
Checking for libpulse-simple... (cached) no
~~Checking for ao... (cached) yes~~
Checking for portaudio-2.0... (cached) no
Checking Speech Dispatcher version ... (cached) no
~~scons: done reading SConscript files.~~
~~scons: Building targets ...~~
Перерыв на подумать
пробую поставить заново но сперва пытаюсь поставить необходимые пакеты (если пишет проверка no значит что-то не так)
argon@homeadmin:/usr/src/RHVoice$ sudo apt-get install libpulse-dev
эта команда установила необходимые компоненты для одной проверки и при повторном запуске scons исчезла ошибка проверки Checking for libpulse-simple... (cached) no
(стала yes)
https://github.com/Olga-Yakovleva/RHVoice/issues/4... пора спать (ссылка чтоб вернуться и докопаться до сути)
Перерыв на подумать lshw
Server... а вообще работает звук в системе? Так если посудить зачем козе баян, т.е. серверу звук... Давай гуглить. Узнал про команду lshw
Из которой выяснил некоторые подробности о своем железе.
Пробую постичь дебри звуковых джунглей
root@homeadmin:/home/argon# lsmod | grep snd
snd_hda_codec_hdmi 49152 1
snd_hda_codec_realtek 106496 1
snd_hda_codec_generic 73728 1 snd_hda_codec_realtek
snd_hda_intel 40960 0
snd_hda_codec 126976 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core 81920 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep 20480 1 snd_hda_codec
snd_pcm 98304 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_seq_midi 16384 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 32768 1 snd_seq_midi
snd_seq 65536 2 snd_seq_midi,snd_seq_midi_event
snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi
snd_timer 32768 2 snd_seq,snd_pcm
snd 81920 11
snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi
soundcore 16384 1 snd
____ А посуда вперёд и вперёд По полям, по болотам идёт. И чайник шепнул утюгу: "Я дальше идти не могу"
Уперся в проблему физической проверки звуковой карты из консоли.
alsamixer
все выдает вроде как корректно. Звуковых карт 2 опять же это в моем понимании. Одна работает на HDMI вторая на переферийные разъемы. Которая на HDMI разъем она в alsamixer первой идет (подозреваю она дефолтная) та же что у меня через линейный выход, усилок и колонки второй по списку (по клавиши F6) переход. Мне никак не удается из системы получить выход на колонки, чтоб я услышал звук и убедился что на физическом уровне нет проблем со звуком.
Все эти команды проверки RHVoice принимаются (субъективно) но звука нет. Хочу услышать хоть что-то из терминалов. В Панель управления / soundfiles загрузил несколько mp3 файлов они проигрываются (воспроизводятся) Но опять же воспроизводятся удаленной машиной которая подключается к MD-серверу. Получить звук на линейном выходе я пока не могу. Гугл выдает все что угодно только не то что мне нужно. А мне нужно из консоли вывести звук на звуковую карту которая еще и не дефолтная в системе. Графического интерфейса нет (ставилась серверная ubunty 18.10). Пробовал разные советы из интернета (заглушить mute первую hdmi звуковуху, в конфиге покопался без толку только).
пробую ставить какие-то альса утилиты (вдруг поможет)
root@homeadmin:/home/argon# apt install alsa-utils
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет alsa-utils самой новой версии (1.1.6-1ubuntu1).
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
вроде все стоит
root@homeadmin:/home/argon# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: HDMI [HDA Intel HDMI], device 10: HDMI 4 [HDMI 4]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: ALC662 rev3 Analog [ALC662 rev3 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
Вроде так проверить звук можно:
root@homeadmin:/home/argon# speaker-test
speaker-test 1.1.6
Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
ALSA lib pcm_dmix.c:1099:(snd_pcm_dmix_open) unable to open slave
Playback open error: -2,No such file or directory
Звука нет Не может найти файл или дерикторию ... какой файл, какую директорию... гуглим дальше...
Нагуглил хороший источник информации, по крайней м...
Возвращаюсь к установке речевого синтеатора
argon@homeadmin:/usr/src/RHVoice$ sudo scons
scons: Reading SConscript files ...
Mkdir("build/linux")
Checking whether the C compiler works... yes
Checking whether the C++ compiler works... yes
Checking for pkg-config... yes
Checking for libpulse-simple... yes
Checking for ao... yes
Checking for portaudio-2.0... no
Checking Speech Dispatcher version ... no
ImportError: No module named lxml:
File "/usr/src/RHVoice/SConstruct", line 360:build_for_linux(base_env,vars)
File "/usr/src/RHVoice/SConstruct", line 318: duplicate=0)
File "/usr/lib/scons/SCons/Script/SConscript.py", line 614:return method(*args, **kw)
File "/usr/lib/scons/SCons/Script/SConscript.py", line 551:return _SConscript(self.fs, *files, **subst_kw)
File "/usr/lib/scons/SCons/Script/SConscript.py", line 256:call_stack[-1].globals)
File "/usr/src/RHVoice/data/SConscript", line 7:import RHVoicePackaging.windows
File "/usr/src/RHVoice/site_scons/RHVoicePackaging/windows.py", line 22:from lxml import etree
Осталось победить пакеты portaudio-2.0 и Speech Dispatcher
Не хотят находиться пакеты или зависимости которые помогли бы их установить. А с ошибками импорта даже не знаю пока что делать. Может пропадут когда все условию для сборки будут соблюдены. Эти строки смотрел в файлах по указанным путям но что там с ними делать и в чем причина ошибки понятия не имею (надеюсь что пока не имею)
Запустил scons install
без этих пакетов. Ну не получается каменный цветок. Сборка или каким словом обозвать этьт процесс запустилась. Если оценить то количество символов что мелькало на экране то... наверное это был отборный машинный мат в мою сторону...
Давай проверять и о чудо я услышал мелодичное, ласкающее слух привет.
НА echo "Привет" | RHVoice-test -p Anna
Но это было из консоли терминала SSH. Иду в MD и пробую там.
Ну непонимаю я еще как MD общается с моей убунтой. MD это по сути сайт который крутится на веб сервере апач. А как апач дружит с убунтой и что там они вместе курят для меня пока тайна покрытая дымом того что они там вместе курят. В общем я пытаюсь скормить это же там где Алиса общается со мной как с глухим. Ну где время пишет сколько пробило, статус там если какой поменялся и т.п. И второе место это в панели управления рядом с X-Ray консоль есть. Ни там ни там ни жу-жу.
Давай читать форум, благо другого выхода не остается.
Наткнулся на место где про терминалы упоминули и скриншот попался с настройками. Полез к себе сравнивать что да как у меня там в этих местах. Галочки поставил что разрешаю тревожить мои барабанные перепонки. Тоже особо не обрадовался результатам.
Полез в SSH-консоль отметил для себя такой момент что когда под простым пользователем захожу у меня echo "Привет" | RHVoice-test -p Anna
работает и произносит, когда пытаюсь под рутом (sudo su
)тоже самое выполнить молчит как Зоя Космодемьянская.
Давай вникать что и кто с какими правами. Нагуглил какую-то команду чтоб посмотреть от чьего имени основной цикл запускается (так кажется)
argon@homeadmin:~$ ps -ef |grep cycle.php
www-data 1086 1 0 20:35 ? 00:00:22 /usr/bin/php /var/www/html/cycle.php
argon 4483 2174 0 22:25 pts/0 00:00:00 grep --color=auto cycle.php
Это под обычным пользователем и тут я слышу "саламалейкум"
Если делаю sudo su
то получаю тишину в ответ. А на ту же команду под суперпользователем имею следующее:
root@homeadmin:/home/argon# ps -ef |grep cycle.php
www-data 1086 1 0 20:35 ? 00:00:23 /usr/bin/php /var/www/html/cycle.php
root 4575 4564 0 22:30 pts/0 00:00:00 grep --color=auto cycle.php
Соответственно делаю вывод что пользователь может делать то что не может рут. Т.е. рут не входит в какую-то группу в которую имеет доступ пользователь.
Дальше уже интуитивные эксперементы в MD чтоб получить вывод звука из него. Снес пользователей MD кроме одного и добавил второго с теми же логином и паролем как в самой убунте. Подозреваю что они в разных плоскостях или даже галактиках, но попробовать все-же решил а вдруг!??
WWW-data пользователя оставил.
Следующая веха к которой я двигаюсь это получить звук из MD и понять что влияет на его наличие/отсутствие
argon@homeadmin:~$ sudo systemctl status majordomo
● majordomo.service - Majordomo cycles service
Loaded: loaded (/etc/systemd/system/majordomo.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-09-23 23:04:58 +04; 9h ago
Main PID: 1075 (php)
Tasks: 18 (limit: 1910)
Memory: 164.6M
CGroup: /system.slice/majordomo.service
├─1075 /usr/bin/php /var/www/html/cycle.php
├─1410 php -q ./scripts/cycle_ping.php --params a:0:{}
├─1413 php -q ./scripts/cycle_schedapp.php --params a:0:{}
├─1415 php -q ./scripts/cycle_states.php --params a:0:{}
├─1416 php -q ./scripts/cycle_yandexweather.php --params a:0:{}
├─1417 php -q ./scripts/cycle_execs.php --params a:0:{}
├─1419 php -q ./scripts/cycle_webvars.php --params a:0:{}
├─1420 php -q ./scripts/cycle_phistory.php --params a:0:{}
├─1421 php -q ./scripts/cycle_syswidget.php --params a:0:{}
├─1422 php -q ./scripts/cycle_wscache.php --params a:0:{}
├─1423 php -q ./scripts/cycle_alarmclock.php --params a:0:{}
├─1424 php -q ./scripts/cycle_telegram.php --params a:0:{}
├─1425 php -q ./scripts/cycle_narodmon2.php --params a:0:{}
├─1430 php -q ./scripts/cycle_main.php --params a:0:{}
├─1431 php -q ./scripts/cycle_scheduler.php --params a:0:{}
├─1432 php -q ./scripts/cycle_mqtt.php --params a:0:{}
├─2117 php -q ./scripts/cycle_connect.php --params a:0:{}
└─9878 php -q ./scripts/cycle_websockets.php --params a:0:{}
сен 24 08:26:58 homeadmin sudo[14805]: www-data : user NOT in sudoers ; TTY=unknown ; PWD=/var/www/html ; USER=root ; COMMAND=smartctl -A /dev/sda
сен 24 08:31:58 homeadmin sudo[14870]: pam_unix(sudo:auth): conversation failed
сен 24 08:31:58 homeadmin sudo[14870]: pam_unix(sudo:auth): auth could not identify password for [www-data]
сен 24 08:31:58 homeadmin sudo[14870]: www-data : user NOT in sudoers ; TTY=unknown ; PWD=/var/www/html ; USER=root ; COMMAND=hddtemp /dev/sda1
сен 24 08:31:58 homeadmin sudo[14872]: pam_unix(sudo:auth): conversation failed
сен 24 08:31:58 homeadmin sudo[14872]: pam_unix(sudo:auth): auth could not identify password for [www-data]
сен 24 08:31:58 homeadmin sudo[14872]: www-data : user NOT in sudoers ; TTY=unknown ; PWD=/var/www/html ; USER=root ; COMMAND=hddtemp /dev/sdb1
сен 24 08:31:59 homeadmin sudo[14913]: pam_unix(sudo:auth): conversation failed
сен 24 08:31:59 homeadmin sudo[14913]: pam_unix(sudo:auth): auth could not identify password for [www-data]
сен 24 08:31:59 homeadmin sudo[14913]: www-data : user NOT in sudoers ; TTY=unknown ; PWD=/var/www/html ; USER=root ; COMMAND=smartctl -A /dev/sda
Что такое www-data : user NOT in sudoers ; TTY=unknown ; PWD=/var/www/html ; USER=root ; COMMAND=smartctl -A /dev/sda
и что с этим делать...
пользователя www-data
в группу sudo
включить может?
нагугленный источник моих телодвижений
пробую добавить www-data
в группу sudo
root@homeadmin:# usermod -a -G sudo www-data
Перезагружу систему посмотрю что получилось аль нет
____ Умный вигвам рад приветствовать Вас!
Не могу разобраться с alsamixer
И как его заставить работать на недефолтную звуковую карту.
Первая карта HDMI выход (я ее принудительно глушу клавишей М по всем каналам)
Вторая карта это та что мне нужно чтоб выдавала звуки Алисы.
Порой наблюдаю странное явление. Захожу в альсамикшер у меня нулевая карта (HDMI) в работе, а у первой (которую я все пытаюсь уговаривать) некоторые каналы погашены (MUTE)
Не знаю как сделать чтоб дефолтной стала первая карта (с линейного выхода которой через усилок звук идет на колонки)
Из ubunty консоли я балуюсь порой командами:
argon@homeadmin:~$ echo "Система умного вигвама приветствует вас" | RHVoice-test -p Anna
И на динамики звук синтезируется. Из МДМ никаких звуков нет.
Признателен за подсказки под этой заметкой. Отредактировал конфиг
sudo nano /usr/share/alsa/alsa.conf
в разделе defaults
в строках
defaults.ctl.card 0
defaults.pcm.card 0
прописал 1
получилось
defaults.ctl.card 1
defaults.pcm.card 1
Да, после перезагрузки нужная мне карта стала дефолтной (при входе в альсамикшер она первая и по дефолту она открывается).
В консоле убунты команда
argon@homeadmin:~$ echo "Привет" | RHVoice-test -p Anna
выдает
default Engine is default
и произносит звук. (это было и ранее)
В МД теперь в консоли панели управления ни команда say("Привет", 2);
выдает динь-донг и все (привет не произносит).
Из оболочки МД нет реакции на любые команды (пишет их только в чат системы)
Хоть динь-донг услышал из панели управления (хоть что-то) Вернусь буду дальше копать
Есть сдвиги получается. Теперь этот китаец (Динь-Донг) каждый час пиликает.
Дальше буду крушить терминалы и их настройки. Тоже дремучий лес и без фонарика с бубном не разобраться.
Еще надо найти место из которого этот китаец пиликает и понять в каком формате пишется строка. Где этот файл лежит я знаю и вероятно я смогу в будильник прикрутить чтото музыкальное вместо того чтобы лампочки зажигать.
Собирался в ночную смену на работу и у меня этот динь-донг проиграл. Озадачился с какой стати вдруг (до ровного часа еще прилично времени) . Вот зашел через впн с работы и увидел что стоял тестовый будильник
19:37 Алиса: будильник сработал через поле кода
Следующий день в поисках зацепки.
Зашел в панель управления -> X-Ray -> вкладка Structure давай смотреть может где подсказка будет на вывод звука (того же динь-донга)
Увидел в нескольких местах упоминание про VLC помнится еще при установки системы он (проигрыватель) ставился.
Проверяем что система скажет про VLC:
argon@homeadmin:~$ vlc --version
VLC media player 3.0.4 Vetinari (revision 3.0.4-0-gf615db6332)
Версия VLC 3.0.4 Vetinari (3.0.4-0-gf615db6332)
Вроде есть такой. Должен или нет работать как сервис понятия не имею.
Попробовал прибегнуть к поиску на форуме по запросу "VLC". Думаю кто решит попробовать также поискать будут приятно удивлены. Как его проверить и как настроить хз в общем (вопрос открытый)
Пока рылся в папке web-сервера наткнулся на какие-то звуковые файлы. Озадачился вопросом их прослушать. Для препарирования на всякий случай создал каталог в домашней директории (все в том же Midnight Commander ) и скопировал эти звуковые файлы. Из закромов отрыл команду, подправил пути и от имени www-data запустил :
argon@homeadmin:~$ sudo -u www-data /usr/bin/mplayer /home/argon/voice_test/rh_e1f8e6e2a5279f08160517771cedb394.wav
В динамиках мужик поведал, что "неизвестная команда". mplaer значит может воспроизводить
Пробую в консоли МД (в панели управления которая) вводить тоже самое. Крутится вертушок (типа прогресс бара и тишина)
Подводя итог Имеем:
Не имеем
Say (``);
пока без сдвигов.-Следующий день-
Вычитал тут что есть удобный консольный проигрыватель mocp
, а я дурак извращался с синтаксисом командной строки (хотя для опыта полезно)
Не полностью разобрался с проигрывателем (надо посмотреть ман страницы) и натыкал чего-то на клаве. Полез в htop
убивать сервисы. И обратил внимание на такую фигню. Даже не знаю нормально это или нет. У меня в системе есть и mpd, и pulseaudio, и vlc. Может я лишнего чего поставил из звуковых пакетов...
На скриншоте обозначил 1,2,3.
Прилетела подсказка как поставить в автозагрузку VLC (за что спасибо)
Теперь как это я делал.
Перешел по предложенной ссылке. Вариант с виндовс не мой случай иду к линукс варианту.
В консоль SSH копирую
argon@homeadmin:~$ crontab -e -u argon
(argon в данном случае имя пользователя Мажордомо)
открывается окно редактора и в конец комментариев добавил
@reboot vlc -I http --http-password 12345
(за месте 12345 прописывается ваш пароль)
перезагружаюсь и в строке браузера забиваю IP-адрес "зверька" с портом 8080.
http://_IP_:8080/
Логинюсь и вижу это:
Делаю вывод что в автозагрузку теперь VLC включен и буду пробовать настраивать терминалы в панели управления.
Тыкаюсь по веб-морде VLC не получается добавить файл для воспроизведения... В обозревателе VLC только папки Плейлист и Медиатека. Кликаешь на них ничего не происходит. По ходу опять с правами что-то накосячил.
____ 30.10.19 а вдруг
В консоли МДМ при вводе строки echo "test" | RHVoice-test
крутится статус бар и нифига не происходит.
Захожу в линукс через терминал ввожу sudo su
и вставляю то же самое (echo "test" | RHVoice-test
) молчит.
Становлюсь не суперпользователем exit
снова вставляю echo "test" | RHVoice-test
говорит "тест"
Т.е. под рутом не хочет говорить простым пользователем говорит. Почему так?
Вообще с этой убунтой и отсутствием рута постоянная путаница. Не знаю пока как вопрос сформулировать (просто заметка на будущее)
Мне нужно понять от какого пользователя посылается сообще из мажордомо в линукс и смотреть какие права у этого пользователя
____31.10.19
Нарыл на форуме наводку
https://mjdm.ru/forum/viewtopic.php?p=1389#p1389
думаю это моя проблема. Осталось найти пример как это сделать
____02.11.2019
Причесываю заметку может придет какое просветление.
Кризис жанра (все валится, не получается, топтание на месте) если не получится буду думать о полной переустановке МД и возможно даже линукса (погорячился наверное выбрав 18.10 убунту), а возможно попробую другие платформы умного дома поизучать. Для простой автоматизации ограничусь node-red.
____03.11.2019
Может кто подсказать по методам?
Захожу в Панель управления/X-Ray/Methods у меня список всех методов. Многие остались после развертывания системы. У большого количества просто нет параметров (это вообще нормально?), у многих дата очень древняя. Я их боюсь тргать и хотел бы удалить все лишнее без последствий.
Зацепился взгляд за метод .say захожу в него. В коде пути прописаны для виндовс когда у меня Ubunty. Я только в одном уверен (что что-то не понимаю).
да, и что я делаю неправильно когда публикую скриншоты (размытые какие-то), может неправильно то что я их вообще публикую?
____02.12.2019
Длительное время тыкался как котенок пытаясь понять, чего не хватает для того чтоб синтезатор речи выводил звук в МД. Был только динь-донг каждый час и все. Даже не знаю как так получилось но в один момент МД заговорил. Могу только связать с установкой кодеков в убунту для того чтоб на сцену можно было вывести rtsp поток с китайской камеры. Полагаю какого-то компонента, который установился с кодеком, не хватало. Других предположений у меня нет.
Кодек ставил командой apt-get install ffmpeg
. Есть еще много непоняток и надо в голове эти пазлы как-то скучковать в более крупные фрагменты.
Это моя корявенькая сцена на которой пока остановился.
Подводя итог буду считать, что мне удалось заставить говорить железку (пусть пока только время), в этой заметке не планируется больше продолжение. Закрываю.
Самара, Россия
На форуме: Argon