Google речь в текст: дополнительный язык установлен на "kn", но не работает - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь использовать API Google Speech to Text для языка каннада, и я устанавливаю 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();
        }
    }

Обратите внимание, что в устройстве присутствует языковой стандарт. То же самое работает для других языков, таких как хинди (привет), тамильский (та) и японский (я), но не для телугу (те), малаялам (мл), каннада (кн). Пожалуйста, помогите, если я здесь что-то не так делаю.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

После нескольких часов исследований я наконец нашел решение.

В приведенной ниже строке кода я должен отправить «kn_IN» вместо «kn». Это заставило его работать.

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "kn_IN");

Этот метод работает для всех языков, упомянутых выше. ("te_IN", "ml_IN")

0 голосов
/ 26 июня 2018

Вы пробовали "кан"?

Согласно этой ссылке Локаль принимает ISO 639 alpha-2 или alpha-3 и в следующем списке код для языка каннада в ISO 639-2 и 3 - "kan ».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...