Android/도구 및 라이브러리
Android RecognitionListener로 음성 인식하기
뿌꾸 빵
2025. 5. 26. 17:07
728x90
반응형
Android에서 RecognitionListener는 SpeechRecognizer를 통해 음성 인식을 수행할 때,
음성 인식 과정의 다양한 단계에서 발생하는 이벤트들을 수신하고 처리하기 위한 인터페이스이다.
이를 통해 음성 인식의 흐름을 파악하고, 인식 결과를 활용하거나 오류 상황에 대처할 수 있다.
1. onReadyForSpeech(Bundle params)
- 호출 시점: 음성 인식기가 사용자의 말을 들을 준비가 완료되었을 때.
- 역할: "말씀하세요" 같은 UI 안내 표시, 마이크 아이콘 활성화 등.
2. onBeginningOfSpeech()
- 호출 시점: 사용자가 실제로 말을 시작한 것이 감지되었을 때.
- 역할: "듣고 있어요..." 같은 UI 피드백, 녹음 애니메이션 시작 등.
3. onEndOfSpeech()
- 호출 시점: 사용자가 말을 멈춘 것으로 판단될 때. (이후 서버 등으로 데이터 전송 및 분석이 시작될 수 있음)
- 역할: "인식 중..." 같은 UI 피드백, 녹음 애니메이션 중지 등.
4. onResults(Bundle results)
- 호출 시점: 음성 인식이 성공적으로 완료되어 최종 결과가 나왔을 때. (이 콜백 후 인식 세션 종료)
- 역할: 인식된 텍스트 목록(SpeechRecognizer.RESULTS_RECOGNITION 키로 ArrayList<String> 획득)을 받아 처리. (가장 유력한 결과는 보통 첫 번째 요소)
5. onPartialResults(Bundle partialResults)
- 호출 시점: (선택 사항, RecognizerIntent.EXTRA_PARTIAL_RESULTS를 true로 설정 시) 인식 중 중간 (부분) 결과가 나왔을 때 여러 번 호출될 수 있음.
- 역할: 사용자가 말하는 내용을 실시간으로 화면에 보여주는 데 유용.
6. onError(int error)
- 호출 시점: 음성 인식 과정 중 다양한 오류가 발생했을 때.
- 역할: 전달된 에러 코드(SpeechRecognizer.ERROR_* 상수)에 따라 사용자에게 알림, 재시도 로직 수행 등.
7. onRmsChanged(float rmsdB)
- 호출 시점: 마이크로 입력되는 오디오의 소리 크기(RMS, Root Mean Square) 값이 변경될 때 주기적으로 호출.
- 역할: 음성 입력 레벨 시각화 (Voice Visualizer) 등에 활용.
728x90
반응형