2011-04-12 3 views
1

난 당신이 호출하여 완전한 입력을 고려하는 시간의 양을 증가시킬 수 있습니다 알고 : 그러나Android : 음성 인식 중지 명시 적으로 중지 하시겠습니까?

intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS,5000); 

, 안드로이드 음성 인식 활동을 발로 후 방법이, 명시 적으로,받은 후 말을 중지 "키워드".

+0

onStopListening (RecognitionService.Callback listener)이 있습니다. http://developer.android.com/reference/android/speech/RecognitionService.html#onStopListening(android.speech.RecognitionService.Callback) 그러나 확실하지 않습니다. 이것은 내가 무엇을 찾고 있는지 ..... – Mike6679

+0

또한 (실제 해결책이 없다면) 음성 인식이 결과를 구문 분석하고 완료 할 때까지 기다리는 시간을 늘리는 것입니다. 사용자가 완료되었음을 알리는 키워드를 찾을 수 없으면 음성 인식 의도를 다시 시작하십시오. 예를 들어 해커 일 수도 있지만 해결 방법이 될 수 있습니다. – Mike6679

답변

1

@Mike가 맞습니다.

이 작동 :

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, new Long(2000)); 

당신은 긴을 지정할 수 있습니다. 숫자 ("2000")를 입력하는 것은 유효하지 않은 정수로 해석됩니다.

0

RecognizerIntent 의도 대신 사용자 지정 UI로 SpeechRecognizer 클래스를 사용하면됩니다. SpeechRecognizer 클래스에는 사용자가 "중지"버튼을 누르면 명시 적으로 호출 할 수있는 stopListening() 메소드가 있습니다.

시도하는 또 다른 방법은 EXTRA_PARTIAL_RESULTS와 부분적인 결과를 요청하고 RecognitionListeneronPartialResults 콜백에서 "정지 키워드"를 검색하는 것입니다, 다음 stopListening() 하나가 감지 될 때.

관련 문제