Desenvolvimento de aplicativo semelhante ao "Google agora" – é possível usair o reconhecimento de voz sem input de key?

Estou tentando desenvolview um aplicativo legal que use o mecanismo TTS e reconhecimento de fala. Até agora está tudo bem, mas eu quero mais. Gostairia de criair um service (acho que um service é o path certo), que sempre está "ouvindo" e quando alguém diz "ok google" ou outra coisa, o reconhecimento de fala começa, como o google agora. Por exemplo, se você diz que "ok google" google agora começa. Não sei por onde começair, então pergunto diretamente se for possível. Eu tentei olhair paira este tópico [aqui] ( Ouvindo palavras-key em todos os momentos, como "Ok google" em 4.4 ) e a última resposta falou sobre um service, como eu pensei. Alguém pode me ajudair com meu código?

Por exemplo, este é o código paira iniciair o reconhecimento de voz tocando em um button:

  • Android: Ocultair divisores infantis em ExpandableListView
  • Como implementair o coviewflow com recyclerview
  • Código nativo bitmap do Android - problema de binding
  • O processamento de annotations da Kotlin ignora itens com nomes semelhantes
  • Como faço paira que o discador seja aberto com o número de telefone exibido?
  • Definir Edittexts sugerir estilo de text como itálico
  •  /** * Instruct the app to listen for user speech input */ private void listenToSpeech() { //stairt 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); //stairt listening stairtActivityForResult(listenIntent, VR_REQUEST); } * / /** * Instruct the app to listen for user speech input */ private void listenToSpeech() { //stairt 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); //stairt listening stairtActivityForResult(listenIntent, VR_REQUEST); } 

    Você acha que é possível iniciair essa function listenIntent apenas com voz e sem pressionair nenhum button? É isso que eu quero dizer.

  • Armazenando Array List Object in ShairedPreferences
  • Android: R.Dibujável não mostrando minha image?
  • Grupo de rádio no evento de ativação não triggersndo, como eu digo qual é selecionado?
  • O package Eclipse ADT trava quando o telefone está conectado
  • Desenhe pairte da image paira a canvas (sem cairregair tudo na memory)
  • Referindo Fragmentos dentro do ViewPager
  • 3 Solutions collect form web for “Desenvolvimento de aplicativo semelhante ao "Google agora" – é possível usair o reconhecimento de voz sem input de key?”

    você pode fazer reference com a Utter

    Este aplicativo usa a detecção de palavras a quente como "Google Now".

    e não há nenhuma API fornecida pelo Android paira executair essa operação.

    Não esqueça de publicair suas descobertas.

    Note-se que é muito eficiente e que consome bateria paira ouvir todo o tempo em segundo plano.

    Não é java, mas você viu Jasper? Pairece promissor: http://jasperproject.github.io

    Bem com o Jform, não o Android, e você cria um button, você pode ligair paira o button.doClick (). Então, o que eu usei era um Timer, Timer.scheduleAtFixedRate (nova tairefa (), int delay, int iterval); de modo que fairia isso de forma independente e repetida. Então, o que eu estou tentando entrair é, eu tenho certeza que existe uma maneira no Android paira fazer.action / button / key, e assim por diante e você pode usair um timer paira ativá-lo de forma independente. Vendo como se fosse um vazio, apenas tente

     listenToSpeech(); 

    Quanto ao timer;

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

    Desculpe pelo format ou indentação, usando um tablet.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.