我正在尝试将 Google Speech to Text API 用于卡纳达语,我将 EXTRA_LANGUAGE 设置为“kn”,但它不起作用。
下面是我正在使用的代码。
Locale locale = new Locale("kn");
//Locale.setDefault(locale);
Log.e(TAG, "Locale " + locale.getLanguage() + " present: " + isLocalePresent(locale));
if (isLocalePresent(locale)) {
//int randomInt = random.nextInt(allItemsLength);
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, locale.getLanguage());
//intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Try saying \"" + mergedFinalArray.get(randomInt) + "\"");
try {
startActivityForResult(intent, REQ_CODE_K2E_SPEECH_INPUT);
} catch (ActivityNotFoundException e) {
Toast.makeText(getApplicationContext(), R.string.missing_in_voc, Toast.LENGTH_SHORT).show();
}
}
请注意,区域设置存在于设备中。这同样适用于其他语言,如印地语 (hi)、泰米尔语 (ta) 和日语 (ja),但不适用于泰卢固语 (te)、马拉雅拉姆语 (ml)、卡纳达语 (kn)。我做错了什么吗?
最佳答案
经过数小时的研究,我终于找到了解决方案。
在下面的代码行中,我应该发送“kn_IN”而不是“kn”。这使它起作用。
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "kn_IN");
此方法适用于上述所有语言。 ("te_IN", "ml_IN")
关于android - 谷歌语音转文本 : Extra language set to "kn" but not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51048466/