Comment définir la langue de la reconnaissance vocale sur android?
J'ai travaillé sur l'API de Reconnaissance vocale sur android et a trouvé que le discours les résultats varient d'attribuer si les paramètres de langue sont changé , est-il un moyen de le définir par programmation ? ou est-il l'intention de déjeuner le discours des paramètres de langue de l'écran ? ou quoi d'autre ?
note:
J'ai essayé d'utiliser cette intention supplémentaire:
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "en-US");
mais il a été inefficace
l'intention.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, les paramètres Régionaux.getDefault()); ..il sera exécuté si gooogle soutenir que la langue..
Le plus qui est censé servir à cette fin est EXTRA_LANGUAGE, pas EXTRA_LANGUAGE_PREFERENCE. Cependant, LANGUAGE_EXTRA pour une raison quelconque ne fonctionne que jusqu'à 4.3. À partir de 4.4, Android permet l'utilisation de plusieurs langues pour être sélectionné dans les Paramètres, et il va toujours essayer de "deviner" la langue en fonction des paramètres système et ignore complètement les EXTRA_LANGUAGE supplémentaire. Donc, n'importe qui?
Le plus qui est censé servir à cette fin est EXTRA_LANGUAGE, pas EXTRA_LANGUAGE_PREFERENCE. Cependant, LANGUAGE_EXTRA pour une raison quelconque ne fonctionne que jusqu'à 4.3. À partir de 4.4, Android permet l'utilisation de plusieurs langues pour être sélectionné dans les Paramètres, et il va toujours essayer de "deviner" la langue en fonction des paramètres système et ignore complètement les EXTRA_LANGUAGE supplémentaire. Donc, n'importe qui?
OriginalL'auteur Mr.Me | 2012-05-10
Vous devez vous connecter pour publier un commentaire.
Comme pargat dit, cela fera:
Également à votre application de requête pour la liste des langues prises en charge par l'envoi d'un
RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS
ordonné de radiodiffusion comme suit:où LanguageDetailsChecker est quelque chose comme ceci:
Pour le code complet découvrez ce projet github:
https://github.com/gast-lib
Je pense que c'est plus facile à utiliser RecognizerIntent méthode pour la création de l'intention: "val detailsIntent = RecognizerIntent.getVoiceDetailsIntent(contexte) de l'activité.sendOrderedBroadcast(detailsIntent, null, LanguageDetailsChecker({ langues.accept () }), a null, Activité.RESULT_OK, null, null)` l'Intention de l'échantillon ci-dessus ne fonctionne pas pour moi 🙁 getVoiceDetailsIntent() fait 🙂
Mettre la "en-US" ne fonctionne pas pour moi. Utilisation
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.US.toString());
comme suggéré dans la réponse par @orina1123OriginalL'auteur gregm
il n'y a pas de solution, mais une hackaround...
vérifiez ici l'histoire complète.
les gens aiment les longues réponses...eh bien, je suis content que cela vous a aidé.
la plupart des réponses utiles, jamais je ! vraiment.
OriginalL'auteur Arnav M.
Cela fonctionne:
Vous devez utiliser le "en_US" au lieu de "en-US". Le premier est le bon format de Java locale tag.
Il est suggéré que vous utilisez
pour oublier ce genre de détails.
OriginalL'auteur orina1123
Avez-vous essayé ceci:
OriginalL'auteur Pargat
J'ai finalement obtenu mon appli pour restreindre les résultats de la reconnaissance vocale pour une langue donnée d'entrée (remise, par exemple, "ja" pour le Japonais ou "fr" pour le français), en ajoutant tous les 3 de les extras suivants:
Espère que cela aide quelqu'un.
bon...pas de travail sur 4.4...
OriginalL'auteur kwishnu
J'ai essayé d'utiliser
mais il ne fonctionne pas pour moi (ne pas prendre le système de la langue).
Aidé ici comme ceci:
OriginalL'auteur Oleg SH
ce code est de définir la langue dans le discours recognization
OriginalL'auteur dileep krishnan
J'ai utilisé ce code:
Espère que vous pouvez exécuter votre application.
OriginalL'auteur user5278060