Разработка приложения похожа на "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 для выполнения такой операции.
Не забудьте опубликовать свои результаты.
Примечание-
его очень интенсивный процессор и потребляемая батарея, чтобы слушать все время в фоновом режиме.
Ответ 2
Это не ява, но ты видел Джаспера? Выглядит многообещающе: http://jasperproject.github.io
Ответ 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();
}
}
извините за формат или отступ, используя планшет.