Google a discrètement activé la reconnaissance hors ligne dans cette mise à jour de la recherche, mais il n'y a pas (encore) d'API ou de paramètres supplémentaires disponibles dans l'interface utilisateur de Google. Classe SpeechRecognizer . {Voir l'édition au bas de ce post} La fonctionnalité est disponible sans codage supplémentaire, mais l'appareil de l'utilisateur doit être configuré correctement pour qu'elle puisse commencer à fonctionner. C'est là que réside le problème et j'imagine que c'est la raison pour laquelle de nombreux développeurs pensent qu'il leur manque quelque chose.
En outre, Google a restreint l'utilisation de la reconnaissance hors ligne à certains appareils Jelly Bean en raison de contraintes matérielles. Les appareils auxquels cela s'applique ne sont pas documentés, en fait, rien n'est documenté, donc la configuration des capacités pour l'utilisateur s'est avérée être une question d'essais et d'erreurs (pour eux). La configuration des capacités pour l'utilisateur s'est avérée être une question d'essais et d'erreurs (pour eux). Cela fonctionne pour certains immédiatement - pour ceux qui ne le font pas, voici le "guide" que je leur fournis.
- Assurez-vous que le système de reconnaissance vocale par défaut d'Android est réglé sur Google pas Samsung/Vlingo
- Désinstallez les fichiers de reconnaissance hors ligne que vous avez déjà installés dans les paramètres de la recherche vocale de Google
- Allez dans les paramètres de votre application Android et voyez si vous pouvez désinstaller les mises à jour des applications Google Search et Google Voice Search. et Google Voice Search.
- Si vous n'arrivez pas à faire ce qui précède, allez sur le Play Store et voyez si vous avez cette option.
- Redémarrage (si vous avez réalisé 2, 3 ou 4)
- Mettez à jour Google Search et Google Voice Search depuis le Play Store (si vous avez réalisé 3 ou 4 ou si une mise à jour est disponible de toute façon).
- Redémarrage (si vous avez atteint 6)
- Installer les fichiers de langue anglaise UK hors ligne
- Redémarrer
- Utilisez Conneries ! avec une connexion
- Passez en mode avion et essayez-le.
- Une fois qu'elle fonctionne, la reconnaissance hors ligne d'autres langues, comme l'anglais US, devrait commencer à fonctionner aussi.
EDIT : Le fait de changer temporairement la locale de l'appareil en English UK semble également faire fonctionner cette fonction pour certains.
Certains utilisateurs ont signalé qu'ils devaient encore redémarrer un certain nombre de fois avant qu'il ne commence à fonctionner, mais ils finissent tous par y arriver, souvent de manière inexplicable à ce qui a été le déclencheur, dont la clé se trouve à l'intérieur de l'application Recherche Google APK et ne font donc pas partie du domaine public ou de l'UE. AOSP .
D'après ce que j'ai pu constater, Google teste la disponibilité d'une connexion avant de décider d'utiliser la reconnaissance hors ligne ou en ligne. Si une connexion est disponible au départ mais qu'elle est perdue avant la réponse, Google fournira une erreur de connexion, il ne reviendra pas à la reconnaissance hors ligne. Par ailleurs, si une demande de voix synthétisée par le réseau a été faite, aucune erreur n'est fournie en cas d'échec - vous obtenez le silence.
La mise à jour de Google Search n'a pas permis d'ajouter de nouvelles fonctionnalités à Google Now et, en fait, si vous essayez de l'utiliser sans connexion Internet, il se bloque. Je le mentionne car je me demandais si cette fonctionnalité serait retirée aussi discrètement qu'elle est apparue et il ne faut donc pas s'y fier en production.
Si vous avez l'intention de commencer à utiliser la classe SpeechRecognizer, sachez qu'il y a une assez longue période de temps avant de pouvoir utiliser la classe SpeechRecognizer. bogue majeur qui lui sont associés et dont la gestion nécessite votre propre mise en œuvre.
Ne pas être en mesure de demander spécifiquement hors ligne = vrai Le contrôle de cette fonction est impossible sans manipuler la connexion de données. Foutaises. Vous recevrez des centaines d'e-mails d'utilisateurs vous demandant pourquoi vous n'avez pas activé une fonction aussi simple !
EDIT : Depuis le niveau 23 de l'API, un nouveau paramètre a été ajouté EXTRA_PREFER_OFFLINE à laquelle le service de reconnaissance de Google semble adhérer.
J'espère que ce qui précède vous aidera.
1 votes
Donc, tant que nous téléchargeons le langage, nous n'avons pas besoin de modifier notre code ?