android - 谷歌语音转文本 : Extra language set to "kn" but not working

标签 android localization speech-recognition speech-to-text

我正在尝试将 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/

相关文章:

java - 我如何在下面的上下文中干燥我的代码(android)

ruby-on-rails - 在 Rails 中本地化 "Sign in"和 "Sign up"

ios - 在设备当前区域设置后格式化日期和时间

signal-processing - 如何使用 Octave 获得 mfcc 功能

安卓车速表(针规)

安卓 : Trouble with query containing apostrophe

android - 多层ExpandableListView

java - Facebook 连接 - 安卓

c# - Microsoft 语音识别引擎在语法之间切换

machine-learning - 语音识别需要MFCC功能吗