[Приложение] Sound Direct Manager

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

Модератор: immortal

Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Sound Direct Manager

Сообщение Bagir » Ср апр 13, 2016 12:06 pm

Точно! Дело было ночью, и уже хотелось спать :D Забыл выложить References. Эти компоненты могут быть не у каждого на компе. Подробнее о References позже напишу на первой странице. Эта версия просто для ознакомления и теста. Но у меня она уже используется.
Ещё кое что важное. В ini файле есть строка
sadr="http://localhost:83"
Дело в том, что у меня сервер работает на 83 порту. Стандартно это 80 порт. Уберите эту строку и по умолчанию будет использован 80 потр.
Немного обновил и добавил описание новых возможностей на первом сообщении. А так же вариант настройки Шаблонов поведения, чтобы Алиса сама продолжала диалог. Вечерком выложу там это обновление с описанием настроек.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Sound Direct Manager

Сообщение Bagir » Ср апр 13, 2016 5:22 pm

Теперь о дополнительных настройках на главной форме программы:
Когда поменяю версию в первом топике, размещу этот текст там.

Кнопка Scect открывает окно в котором происходит анализ свукового сигнала. Кликом внутри этой формы можно переключить тип. Их там несколько. Но не закрывайте эту форму крестиком. При этом прекратится анализ данных, и определение тишины не будет работать. Чтобы скрыть эту форму просто нажмите на кнопку Scect ещё раз.

Группа Громкость:
Слайдер регулирует уровень громкости с устройства ввода звука. Как правило, это микрофон, но может быть и линейный выход. Прогрессбар внизу показывает уровень громкости. Изменяя уровень громкости, заставьте его устойчиво колебаться хотя бы до середины, но по возможности, чтобы при тишине он не сильно прыгал. Всё зависит от качества вашего микрофона и звуковой карты разумеется.

Группа Тишина:
Слайдер Уровень. Это предел громкости ниже которого программа будет считать, что наступила тишина и начнет отсчет времени.
Слайдер Задержка. Это время после которого программа зафиксирует тишину.
Индикатор внизу подмигивает когда регистрируется тишина.

Группа Время записи:
Слайдер мин это минимальное время записи в секундах. Даже если будет тишина, запись всё равно будет продолжаться.
Слайдер макс это максимальное время записи после которого она будет прекращена в любом случае, даже если не будет зафиксирована тишина. Например при наличии внешнего шума, тишина может быть не зарегистрирована даже посте того как Вы закончите говорить.
Галка Стоп по тишине разрешает прерывание записи после регистрации тишины, если время записи больше слайдера мин.

Группа Запись:
Кнопка Record начинает запись. По сути на неё жмет Алиса для продолжения диалога с вами, отправляя в МД команду -recognizeid:1 (где 1 это id пользователя в МД). И именно на эту кнопку в будущем будет жать сам SDM, когда услышит кодовое слова (Имя персонажа). Тут кстати есть еще мысль. Например, в планшете была функция определение лиц. Не так важно чьё это лицо, а важно, что кто то подошёл, и хочет что то сказать. Это тоже можно будет использовать.
Кнопка Play проиграет ранее записанный голос, чтобы можно было самому оценить, что вы пытайтесь распознать. А именно качество, громкость, шум и длину сообщения.

Блок Медиа пока недоступен. В нем можно будет отправить музыку на выбранный канал звуковой карты. Функции уже встроены в программу и работают. Но я еще подумаю над способом обмена данными с МД. Отличительная особенность этого блока в том, что звуковые файлы ставятся не в общую очередь на канале, а проигрываются одновременно. Когда будут приходить сообщения, громкость музыки будет снижаться на время их чтения. Штучка тоже вроде как интересная. Можно прицепить динамик в душевой кабинке или в мастерской )) А для включения музыки попросить Алису сделать это.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
smoker_vvo
Сообщения: 113
Зарегистрирован: Пт дек 14, 2012 3:46 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Sound Direct Manager

Сообщение smoker_vvo » Чт апр 14, 2016 11:53 am

Bagir, есть вопрос при попытке управлять через чат, после командв Включить, и уточнение СВЕТ вылетает следующее.... Что с этим делать?? И еще вопрос, про распознование php файл уже есть или надо где то взять??
Вложения
экран.png
экран.png (657.85 КБ) 10613 просмотров
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Sound Direct Manager

Сообщение Bagir » Чт апр 14, 2016 12:10 pm

Вероятно как раз таки нет файла voice_recognition.php в каталоге где лежат файлы МД. Вот SDM так и ругается. Это костыль в котором происходит передача файла в Гугл и получение ответа. Ранее у меня не получилось переделать код примера под VB6. Но вот буквально вчера нашёл рабочий пример! И уже добавил его в SDM. Больше этот костыль не нужен! Наверное сегодня выложу обнову, которая будет работать без файла voice_recognition.php
Успел бы вчера, но налетел на небольшие грабли. Ответ гугла это JCON. в php есть отличная функция json_decode() которая раскладывает JCON на массив. А вот в VB6 ничего штатного для работы со структурой JCON нет.
Сегодня постараюсь найти класс или компонент для этого чтобы не парсить JCON как обычный текст.

Всё! нашёл класс чтобы парсить JCON. На мой взгляд он не очень удачный для больших задач, но с данной справляется на ура. Да и можно допилить будет его потом на будущее. Всё же JCON весьма популярная штуковина.
Из плюсов сразу видно, что работать стало быстрее. Оно и понятно, нет лишних действий. Вечером ожидайте обновление на первой странице!

И останется у нас только один костыль. Сейчас звук пишется в WAV, а для перекодировки во FLAC используется сторонняя утилита flac.exe Теряем качество и скорость :( Описание библиотеки для FLAC я нашел. Оно уже добавлено в SDM. Но я пока не могу правильно описать структуру FLAC файла. Примеры в Интернете не ловятся. Но я буду искать дальше.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
smoker_vvo
Сообщения: 113
Зарегистрирован: Пт дек 14, 2012 3:46 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Sound Direct Manager

Сообщение smoker_vvo » Чт апр 14, 2016 2:27 pm

Ок. Будем ждать.
smoker_vvo
Сообщения: 113
Зарегистрирован: Пт дек 14, 2012 3:46 am
Благодарил (а): 2 раза
Поблагодарили: 1 раз

Re: Sound Direct Manager

Сообщение smoker_vvo » Чт апр 14, 2016 2:30 pm

Bagir, еще один вопрос. Я правильно понимаю, что для распознования подключаем микрофон и просто говорим и СДМ будет распозновать?
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Sound Direct Manager

Сообщение Bagir » Чт апр 14, 2016 3:28 pm

Конечно же нет, если мы будем забрасывать в чат с Алисой всё что говорим, там будет каша. Еще раз советую прочитать первый пост. Инфы там конечно много, но она вся нужная.
Алгоритм распознавания такой: Когда у Алисы возникает событие, на которое ей нужен ответ, она отправляет в SDM текст для чтения, но добавляет к нему команду для начала записи и распознавания голоса. После этого МД возвращает в чат с Алисой распознанный текст. Алиса Подтверждает получение, и если ей надо продолжить общение, опять добавляет команду начать случать голос еще раз. Вариант и видео реализации этого алгоритма есть на первой странице.
Мы сами на данный момент можем начать диалог только по какому либо внешнему событию. Оффлайн распознавания ключевого слова пока нет. Но можно например сделать кнопку на сайте по нажатии которой Алиса будет откликаться и отправлять в SDM команду начать запись. Еще можно нажать кнопку Record в программе SDM. Или сделать внешнюю кнопку, которая будет замыкать контакты какого нибудь устройства, которое будет отправлять данные на сервер МД, что будет служить сигналом к началу диалога.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Sound Direct Manager

Сообщение Bagir » Чт апр 14, 2016 3:33 pm

Ещё стоит отметить, что запись микрофона отправляется на сервер Гугла. Лично я сам не заморачиваюсь по поводу собственноручно установленного жучка у себя дома. Но всё же я хочу чтобы вы сами решали когда и что можно слушать и отправлять. Начали диалог, Алиса подтвердила это, пошла запись и передача. И только так.
В будущем конечно же тема распознавания речи будет развиваться, а программы, делающие это, совершенствоваться. И мы обязательно будем всё это использовать.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
redmax144
Сообщения: 44
Зарегистрирован: Чт янв 28, 2016 8:18 pm
Благодарил (а): 13 раз
Поблагодарили: 5 раз

Re: Sound Direct Manager

Сообщение redmax144 » Чт апр 14, 2016 7:32 pm

Добрый вечер, можете пояснить немного по данной ошибке? Выскакивает спустя некоторое время после запуска, когда в поле доходит до цифры "32767"
СпойлерПоказать
22.jpg
22.jpg (86.51 КБ) 10555 просмотров
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Sound Direct Manager

Сообщение Bagir » Чт апр 14, 2016 10:01 pm

Выложил обновление 1.5 на главной странице. В нём отправка файла в Google происходит в коде самой программы, и костыль voice_recognition.php больше не нужен ;)
Важно! В ini файле есть параметр googleKey="xxxxxxxxx" В него нужно вписать ваш ключ разработчика Гугла. Сейчас он храниться в файле voice_recognition.php. Но если вы его не получали, значит пользуйтесь найденным мною ключиком в просторах Интернета. Если в ini файле ничего не указано, то используется именно но. Но я не знаю сколько времени этот ключ ещё будет жить. Вообщем если у Вас есть свой ключ, то раскомментируйте эту строку и впишите его туда.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Ответить