LINUX.ORG.RU

Голосовой ассистент. Что доступно?

 ,


4

9

Не всегда есть возможность трогать клавиатуру и мышь (руки в масле\пыли\стружке). Нужен голосовой ассистент, который:

* Может быть активен в фоне, слушая команды и активируясь по заданному слову\фразе
* Иметь возможность выполнить кастомно заданную команду (типа «активируй узел 1443», где «активируй узел» выполнит скрипт node.sh, а 1443 пойдет в параметр.
* Работать автономно от сети. Хранилище для настроенного локального анализатора можно выделить до 100 ГБ.
* Давать аудиоподтверждение принятой команды (не всегда есть возможность посмотреть на экран).

Если надо будет долго обучать под распознавание своего голоса - норм.

Что есть из доступного? Если опенсорс - еще лучше.

В теги добавляю пистон, обычно по этим вопросам его долбят.

★★★★

Пистон совсем не при чём. Есть древняя штука - cvoicecontrol. После обучения работает почти идеально.

Stanson ★★★★★ ()
Ответ на: комментарий от anonymous

Solkogan использует google speech recognition, с соответствующим лазанием в сеть на каждый запрос - весь голосовой трафик не прогонишь, да и небезопасно.

Дуся платная, когда есть интернет - то все летит к ним на сервера. На компе работает только из браузера со всеми ограничениями - скрипты не повыполняешь, консоль не потюкаешь.

PPP328 ★★★★ ()
Ответ на: комментарий от Stanson

cvoicecontrol was written in 2000 by Daniel Kiecza
bugs/problems have blocked potential users of cvoicecontrol for years
looks like no one has used it since at least 2007

Настолько древняя, что в 2010м уже говорили, что оно целиком мертво. Написано в 2000м под реалии 2000го.

depends on ncurses4. Ubuntu 10.04 ships with ncurses5
libncurses4 and libncurses4-dev install ok with libncurses5 present
possible issue with symlink, that may interfere with ncurses5: >/usr/lib/libncurses.so -> /lib/libncurses.so.4

Ну и, соответственно, зависит от такого древнего говна мамонта, которого и в допрепах хрен найдешь, а если и найдешь, то оно на систему 2019го года не поставится из-за конфликтов.

PPP328 ★★★★ ()
Последнее исправление: PPP328 (всего исправлений: 2)
Ответ на: комментарий от PPP328

Я не разбиралась, но по-моему через их сервера - это опционально.

alpha ★★★★★ ()
Ответ на: комментарий от PPP328

Да ему давно насрать какая версия ncurses, работает везде. Кроме того ncurses там используется только в обучалке.

$ ldd cvoicecontrol 
        linux-gate.so.1 (0xb7fb3000)
        libm.so.6 => /lib/libm.so.6 (0xb7e28000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7e08000)
        libc.so.6 => /lib/libc.so.6 (0xb7c47000)
        /lib/ld-linux.so.2 (0xb7fb5000)

$ ldd model_editor 
        linux-gate.so.1 (0xb7f94000)
        libm.so.6 => /lib/libm.so.6 (0xb7e09000)
        libncurses.so.6 => /lib/libncurses.so.6 (0xb7ddb000)
        libtinfo.so.6 => /lib/libtinfo.so.6 (0xb7db3000)
        libc.so.6 => /lib/libc.so.6 (0xb7bf2000)
        /lib/ld-linux.so.2 (0xb7f96000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7bec000)

Хипсторы такие хипсторы.

Оно работает, причём работает совершенно автономно, без всяких там облаков, при этом не пожирая гигабайты и не тормозя даже на самом убогом MIPS в отличии от всего этого новомодного говнища, и совершенно насрать когда оно было написано и когда вышла последняя версия, и тем более насрать, что там думают об этом всякие любители новых модных слов.

Stanson ★★★★★ ()
Последнее исправление: Stanson (всего исправлений: 2)
Ответ на: комментарий от Stanson

Как я и сказал, для установки требует libncurses4, которая не может одновременно стоять с libncurses5. При этом libncurses4 даже нет в стандартных репах.

Оно даже не компилится на новых ncurses:

/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:54: undefined reference to `wmove'
ncurses_tools.o: In function `mvwaddstrrght':
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:64: undefined reference to `wmove'
ncurses_tools.o: In function `mvwaddint':
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:75: undefined reference to `wmove'
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:75: undefined reference to `waddnstr'
ncurses_tools.o: In function `mvwaddseparator':
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:87: undefined reference to `wmove'
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:87: undefined reference to `acs_map'
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:87: undefined reference to `waddch'
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:89: undefined reference to `wmove'
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:89: undefined reference to `acs_map'
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:89: undefined reference to `waddch'
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:90: undefined reference to `wmove'
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:90: undefined reference to `acs_map'
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:90: undefined reference to `waddch'

PPP328 ★★★★ ()
Последнее исправление: PPP328 (всего исправлений: 1)
Ответ на: комментарий от PPP328

Да к нему почти всегда гонится звуковой трафик если есть телефон с ним или просто гугл в браузере открыт (если ты, конечно, не заморочился и все не поотрубал)

Dred ★★★★★ ()
Ответ на: комментарий от PPP328

Как я и сказал, для установки требует libncurses4, которая не может одновременно стоять с libncurses5. При этом libncurses4 даже нет в стандартных репах.

Это полнейший бред. Оно даже с libncurses6 собирается и там не используются никакие libncurses4-специфичных вещи которых нету в следующих версиях.

сделай /usr/include/ncurses/ncurses.h линком на /usr/include/ncurses/curses.h

Stanson ★★★★★ ()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

Не собирается. Ему функции из ncurses4 нужны, а не хэдеры. Ошибки линкера, а не компилятора

sudo mkdir /usr/include/ncurses
[sudo] пароль для alex: 
alex@alex-thinkpad-l560:~/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha$ sudo ln -s /usr/include/ncurses.h /usr/include/ncurses/ncurses.h
alex@alex-thinkpad-l560:~/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha$ sudo ln -s /usr/include/ncurses_dll.h /usr/include/ncurses/ncurses_dll.h
alex@alex-thinkpad-l560:~/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha$ make
make  all-recursive
make[1]: вход в каталог «/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha»
Making all in cvoicecontrol
make[2]: вход в каталог «/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol»
Making all in docs
make[3]: вход в каталог «/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/docs»
Making all in en
make[4]: вход в каталог «/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/docs/en»
make[4]: Цель «all» не требует выполнения команд.
make[4]: выход из каталога «/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/docs/en»
make[4]: вход в каталог «/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/docs»
make[4]: Цель «all-am» не требует выполнения команд.
make[4]: выход из каталога «/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/docs»
make[3]: выход из каталога «/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/docs»
make[3]: вход в каталог «/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol»
gcc  -g -O2  -o microphone_config  audio.o keypressed.o mixer.o ncurses_tools.o preprocess.o realfftf.o microphone_config.o -lm  
ncurses_tools.o: In function `mvwaddstrcntr':
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:54: undefined reference to `wmove'
ncurses_tools.o: In function `mvwaddstrrght':
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:64: undefined reference to `wmove'
ncurses_tools.o: In function `mvwaddint':
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:75: undefined reference to `wmove'
/home/alex/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol/ncurses_tools.c:75: undefined reference to `waddnstr'

PPP328 ★★★★ ()
Ответ на: комментарий от PPP328

А -lncurses у тебя вообще где? autoreconf -i делал? Все эти функции есть и в libncurses5 и в libncurses6

Откуда вообще этот бред про необходимость libncurses4?

Stanson ★★★★★ ()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

Откуда вообще этот бред про необходимость libncurses4?

https://wiki.ubuntu.com/cvoicecontrol

depends on ncurses4. Ubuntu 10.04 ships with ncurses5

А -lncurses у тебя вообще где

:/lib/x86_64-linux-gnu$ ls -la | grep ncur
lrwxrwxrwx  1 root root      17 мар  8  2017 libncurses.so.5 -> libncurses.so.5.9
-rw-r--r--  1 root root  138112 фев 19  2016 libncurses.so.5.9
lrwxrwxrwx  1 root root      18 мар  8  2017 libncursesw.so.5 -> libncursesw.so.5.9
-rw-r--r--  1 root root  191464 фев 19  2016 libncursesw.so.5.9

и это входит в дефолтный -L, иначе бы отвалилось полсистемы.

PPP328 ★★★★ ()
Ответ на: комментарий от Stanson

Короче скомпилил - у автора недоделанный makefile, в нем вообще не указано lncurses. Причем makefile не который снаружи лежит, а который в каталоге с кодом.

Ща буду дальше ковырять.

Правда оно мне теперь говорит, что мне надо в 2000й и купить аудиокарту:

alex@alex-thinkpad-l560:~/Загрузки/Дистрибутивы/cvoicecontrol-0.9alpha/cvoicecontrol$ ./microphone_config 
No mixer devices available!
Please purchase a sound card and install it!
PPP328 ★★★★ ()
Последнее исправление: PPP328 (всего исправлений: 1)
Ответ на: комментарий от PPP328

Ну а при линковке-то почему -lm есть, а -lncurses нету? Ты в первый раз что-то собрать пытаешься. что-ли, если такие мелочи вызывают проблемы?

$ ldd microphone_config 
        linux-gate.so.1 (0xb7fa8000)
        libncurses.so.5 => /lib/libncurses.so.5 (0xb7f10000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7ef0000)
        libm.so.6 => /lib/libm.so.6 (0xb7dad000)
        libc.so.6 => /lib/libc.so.6 (0xb7bec000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7be6000)
        /lib/ld-linux.so.2 (0xb7faa000)

Вот. собрал с libncurses.so.5.9 например, никаких проблем.

Ручками попробуй

gcc -g -O2 -o microphone_config audio.o mixer.o preprocess.o realfftf.o keypressed.o ncurses_tools.o microphone_config.o  -lncurses -lm

Stanson ★★★★★ ()
Ответ на: комментарий от Stanson

Не выходит каменный цветок

''' $ lsmod | grep oss snd_pcm_oss 57344 0 snd_mixer_oss 28672 1 snd_pcm_oss

$ microphone_config No mixer devices available! Please purchase a sound card and install it! '''

Strangeman ()
Ответ на: комментарий от PPP328

Ему вообще ncurses не нужен.

equery g cvoicecontrol
 * Searching for cvoicecontrol ...

 * dependency graph for media-sound/cvoicecontrol-0.9_alpha-r1
 `--  media-sound/cvoicecontrol-0.9_alpha-r1  amd64 
   `--  app-portage/elt-patches-20170815  (>=app-portage/elt-patches-20170815) amd64 
   `--  sys-devel/automake-1.16.1-r1  (>=sys-devel/automake-1.16.1) amd64 
   `--  sys-devel/automake-1.15.1-r2  (>=sys-devel/automake-1.15.1) amd64 
   `--  sys-devel/autoconf-2.69-r4  (>=sys-devel/autoconf-2.69) amd64 
   `--  sys-devel/libtool-2.4.6-r3  (>=sys-devel/libtool-2.4) amd64 
[ media-sound/cvoicecontrol-0.9_alpha-r1 stats: packages (6), max depth (1) ]
anonymous ()
Ответ на: комментарий от anonymous

С ncurses у меня и не было проблем, а со сборкой ступил. Сейчас собралось. Имена исполняемух файлов поменялись, с этим разобрался. Пытаюсь запустить.

Strangeman ()
Ответ на: комментарий от Strangeman

Запусти какой-нибудь микшер, и посмотри, там у тебя вообще есть регулировки относящиеся именно к микрофону?

покажи ещё

cat /proc/asound/card0/oss_mixer
Stanson ★★★★★ ()
Ответ на: комментарий от Stanson
root@alisa:~/cvoicecontrol# cat /proc/asound/card0/oss_mixer
VOLUME "Master" 0
BASS "" 0
TREBLE "" 0
SYNTH "" 0
PCM "PCM" 0
SPEAKER "Beep" 0
LINE "" 0
MIC "Mic" 0
CD "" 0
IMIX "" 0
ALTPCM "Headphone" 0
RECLEV "" 0
IGAIN "Capture" 0
OGAIN "" 0
LINE1 "" 0
LINE2 "" 0
LINE3 "" 0
DIGITAL1 "IEC958" 0
DIGITAL2 "" 0
DIGITAL3 "" 0
PHONEIN "" 0
PHONEOUT "Speaker" 0
VIDEO "" 0
RADIO "" 0
MONITOR "" 0
Strangeman ()
Ответ на: комментарий от Stanson

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

/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: microphone_config.o: неопределённая ссылка на символ «cbreak»
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /lib64/libtinfo.so.6: error adding symbols: в командной строке не указан DSO
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
make[3]: *** [Makefile:418: cvoicecontrol_microphone_config] Ошибка 1
make[3]: выход из каталога «/root/cvoicecontrol/cvoicecontrol»
make[2]: *** [Makefile:473: all-recursive] Ошибка 1
make[2]: выход из каталога «/root/cvoicecontrol/cvoicecontrol»
make[1]: *** [Makefile:360: all-recursive] Ошибка 1
make[1]: выход из каталога «/root/cvoicecontrol»
make: *** [Makefile:301: all] Ошибка 2
Пробую разобраться

Strangeman ()
Ответ на: комментарий от Strangeman

Блин, как всё тяжко и неоднозначно. Попробовал собрать на Ubuntu 18.04 - все собралось без проблем, но при запуске

root@notebook:~/cvoicecontrol# cvoicecontrol_microphone_config
*** buffer overflow detected ***: cvoicecontrol_microphone_config terminated
Аварийный останов (стек памяти сброшен на диск)

Strangeman ()
Ответ на: комментарий от Strangeman

Дело в запуске под рутом?

И да и нет. Не запускай ничего под рутом! Откуда сырцу брал для сборки?

anonymous ()
Ответ на: комментарий от anonymous

Брал отсюда https://github.com/Sound-Linux-More/cvoicecontrol

Кроме того в генте оно есть в репах, но более старое - не находит звуковуху. Прививать мне хороший тон, пожалуй, поздновато на 6м десятке, но дело не в этом. Я пытаюсь запустить на 4х разных инсталляциях и везде разные грабли. Дальше всего удалось продвинуться на специально отдельно поставленом Дебиане, где все скомпилилось, после небольших танцев с бубном увиделась звуковуха, но cvoicecontrol_microphone_config ругается, что уровень с микрофона мал. При этом совершенно очевидно, что крутит он не тот миксер, т.к. на том миксере уровень не меняется. В системе 2 «звуковухи» - HDMI и аналоговая. По умолчанию поставлена аналоговая и alsamixer именно её видит по умолчанию. Сейчас не могу выложить подробности - работаю, а за подробностями нужно перезагружаться в тот Дебиан.

Strangeman ()
Ответ на: комментарий от Strangeman

совершенно очевидно, что крутит он не тот миксер

Выхлоп:

ls -1 /dev/mix*

будьте любезны.

anonymous ()

Зачем на серверном Linux голосовой ассистент?

А на десктопных ОС их не много и для кождой есть свой.

anonymous ()
Ответ на: комментарий от anonymous

Предлагаете на каждую задачу отдельную тему создавать? Кому-то и на сервере может голосовой ассистент понадобится, а мне нужно легкое простое приложение для голосового управления умным домом и без этих ваших облаков. cvoicecontrol отлично подходит для моей задачи даже без допиливания кода, т.к. штатными средствами позволяет запустить скрипт и передать ему параметры.

Strangeman ()
Ответ на: комментарий от anonymous

Чем cvoicecontrol не угодил на десктопе, кроме того, что он отсутствует в нормальном виде в репах?

Strangeman ()
Ответ на: комментарий от Strangeman

мне нужно легкое простое приложение

Ээээ… CVoiceControl кушает прилично. Не оч он легкий, вообще то.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.