Голосовое управление на андроиде
- Войдите на сайт для отправки комментариев
Добрый день. Просмотрел много информации на тему голосового управления умным домом, но так и не нашел подходящего офлайн софта для управления ардуино голосом. Приглянулась только вера войс, но увы не очень гибкая. Решил написать свою прогу на сфинксе. Что есть на данный момент: связь по БТ, активация голосом и нажатием, добавление команд в настройках текстом + автозапись в справочник распознования + любая команда по БТ, озвучивание выполнения команд используя гугл ттс, автоподключение при разрыве связи БТ, настройки чувствительности микрофона и др.
Дык в чем вопрос) думаю продолжить разработку и прикрутить вайфай, интернет, панель с тумблерами и кнопками. Стоит заморачиваться? Или уже есть готовые варианты офлайн голосового управление по БТ или ВФ на ардуины и малины?
Господа, можете потестить и применить, скоро видео опубликую. https://play.google.com/store/apps/details?id=com.marusya.demo.v1
Неплохо было бы сюда выложить АПКшку и скетч.
Неплохо было бы сюда выложить АПКшку и скетч.
Апк милости прошу по ссылке выше на плей маркет. Видео записал по проге https://www.youtube.com/watch?v=AGH_bTMjfKs .
Скетч стандартный по блутузу приложил
Что-либо из гуглосервисов требует?
На "марусь" не реагирует, при нажатии на кнопку микрофона вылетает с ошибкой. Ведроид 4.4.2, JIEX V8, сток.
Что-либо из гуглосервисов требует?
На "марусь" не реагирует, при нажатии на кнопку микрофона вылетает с ошибкой. Ведроид 4.4.2, JIEX V8, сток.
Синтезатор гугл Google tts с загруженным русским языком
ап) Странно только что потестил на 4.4.4 виртуальном(голом) все коректно....
п.с. Распознование ключевой фразы происходит после "Подготовки устройств", когда на экране "Обратитесь ко мне".
Видимо, траблы с синтезатором. Обновил до текущей версии, сейчас сначала падает синтезатор, а за ним приложение. Надо будет позже на другом девайсе попробовать, основной сильно уж ковырян в плане встроенного гуглософта, видимо поэтому и ведёт себя некорректно. А проект интересен :)
Надеюсь все получится)
Запустил, пока попробовал только часть функционала. Сразу несколько замечаний - хотелок.
Не помешал бы раздел помощи с описанием встроенных комманд (к примеру "давай соединение").
В подменю "Входящие команды" на активную кнопку "Просмотр" накладывается неактивная "Удаление". Если нажать "Просмотр" кнопка активируется, но остаётся частично поверх кнопки "Просмотр".
Желательна возможность не только по принятой команде выдавать заготовленную фразу, а озвучивать пришедшие данные (к примеру данные метеостанции, текущее потребление тока и т.д.).
Для отладки не помешал бы дополнительный режим вывода на экран принятых данных (чтобы не гадать, почему не срабатывает или срабатывает некорректно). Если будет возможность также текстового ввода - вообще отлично.
Когда высвечивается "Подготовка устройств" прога не реагирует на комманды (что логично), в это время желательно убирать надпись "Скажите "марусь"" - вводит в заблуждение. Также было бы неплохо возле текущего мак адреса выводить состояние "соединено" или "разорвано".
Добрый вечер, спасибо за тест.
Встроенная команда только одна на соединение, есть еще озвучка ошибки передачи команды блутуз "Ошибка передачи", если команда не прошла по каналу.
Кнопки поправлю.
По поводу озвучивании пришедших данных - сложный вопрос, гугл ТТС не все может воспринять, а данные подает сам пользователь, как прошит у себя в скетче. То есть он может написать 2А либо 2 а. 28с либо 28 градусов и подобное. Но чтонибудь подумаю на эту тему.
За журнал входящих исходящих и статуса соединения блютуз отдельное спасибо. Обязательно сделаю.
скажите марусь поправлю)
Все записал себе в задачи на обнову.
По поводу озвучивании пришедших данных - сложный вопрос, гугл ТТС не все может воспринять, а данные подает сам пользователь, как прошит у себя в скетче. То есть он может написать 2А либо 2 а. 28с либо 28 градусов и подобное. Но чтонибудь подумаю на эту тему.
ИМХО и int хватит. Сделать предварительно отправляемую метку (к примеру "data_int"), по которой софтина примет значение. (Если не int - игнорируем выполнение и пишем в лог, дабы позже можно было разобраться в чём трабл.) А далее уже шлём метки, по которым озвучиваются градусы, часы, проценты или иные значения.
Цифры синтезатор воспринимает. Соответсвенно В софтине надо добавить возможность присваивания меток. Для примера:
С ардуино приходит 28 с .
Цифры 28 озвучиваются автоматически, а в проге будет настройка метки : если пришло символ "с" - проговаривает градусы. Правильно понял?
Может так действительно будет проще для пользователя. Но метки нужны посложнее, чтобы не было ложных срабатываний.
Как синтезатор отнесётся к float? Слать-то начнут всякое... Потому и думал ограничиться int.
upd: Ещё одна хотелка - экпорт/импорт списка команд в/из текстового файла. Если на базе проги будут создаваться интересные проекты - повторяющим будет сложно забивать все команды вручную. Ну и для бэкапа. (Собирать comands.xml и command.xml в один файл и скидывать на микросд).
upd2: Думаю, служебная метка перед данными всё же нужна. Цифры ведь могут входить в состав других меток, и озвучивать их в этом случае не надо. Пришла метка "data_int" - значит за ней в предустановленный промежуток времени придёт число, которое надо произнести, а не искать совпадения с метками.
Баг. Через некоторое время перестаёт реагировать на "марусь", при этом на нажатие микрофона реагирует корректно, отправляя команды. Если потереть данные приложения работоспособность восстанавливается, но через какое-то время ситуация повторяется. Закономерности появления не выявил :(
ок, спасибо, все записал. Баг буду тестить, выявлять.
По поводу бага. Запустил тест все вроде работает. У андроида есть фишка, при нехватки оперативы он выгружает из памяти приложения....может с этим связано.
Вряд ли это выгрузка. Перезапуск приложения не помогает, перезагрузка тела тоже. Только полный снос данных приложения (через линк2сд).
еще потестирую тогда...
Новая версия 1.1
1) Изменен интерфейс. Исправлены баги.
2) терминал Bluetooth;
3) Добавлен журнал Bluetototh;
4) Добавлена возможность сохранения и загрузки команд с памяти устройства;
5) Настройка микрофона работает корректно, добавлена настройка шумопадавления;
6) Добавлена служба приложения для фонового режима;
7) Добавлено озвучивание входящих команд по транслитерации;
8) Добавлена возможность ручного запуска и остановки распознавания;
9)Добавлена настройка порога завершения распознавания команд;
10) Добавлен режим переключателей с возможностью обратной связи по заданной команде. Настройки переключателей сохраняются и загружаются с памяти устройства;
11) Добавлена возможность запуска приложения с режима переключателей.
12) Запросы переключателей отмечаются в журнале.