Разработка приложения похожа на "Google сейчас" - можно ли использовать распознавание голоса без ввода ключа?

Я пытаюсь разработать классное приложение, использующее механизм TTS и распознавание речи. Пока это нормально, но я хочу больше. Я хотел бы создать службу (я думаю, что сервис - это правильный путь), который всегда "прослушивается", а когда кто-то говорит "t21" или что-то еще, начинается распознавание речи, например google. Например, если вы скажете "ok google" теперь запускается google. Я не знаю, с чего начать, поэтому я прошу прямо здесь, если это возможно. Я попытался посмотреть эту тему [здесь] ( Прослушивание ключевых слов во все времена, например "Ok google" и 4.4), и последний ответ касался службы, так как Я думал. Может ли кто-нибудь помочь мне с моим кодом?

Например, это код для запуска распознавания речи, нажимая кнопку:

/**
 * Instruct the app to listen for user speech input
 */
private void listenToSpeech() {
    //start the speech recognition intent passing required data
    Intent listenIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    //indicate package
    listenIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName());
    //message to display while listening
    listenIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say a word!");
    //set speech model
    listenIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    //specify number of results to retrieve
    listenIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 10);
    //start listening
    startActivityForResult(listenIntent, VR_REQUEST);
}

Считаете ли вы возможным запустить этот listenIntent только с голосом и без нажатия какой-либо кнопки? Это то, что я имею в виду.

Ответы

Ответ 1

у вас может быть ссылка с Utter

В этом приложении горячее слово обнаружено как "Google Now".

и нет такого API, предоставляемого Android для выполнения такой операции.

Не забудьте опубликовать свои результаты.

Примечание- его очень интенсивный процессор и потребляемая батарея, чтобы слушать все время в фоновом режиме.

Ответ 3

Хорошо с Jform, а не с Android, и вы создаете кнопку, вы можете вызвать button.doClick(). Так что я использовал Timer, Timer.scheduleAtFixedRate(новая задача(), int delay, int iterval); так что он будет делать это независимо и повторяться. Так что я пытаюсь получить, это, я уверен, что это способ в android для do.action/button/key и т.д., И вы можете использовать таймер, чтобы активировать его независимо. Увидев, что это пустота, просто попробуйте

listenToSpeech();

Что касается таймера,

Timer listenTimer = new Timer();
//listenTimer.schedualAtFixedRate(new listeningTask(),0,1);//place this where your program starts as this starts the timer
class listeningTask extends TimerTask{
  if(condition){
    listenToSpeech();
  }
}

извините за формат или отступ, используя планшет.