2015-12-10 15 views
36

Sto usando android.speech.SpeechRecognizer in DICTATION_MODE per riconoscere i comandi durante un lungo periodo di tempo. In questa modalità la chiamata al metodo di callback onPartialResults ritarda molto più che in modalità normale. Qualcuno sa perché questo accada e come evitare questo ritardo?Ritardo quando si utilizza android.speech.SpeechRecognizer in DICTATION_MODE

Questa è la configurazione che uso per il SpeechRecognizer: tempo

Intent recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 

recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
recognizerIntent.putExtra("calling_package", mainActivity.getApplicationContext().getPackageName()); 
recognizerIntent.putExtra("android.speech.extra.DICTATION_MODE", true); 
recognizerIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true); 
recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 100); 
+1

Ti suggerisco di dare un'occhiata e giocare con quei flag della classe ** RecognizerIntent ** e inserire valori aggiuntivi nell'oggetto Intent. 'EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS' <- soprattutto questo ' 'EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS' EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS' Questo può essere problematico in quanto i comportamenti in modo diverso basato sulla versione di Android e il modello del dispositivo. Inoltre, dai uno sguardo a quelli: https://code.google.com/p/android/issues/detail?id=76130 Volevo postarlo come risposta, ma ho deciso che il commento sarebbe stato migliore. – scana

+0

Sì, ho provato anche queste opzioni senza successo. Qualche altro suggerimento? – acimutal

+0

sei in balia del riconoscimento vocale installato. probabilmente è in attesa di raccogliere più contesto per contribuire a dettare una dettatura più accurata. se non sei soddisfatto, non c'è niente da fare a meno di usare un motore di riconoscimento vocale diverso. –

risposta

0

risposta dipende da molti fattori, come ad esempio:

  • characteriscics dispositivo
  • versione del sistema operativo
  • velocità di internet

E in comune è più lungo perché questa modalità implica l'indovinare il contesto e cercare di capire il significato che cambia con ogni nuova parola.

Problemi correlati