안드로이드 환경에서 음성인식API가 포함된 어플리케이션을 개발중입니다.
SpeechRecognizeListener의 onError 메서드가 호출되었고, SpeechRecognizerClient.ERROR_CLIENT의 에러코드가 발생했습니다.
레퍼런스 문서를 확인해보니 클라이언트 내부로직 발생시 리턴되는 에러코드로 명시되어 있는데,
클라이언트의 로그에는 아래의 코드외 별다른 에러가 발생하지 않았습니다
D/SpeechRecognizerClient: [onError] : 5 msg : VOICE_RECO_RESULT_CONTAIN_INVAID_DATA
위와같은 에러 발생시 어떤점을 확인해봐야 할까요
문의 게시 후 약 3주가 지났는데 언제쯤 답변을 받을 수 있을까요
안녕하세요~
카카오 음성 기술에 관심가져 주셔서 감사합니다.
늦게 답변을 드려 죄송합니다…
혹시 서비스 모드 설정을 누락하신건 아닌가요?
SpeechRecognizerClient.Builder builder = new SpeechRecognizerClient.Builder().
setServiceType(SpeechRecognizerClient.SERVICE_TYPE_DICTATION);
이 부분이 제대로 설정되어있나 확인해주세요!
감사합니다.
// SDK 초기화
SpeechRecognizerManager.getInstance().initializeLibrary(this);
// 클라이언트 생성
SpeechRecognizerClient.Builder builder = new SpeechRecognizerClient.Builder()
.setServiceType(SpeechRecognizerClient.SERVICE_TYPE_WEB)
.setAppKey("APP키값")
.setGlobalTimeOut(10);
//setUserDictionary(userdict); // optional
SpeechRecognizerClient client = builder.build();
위와같이 사용중입니다. APPKEY는 실제값을 넣어서 사용중입니다
매번 인식을 호출할때마다 문제가 발생하는건가요? 아니면 간헐적으로 문제가 발생하는건가요?
테스트를 안드로이드 에뮬레이터에서 진행하시는건가요? 아니면 실제 디바이스에서 진행하시는건가요?
디바이스에 저희가 올려드린 음성SDK 샘플에서도 동일한 문제가 발생하시나요?
샘플 프로젝트에서는 문제가 없었던걸로 알고 있습니다.
공식 레퍼런스 문서에도 제 질문 내용에 있는 에러 메세지가 명확히 표시되어있지 않은데,
어떤 케이스에서 발생하는 에러메세지인지 알 수 있을까요?
음성서버에서 전송된 결과값의 형식이 올바르지 않을때 발생하는 문제입니다.
가이드대로 진행시 발생하지 않는 문제인데요…
App key를 샘플코드처럼 AndroidManifest.xml의 meta-data에 넣어서 테스트해주세요.
AndroidManifest.xml 에는 아래와 같이 입력해두었습니다
<meta-data
android:name=“com.kakao.sdk.AppKey"
android:value=”@string/kakao_app_key"
String.xml 에 AppKEY를 정의해두었습니다.
샘플앱의 com_kakao_sdk_asr_strings.xml 파일 내부의
kakao_app_key를 부여 받으신 key로 교체후에 테스트 하셨을때도 동일한 문제가 발생하나요?
확인해보니, 액티비티 내에서 webview에 자바스크립트를 정의하여 load처리 해줄때만 문의한 에러가 발생하고 있습니다.
JavascriptInterface 에서 CustomSpeechAcivity를 intent 호출하였고, 해당 액티비티 내에서 onResults 메서드내에서
아래와 같이 자바스크립트 load처리할때 onError 메서드가 호출됩니다
setContentView(R.layout.activity_kisinfo);
mWebView = (WebView)findViewById(R.id.webview1);
String javascript = “javascript:returnVoice(”" + texts.get(0) + “”)";
mWebView.loadUrl(javascript);
레퍼런스 페이지대로 사용하지 않으신다면 동작확인하는게 어렵습니다.
webview를 사용하신다면
REST API를 사용해보시는 것을 추천드립니다.
감사합니다.
저희 프로젝트 내 액티비티 생명주기 문제였습니다. 소스 수정하여 자체 해결 완료되었습니다.
신경써주셔서 감사합니다
카카오 음성 기술에 관심가져 주셔서 감사합니다.
앞으로도 많은 이용 부탁드립니다.
감사합니다.