[Модуль] [Железо] Голосовое управление по ключевому слову на базе Orange Pi Zero и аналогов

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Anaki
Сообщения: 35
Зарегистрирован: Пн авг 06, 2018 12:32 am
Благодарил (а): 0
Поблагодарили: 21 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение Anaki » Пн ноя 05, 2018 7:35 am

o.a.ryzhov писал(а):
Вс ноя 04, 2018 9:43 pm
У меня такая же проблемма, прям мозг выносит, пробовал google tts тот же результат, что делать?
Попробуй запустить параллельно когда такое происходит. Возможно это очень медленная карта и что-то так сильно ее грузит что на запись\чтение файла уходит столько времени.
Аватара пользователя
Ron
Сообщения: 480
Зарегистрирован: Пт окт 27, 2017 6:44 pm
Благодарил (а): 144 раза
Поблагодарили: 70 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение Ron » Пн ноя 05, 2018 1:31 pm

Anaki писал(а):
Пн ноя 05, 2018 7:25 am
Нет, распознавание происходит на удаленном сервере. Snowboy, запись и запросы много не жрут. 2-3 секунды это ожидание ответов от STT и TTS. У меня нет такой проблемы, хотя весь код работает на одном ядре (ну, кроме самого воспроизведения).
Хм, у меня снежный мальчик стоит. Тупил.. Про ТТС оно понятно. Время позволит - посмотрю что же в нем тупит.. Сенкс.
drhellp
Сообщения: 20
Зарегистрирован: Чт мар 08, 2018 6:41 pm
Благодарил (а): 6 раз
Поблагодарили: 3 раза

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение drhellp » Вт ноя 06, 2018 12:08 pm

Прикупил плату Orange Pi Zero 512Mb с платой расширения
https://drive.google.com/open?id=1J-mYy ... _znaD01PZj
С установочного образа не завелась, решил поставить на чистую систему. Помогли инструкции:
https://connect.smartliving.ru/profile/ ... og147.html
https://github.com/devoff/mdmPiTerminal ... 0%BB%D0%B0
Встроенный микрофон полное г, подключил по USB вебку с микрофоном, записал ключевые слова, все настроил.
На ключевое слово реагирует, но в терминал не отвечает, в чат пишет. Вот мои настройки:
Настройки терминала
https://drive.google.com/open?id=14NlmT ... rnWdj_du4B
Настройки ассистента
https://drive.google.com/open?id=1ITye6 ... HwvtsJGMZ5
Скрипт

Код: Выделить всё

say("Привет",2);
Пробовал так

Код: Выделить всё

say("Привет",2,mdmterminal);
В чат ответы пишет, но в терминал не отвечает.
Ещё смущает статус Offline в терминалах.
https://drive.google.com/open?id=1g08vA ... Die2_Ri2Yw
Помогите настроить
Anaki
Сообщения: 35
Зарегистрирован: Пн авг 06, 2018 12:32 am
Благодарил (а): 0
Поблагодарили: 21 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение Anaki » Вт ноя 06, 2018 6:06 pm

drhellp писал(а):
Вт ноя 06, 2018 12:08 pm

Код: Выделить всё

say("Привет",2);
Пробовал так

Код: Выделить всё

say("Привет",2,mdmterminal);
В чат ответы пишет, но в терминал не отвечает.
Ещё смущает статус Offline в терминалах.
https://drive.google.com/open?id=1g08vA ... Die2_Ri2Yw
Помогите настроить
У меня работают sayReply("текст", 2, "текст-триггер"), ask("вопрос", "терминала.ип.указать.тут") и say("текст",5). То что он всегда Offline это нормально.
За это сообщение автора Anaki поблагодарил:
drhellp (Ср ноя 07, 2018 10:03 am)
Рейтинг: 1.16%
ilyasor
Сообщения: 20
Зарегистрирован: Чт ноя 30, 2017 7:19 am
Благодарил (а): 3 раза
Поблагодарили: 21 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение ilyasor » Ср ноя 07, 2018 2:29 am

Здравствуйте, коллеги!

Похоже, без вашей помощи все-таки не разобраться.

Специально для этого модуля приобрел Orange Pi Zero H2 512MB. Платы расширения нет, поэтому на звук пока и не рассчитываю.
Установил образ для быстрого старта с использованием USB микрофона. После установки система завелась, даже вафля не падает пока, что не может не радовать.

А вот потом начались проблемы. Из модуля в MJD я вообще не могу понять, видит ли он терминал. При нажатии на запись, компиляцию ничего не происходит, т.е. никакой реакции нет. Открыл папку с моделями, там уже лежали 2 модели. Не знаю, мои это модели записались или они сами туда ставятся. На сноубое модель записал, реакции все равно никакой.

service mdmpiterminalsayreply status показывает следующее (по моим ощущениям все ок)

Код: Выделить всё

● mdmpiterminalsayreply.service - MDM Pi Terminal SayReply Module
   Loaded: loaded (/etc/systemd/system/mdmpiterminalsayreply.service; enabled; v
   Active: active (running) since Mon 2018-08-06 19:39:37 UTC; 8s ago
 Main PID: 2413 (python)
   CGroup: /system.slice/mdmpiterminalsayreply.service
           └─2413 /home/pi/mdmPiTerminal/env/bin/python -u /home/pi/mdmPiTermina

Aug 06 19:39:37 orangepizero systemd[1]: Started MDM Pi Terminal SayReply Module
Aug 06 19:39:41 orangepizero systemd[1]: Started MDM Pi Terminal SayReply Module
lines 1-9/9 (END)...skipping...
● mdmpiterminalsayreply.service - MDM Pi Terminal SayReply Module
   Loaded: loaded (/etc/systemd/system/mdmpiterminalsayreply.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-08-06 19:39:37 UTC; 8s ago
 Main PID: 2413 (python)
   CGroup: /system.slice/mdmpiterminalsayreply.service
           └─2413 /home/pi/mdmPiTerminal/env/bin/python -u /home/pi/mdmPiTerminal/src/sayreply.py

Aug 06 19:39:37 orangepizero systemd[1]: Started MDM Pi Terminal SayReply Module.
Aug 06 19:39:41 orangepizero systemd[1]: Started MDM Pi Terminal SayReply Module.
На sudo systemctl status mdmpiterminal.service выскакивают ошибки. У одного пользователя уже было такое, ничего не решили.

Код: Выделить всё

● mdmpiterminal.service - MDM Pi Terminal
   Loaded: loaded (/etc/systemd/system/mdmpiterminal.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-08-06 19:28:46 UTC; 13min ago
 Main PID: 809 (python)
   CGroup: /system.slice/mdmpiterminal.service
           └─809 /home/pi/mdmPiTerminal/env/bin/python -u /home/pi/mdmPiTerminal/src/snowboy.py

Aug 06 19:29:03 orangepizero python[809]: ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
Aug 06 19:29:04 orangepizero python[809]: ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
Aug 06 19:29:04 orangepizero python[809]: ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
Aug 06 19:29:04 orangepizero python[809]: ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
Aug 06 19:29:04 orangepizero python[809]: ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
Aug 06 19:29:04 orangepizero python[809]: ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
Aug 06 19:29:04 orangepizero python[809]: ALSA lib pcm_dmix.c:968:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
Aug 06 19:29:04 orangepizero python[809]: ALSA lib pcm_dsnoop.c:545:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
Aug 06 19:29:04 orangepizero python[809]: ALSA lib pcm_dmix.c:968:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
Aug 06 19:29:04 orangepizero python[809]: ALSA lib pcm_dsnoop.c:545:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream

Ну и на проверку микрофона
sudo arecord -M -f S16_LE -r 16000 -c 1 --buffer-size=204800 -v /tmp/sample.wav
звуковой файл записывается, причем с нужного USB микрофона

Код: Выделить всё

Recording WAVE '/tmp/sample.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
Plug PCM: Rate conversion PCM (48000, sformat=S16_LE)
Converter: linear-interpolation
Protocol version: 10002
Its setup is:
  stream       : CAPTURE
  access       : MMAP_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 1
  rate         : 16000
  exact rate   : 16000 (16000/1)
  msbits       : 16
  buffer_size  : 6000
  period_size  : 2000
  period_time  : 125000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 2000
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 6000
  silence_threshold: 0
  silence_size : 0
  boundary     : 393216000
Slave: Direct Snoop PCM
Its setup is:
  stream       : CAPTURE
  access       : MMAP_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 1
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 18000
  period_size  : 6000
  period_time  : 125000
  tstamp_mode  : NONE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 6000
  period_event : 0
  start_threshold  : 3
  stop_threshold   : 18000
  silence_threshold: 0
  silence_size : 0
  boundary     : 1179648000
Hardware PCM card 2 'USB PnP Sound Device' device 0 subdevice 0
Its setup is:
  stream       : CAPTURE
  access       : MMAP_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 1
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 18000
  period_size  : 6000
  period_time  : 125000
  tstamp_mode  : ENABLE
  tstamp_type  : MONOTONIC
  period_step  : 1
  avail_min    : 6000
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 1179648000
  silence_threshold: 0
  silence_size : 0
  boundary     : 1179648000
  appl_ptr     : 0
  hw_ptr       : 52836078
mmap_area[0] = 0x196a380,0,16 (16)
^CAborted by signal Interrupt...
arecord: pcm_read:2032: read error: Interrupted system call
Заранее спасибо за советы!
drhellp
Сообщения: 20
Зарегистрирован: Чт мар 08, 2018 6:41 pm
Благодарил (а): 6 раз
Поблагодарили: 3 раза

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение drhellp » Ср ноя 07, 2018 9:19 am

Anaki писал(а):
Вт ноя 06, 2018 6:06 pm
У меня работают sayReply("текст", 2, "текст-триггер"), ask("вопрос", "терминала.ип.указать.тут") и say("текст",5). То что он всегда Offline это нормально.
Спасибо, sayReply("текст", 2) работает, я сам ступил, на терминале IP не правильный указал. А что за
Anaki писал(а):
Вт ноя 06, 2018 6:06 pm
"текст-триггер"
drhellp
Сообщения: 20
Зарегистрирован: Чт мар 08, 2018 6:41 pm
Благодарил (а): 6 раз
Поблагодарили: 3 раза

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение drhellp » Ср ноя 07, 2018 9:23 am

ilyasor писал(а):
Ср ноя 07, 2018 2:29 am
Специально для этого модуля приобрел Orange Pi Zero H2 512MB.
У меня такая же плата, но без вывода звука не получится настроить. Можно вывести звук на телевизор тюльпанами вот распиновка https://drive.google.com/open?id=1QsxMI ... Z44cOnHZS6
Во время записи ключевых слов в терминал выводятся голосовые оповещения.
drhellp
Сообщения: 20
Зарегистрирован: Чт мар 08, 2018 6:41 pm
Благодарил (а): 6 раз
Поблагодарили: 3 раза

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение drhellp » Ср ноя 07, 2018 9:29 am

lanket писал(а):
Вт май 08, 2018 12:45 am
Реагирование на ключевое слово сделано на snowboy.
Распознование речи и синтез речи на выбор Google, Yandex, Wit... На выбор.
При реагировании на ключевое слово терминал отвечает разными сообщениями, где можно их переопределить и переписать?
Anaki
Сообщения: 35
Зарегистрирован: Пн авг 06, 2018 12:32 am
Благодарил (а): 0
Поблагодарили: 21 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение Anaki » Ср ноя 07, 2018 9:35 am

drhellp писал(а):
Ср ноя 07, 2018 9:19 am
"текст-триггер"
viewtopic.php?t=2993

drhellp писал(а):
Ср ноя 07, 2018 9:29 am
При реагировании на ключевое слово терминал отвечает разными сообщениями, где можно их переопределить и переписать?
https://github.com/devoff/mdmPiTerminal ... boy.py#L65
За это сообщение автора Anaki поблагодарил:
drhellp (Ср ноя 07, 2018 9:39 am)
Рейтинг: 1.16%
ilyasor
Сообщения: 20
Зарегистрирован: Чт ноя 30, 2017 7:19 am
Благодарил (а): 3 раза
Поблагодарили: 21 раз

Re: Голосовое управление по ключевому слову на базе Апельсинки Зеро

Сообщение ilyasor » Ср ноя 07, 2018 4:56 pm

drhellp писал(а):
Ср ноя 07, 2018 9:23 am
ilyasor писал(а):
Ср ноя 07, 2018 2:29 am
Специально для этого модуля приобрел Orange Pi Zero H2 512MB.
У меня такая же плата, но без вывода звука не получится настроить. Можно вывести звук на телевизор тюльпанами вот распиновка https://drive.google.com/open?id=1QsxMI ... Z44cOnHZS6
Во время записи ключевых слов в терминал выводятся голосовые оповещения.
Тюльпаны подключать к LineOutL и LineOutR?
Ответить