14 votes

Utilisation de la reconnaissance vocale de Google hors ligne

Question

Comment forcer Reconnaissance vocale de Google fonctionnant en mode hors ligne même si une connexion internet est disponible ?

Contexte

Je sais. Reconnaissance vocale de Google dispose d'un mode hors ligne 1 en utilisant des "packs de reconnaissance vocale" que l'on peut télécharger. 2 Je suis également conscient que ce mode hors ligne est limité, comparé à ce qu'il peut faire via Internet. Cependant, étant un peu paranoïaque quant à la collecte de données par Google, je préfère éviter d'utiliser ses services en ligne. Recherche vocale Google du tout.

J'aimerais cependant l'essayer, mais il n'est pas pratique de toujours passer en mode avion pour cela. Mes appareils sont tous enracinés et disposent de l'option "Mode avion". Cadre XPosed installé. Je connais le GoogleOfflineVoice mais il n'a pas été mis à jour depuis 9/2014. n'est pas opérationnel avec l'actuel système de gestion de l'eau. Recherche Google application (de plus, il n'est pas clair si le développeur reprendra le travail ; je viens de demandé à ce sujet La réponse a été "Honnêtement aucune idée" (le dév. manquant de temps)).

Autres avantages

Il est rapporté que Recherche vocale Google est beaucoup plus rapide en mode hors ligne. Donc, si l'on n'a pas besoin des "capacités étendues" de son mode en ligne, une réaction plus rapide sera certainement la bienvenue - ce qui rend cette question intéressante non seulement pour les "fétichistes de la vie privée", les "théoriciens de la conspiration" et les "utilisateurs paranoïaques" :)

Question (raffinée) :

Je cherche donc des alternatives : de préférence des réglages simples, adb les commandes sont définitivement acceptées, les solutions de base sont bien. Si cela nécessite une application, celle-ci ne doit pas nécessiter de permissions ou seulement des permissions minimales. Je suis également ouvert à des suggestions de reconnaissance vocale n'impliquant pas Recherche vocale Google tant qu'ils fonctionnent hors ligne et ne portent pas atteinte à la vie privée. 3 .

Nota:

Je suis surtout intéressé à donner des commandes vocales et peut-être à faire de la dictée.

Informations connexes


1 : voir : Comment utiliser la synthèse vocale hors ligne ?
2 : voir La recherche vocale de Google nécessite un accès à Internet même si le pack de reconnaissance vocale hors ligne est installé.
3 : L'autorisation d'accès à Internet pour le seul téléchargement de packs vocaux est acceptable, car je peux la bloquer dès que le téléchargement est terminé. Le téléchargement manuel (en plaçant les fichiers sur la carte SD) est préférable :)

3 votes

Ce que j'ai trouvé jusqu'à présent indique que les applications tierces doivent définir le paramètre android.speech.extra.PREFER_OFFLINE supplémentaire pour obtenir ce comportement. Je cherche à savoir comment un utilisateur pourrait le contrôler. Il ne semble pas possible de bloquer la plage d'adresses IP, car elle empiète sur d'autres services Google comme le Play Store.

0 votes

Hmm, quelque chose est cassé. La recherche vocale fonctionnait à l'origine pour moi hors ligne (limitée comme vous le mentionnez) mais maintenant elle refuse de fonctionner du tout, disant simplement "Impossible de joindre Google pour le moment".

0 votes

Peut-être que c'est la raison pour laquelle GoogleOfflineVoice a cessé de fonctionner : C'est exactement la même erreur qui a été signalée. Donc ce n'est pas le module qui est cassé, mais Voice Search. Beurk. // BTW : Merci pour la modification !

2voto

Hong Points 1465

J'ai réussi à bloquer le service en ligne louche et à forcer le mode hors ligne (pour termux-speech-to-text ) en identifiant l'utilisateur qui exécute (uniquement) l'opération incriminée. googlequicksearchbox (à partir d'un shell Root) :

# /system/bin/ps -Awo uname,cmdline | grep -m1 -E " com\.google\.android\.googlequicksearchbox:search$" | cut -d" " -f1
u0_a41

(note : j'ai spécifié la fonction intégrée d'Android ps pour éviter les conflits avec d'autres versions installées par l'utilisateur. ps qui ne prennent pas les mêmes paramètres - par exemple sur Termux)

...et ajouter une règle de pare-feu pour bloquer tout le trafic sortant pour les processus de cet utilisateur :

# iptables -A OUTPUT -m owner --uid-owner u0_a41 -j DROP

(cette règle disparaîtra après un redémarrage ou l'exécution de la même commande avec -D au lieu de -A )

0 votes

Bonne idée ! On pourrait utiliser AFWall+ (ou une init.d ) pour faire perdurer cette règle. Pourriez-vous préciser pourquoi cet utilisateur/cette application doit être bloqué(e) ? Existe-t-il, par exemple, une documentation indiquant que cette application fournit la fonctionnalité de reconnaissance vocale ?

1 votes

Je n'ai pas trouvé cela dans la documentation, mais en analysant le trafic global avec tcpdump -n en cours d'exécution termux-speech-to-text (qui utilise le même service), j'ai vu beaucoup de paquets UDP allant vers une IP Google (qui changeait lorsqu'elle était bloquée) au port 443 (si je bloquais tout le trafic UDP allant vers un :443, il retombait sur TCP). Ensuite, à partir de netstat -tunp J'ai constaté que le processus ouvrant la connexion correspondante était toujours "com.google.Android.googlequicksearchbox:search" (qui dans mon cas appartient toujours à l'utilisateur "u0_a41").

0 votes

Merci beaucoup ! Bien que je n'utilise plus GApps (mes appareils fonctionnent sans Google depuis des années déjà) et que je ne puisse donc pas le tester/vérifier, cela semble correct - je vais donc accepter votre réponse. \o_

0voto

Justin Points 1

J'ai examiné cette question et j'ai constaté ce qui suit :

Le système d'exploitation Android de Google semble être configuré pour envoyer toutes les tâches de reconnaissance vocale dans le "nuage", car il n'y a aucune disposition dans le système d'exploitation pour permettre le traitement matériel de la voix, même si votre appareil est censé prendre en charge cette fonction inexistante.

En d'autres termes, Google a modifié son système d'exploitation Android pour envoyer toutes les commandes vocales à son "nuage". Cela leur donne la possibilité de mettre constamment à jour le profil vocal d'un utilisateur à chaque commande en traitant les données audio sur leurs serveurs, ce qui leur donne accès à une grande richesse de données pour des utilisations analytiques et commerciales.

N'oubliez pas que les données personnelles ainsi que les données de "groupe" sont un enjeu pour Google et ses affiliés. L'industrie du "big data", qui comprend la vente et le traitement de tous les types de données personnelles (photos numériques, vidéos en direct, fichiers vidéo, enregistrements vocaux, historique des recherches/visites sur le web, achats en ligne, etc...) devrait représenter une industrie de 500 milliards de dollars d'ici 2025.

Google a besoin d'Android pour capturer les données audio et vidéo (et toutes les autres informations numériques personnelles utilisables) et les envoyer à ses serveurs pour analyse. Leur modèle économique dépend fortement de l'analyse et de la vente de vos données personnelles, sans restriction.

2 votes

Eh bien, on sait que ça marche comme ça. Ma question n'était donc pas "pourquoi est-ce ainsi", mais "comment éviter cela". Merci donc pour ton explication, Justin - mais elle ne répond pas à ma question. Mais cela reste une information utile pour certains. // Entre-temps, je me suis totalement débarrassé de Google sur mes téléphones, qui fonctionnent désormais sans le paquetage GApps. Je devrais donc reformuler ma question en " comment obtenir une reconnaissance de pièces justificatives hors ligne (sans Google, en utilisant uniquement des logiciels libres) ".

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X