Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo configurar el idioma en el reconocimiento de voz en Android?

He estado trabajando en la API de reconocimiento de voz en android y descubrí que los resultados del discurso varían cuando se cambia la configuración del idioma, ¿hay alguna manera de configurarlo mediante programación? O hay una intención de almorzar la pantalla de configuración de idioma del habla? O qué más? Nota: he intentado utilizar esta intención extra:

intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en-US"); 

Pero fue ineficaz

  • Programar '? SelectableItemBackground' en la vista de Android
  • Trabajo POST Multipart Solicitud con Volley y sin HttpEntity
  • Pasar argumento a DialogFragment
  • Cómo cargar AnimationDrawable desde un archivo xml
  • Android HLS Streaming - Diferentes versiones de Android cargan ubicación diferente en Stream
  • Android: Reproducción de un sonido de recursos utilizando WebView
  • Cuando se utiliza un proyecto de biblioteca de Android, ¿cómo se hace referencia a los recursos xml correctamente?
  • Android: ListView sólo muestra el primer resultado
  • PreferenceFragment - Diferencia entre getPreferenceManager () y getPreferenceScreen ()?
  • Cómo obtener N texto que se puede caber en la pantalla / TextView con un tamaño específico?
  • Cambiar grosor de la línea inferior de EditText cuando se envuelve en TextInputLayout
  • Configuración óptima de WebView para compatibilidad con HTML5?
  • 6 Solutions collect form web for “Cómo configurar el idioma en el reconocimiento de voz en Android?”

    Como dice el pargat, esto lo hará:

     intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US"); 

    Además, su aplicación puede consultar la lista de idiomas admitidos enviando un RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS ordenado como:

      Intent detailsIntent = new Intent(RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS); sendOrderedBroadcast( detailsIntent, null, new LanguageDetailsChecker(), null, Activity.RESULT_OK, null, null); 

    Donde LanguageDetailsChecker es algo como esto:

     public class LanguageDetailsChecker extends BroadcastReceiver { private List<String> supportedLanguages; private String languagePreference; @Override public void onReceive(Context context, Intent intent) { Bundle results = getResultExtras(true); if (results.containsKey(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE)) { languagePreference = results.getString(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE); } if (results.containsKey(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES)) { supportedLanguages = results.getStringArrayList( RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES); } } } 

    Para obtener el código completo, consulta este proyecto github: https://github.com/gast-lib

    No hay solución sino un hackaround …

     intent.putExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES", new String[]{"en"}); 

    Compruebe aquí la historia completa.

    ¿Has probado esto:

     intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US"); 

    Esto funcionará:

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

    Tienes que usar "en_US" en lugar de "en-US". El primero es el formato correcto de la etiqueta de configuración regional de Java.

    Se sugiere que utilice

     intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.US.toString()); 

    Para evitar recordar tales detalles.

    Finalmente conseguí que mi aplicación restringiera los resultados de reconocimiento de voz a una entrada de idioma especificada (entregándola, por ejemplo, "ja" para japonés o "fr" para francés) agregando los 3 de los siguientes extras:

     String languagePref = "de";//or, whatever iso code... intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, languagePref); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, languagePref); intent.putExtra(RecognizerIntent.EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE, languagePref); 

    Espero que esto ayude a alguien.

    He utilizado este código:

     intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US"); 

    Espero que puedas ejecutar tu aplicación ahora.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.