Android Speech Recognision cambio de idioma de retorno

Sihan Tawsik:

Estoy trabajando en una aplicación para Android que toma la entrada de voz y establece el texto de resultado en una TextView. Aunque el lenguaje del discurso que será reconocido no es el Inglés, el texto resultado de la aplicación está proporcionando es Inglés. Para decirlo de una forma elaborada, la intención de reconocimiento de voz que estoy creando es la siguiente:

Locale locale = new Locale.Builder().setLanguage("bn").setScript("Beng").setRegion("BD").build();
intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE,locale);
intent.putExtra(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES,locale);
intent.putExtra(RecognizerIntent.EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE,locale);

Y los RecognitionListener onResult()miradas método como este:

public void onResults(Bundle results) {
    ArrayList<String> voiceResults = results
            .getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
    if (voiceResults == null) {
        text = "";
        Log.e("Listener","No voice results");
    } else {
        text = voiceResults.get(0);
        display.setText(text);
    }
}

Quiero que el results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION)de devolver un ArrayList que consta de letras bengalíes.

El comportamiento esperado:

imagen falta como esto

Salida de corriente:

imagen de la pantalla equivocada

SaadAAkash:

Utilice el método siguiente para lograr la salida, conjunto deseado bn-BD:

 private void getAudioInput() {
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "bn-BD");
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "I am Listening...");
        try {
            startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
        } catch (ActivityNotFoundException ignored) {

        }
    }

A continuación, utilice onActivityResult()para recibir el resultado utilizando el mismo código de solicitud que se ha utilizado en el startActivityForResult()con la intención de esta manera:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQ_CODE_SPEECH_INPUT) {
            if (resultCode == RESULT_OK && null != data) {
                ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
                if (result != null) {
                    bangla_text = result.get(0);
                    textOutput.setText(bangla_text);
                }
            }
        }
    }

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=331461&siteId=1
Recomendado
Clasificación