SpeechRecognizer(음성인식)

Published: by

Intent 설정

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);

Language 설정

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault().toLanguageTag());

언어를 설정할 때 주의할 것은 있다. '언어 값'이다. 흔히 생각하는 en, ko, jp가 아니다. ko-KR, ja-JP, it-IT 형태이어야 한다. 이런 형태는 tag라고 하는데 Locale 객체의 toLanguageTag를 통해서 가져올 수 있다. 이런 tag를 IETF BCP 47 language tag라 한다.

Language Tag 리스트 얻기

리스트를 얻으려면 디바이스 환경설정에서 언어를 추가해야 한다.

그런 다음 toLanguageTags 를 호출하여 리스트를 얻을 수 있다. 리스트는 String 객체에 Append되어 있는 형태이다.

LocaleListCompat.getDefault().toLanguageTags(); // ko-KR,ja-JP,it-IT
// 또는
LocaleList.getDefault().toLanguageTags()

특정 국가의 Tag를 얻으려면,

Locale.KOREA.toLanguageTag();