>

Android에서 개발 중이며 SpeechRecognizer 를 사용하고 있습니다.  지속적인 음성 인식을 구현합니다.

다음 코드를 통해 음성 인식을 시작한 후 :

private void startListening(){
    recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en");
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getActivity().getPackageName());
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS,Long.valueOf(3000L));
    recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,1);
}

그리고 startListening() 에게 전화 해  다시 onEndOfSpeech 때  호출되었습니다.

그러나 pyzwyz  호출되고 onError 를 표시합니다. .

Q1 :SpeechRecognizer.ERROR_RECOGNIZER_BUSY  내가 SpeechRecognizer 후 그것을 시작할 때 바쁘다  전화를 받았습니까?

Q2 연속 음성 인식의 crooect 방식을 구현하는 방법은 무엇입니까?

onEndOfSpeech

  • 답변 # 1

    Android 음성 인식 라이브러리는 광범위하게 사용될 때 결국 시간 초과가 발생하도록 설계되었습니다.

    따라서 Google이 왜 그렇게하는지에 대한 공식적인 문서는 없으며 Google 앱을 사용할 때도 지속적인 음성 인식이 없습니다

    이 문제를 해결하려면 음성 콜백 메소드를 사용하여 오류를 파악하고 다시 들어 봐야합니다. 이 시간 초과 문제를 극복하기 위해 특별히 라이브러리를 만들었으며 이것이 귀하의 목적에도 도움이 될 것이라고 생각합니다.

    Github-DroidSpeech로 가서 라이브러리를 프로젝트에 추가하거나 복제하거나 gradle 의존성을 사용할 수 있습니다. Droid Speech를 초기화하고 아래에 언급 된대로 리스너를 설정하면

    DroidSpeech droidSpeech = new DroidSpeech(this, null);
    droidSpeech.setOnDroidSpeechListener(this);
    
    

    사용자의 청취를 시작하려면 아래 코드를 호출하십시오.

    droidSpeech.startDroidSpeechRecognition();
    
    

    청취자 방식으로 음성 결과를 얻습니다.

    @Override
    public void onDroidSpeechFinalResult(String finalSpeechResult, boolean droidSpeechWillListen)
    {
      // Do whatever you want with the speech result
    }
    
    

    이 라이브러리를 다른 점은

    <올>

    각 단어를 말한 후 지속적인 음성 인식 지원을 제공합니다.

    라이브러리가이를 처리하고 문제를 완전히 제거하도록하기 때문에 통화 중 및 시간 초과 오류에 대해 걱정할 필요가 없습니다.

    라이브러리를 초기화하고 리스너 메소드를 설정하는 것 외에 음성 인식 전용 코드를 작성할 필요가 없습니다.

    필요한 경우 사용자에게 마이크 권한을 요청할 수 있습니다

    오류가있는 경우

관련 자료

  • 이전 php - 빈 파일을 반환하는 phpexcel을 사용하여 Excel 파일을 PDF로 변환
  • 다음 c++ - 동적으로 사용자 정의 클래스 배열 및 오버로드 연산자 할당