Итак, вчера потратил кучу времени на эксперименты с этой штукой, так что делюсь по порядку.
Во-первых, для чего делалось -- чтобы передавать Алисе команды голосом. Не всегда это необходимо, но временами удобно. Я хотел добиться следующего -- чтобы при подключенной bluetooth-гарнитуре я мог нажать на ней кнопку, сказать команду и она передалась на компьютер.
Про то, как и где брать Tasker и плагин AutoVoice рассказывать не буду, скажу только, что плагин этот платный и если его не покупать, то будет ограничение на длину команды в 4 символа (дальше обрезает).
После установки AutoVoice я его запустил и оставил с такими настройками:
Здесь важная галочка про распознавание по нажатию кнопки на Bluetooth-гарнитуре. Т.е. с такой опцией нажатие кнопки инициирует событие распознавания.
Второй ключевой момент, это что делать с распознанным текстом. Для этого заходим в Tasker и создаём новый Task с названием AutoVoiceProcess, задача которого отправить распознанный текст на сервер.
Общий вид таска:
Детали пункта HTTP POST:
Теперь создаём профайл, который по событию вызовет этот таск:
Собственно, на этом первую часть можем считать завершённой -- по нажатию кнопки слушается команда и отправляется на сервер.
Только возникла проблема -- после произношения фразы окно "слушало" тишину и не хотело закрываться сразу после произношения. Порывшись на форумах AutoVoice, я нашёл описание этой проблемы -- оказывается, оно появилось с каким-то апдэйтом движка Google Search. Лечится удалением апдэйта Google Search и накатыванием последней нормально работающей версии. Я выложил её в виде APK вот по этой ссылке:
https://www.dropbox.com/s/0jjq88z360khe ... 76.arm.apk
Ещё одной возможностью AutoVoice является так называемый режим Continuous mode, когда для распознания фразы не нужно нажимать кнопки, а просто можно произносить фразы и каждая из них инициирует запуск таска отправки фразы на сервер. Для его активации я сделал таск с такими настройками и вынес его ярлыком на главный экран:
Первый запуск этого таска активирует режим постоянного распознавания, второй запуск этот режим выключает. Всё работает, но почему-то в качестве источника звука используется сам телефон, а не гарнитура. Пока не разобрался почему.
Ещё одна особенность, возможно связанная с гарнитурой -- у меня не получилось заставить мою гарнитуру от Nokia работать с планшетом Google Nexus 7. Точнее, она работала, но нажатие кнопки на ней происходило без какой-либо реакции со стороны Tasker-а и AutoVoice. А на телефоне (Samsung Galaxy S3), всё отлично отрабатывает. Поэтому на планшете я оставил распознавание с использованием встроенного микрофона (через включение/выключение постоянного распознавания), а на телефоне оставил и так и так.