Pour Android

Clavier Whisper Android

Whisper a fait de la bonne reconnaissance vocale quelque chose qu’on peut faire tourner soi-même au lieu de le louer. Sur un téléphone, ça se révèle être un problème de matériel avant d’être un problème de logiciel.

Alternatives

Pourquoi les gens cherchent ça

Whisper est un modèle de reconnaissance vocale. Ce qui l’a rendu important, ce n’est pas d’avoir été le plus précis jamais construit, c’est d’avoir pu être téléchargé et exécuté sur du matériel ordinaire. Avant lui, une transcription correcte voulait dire envoyer de l’audio à une entreprise propriétaire du modèle.

Une fois qu’on l’a fait tourner sur un portable, la pensée suivante s’impose d’elle-même : c’est sur mon téléphone que j’écris vraiment, alors pourquoi mon téléphone continue-t-il d’expédier ma voix vers un serveur ?

C’est la question qui se cache sous la recherche. Ce n’est pas un banc d’essai, et rien ici ne critique les projets cités. Plusieurs sont du travail libre mené avec soin par de petites équipes, et ils sont arrivés les premiers.

Un téléphone n’est pas un ordinateur

Whisper se décline en tailles, et celles qu’on encense sur ordinateur sont grosses. C’est très bien quand il y a une carte graphique, de la mémoire à revendre et un ventilateur.

Un téléphone dispose de quelques gigaoctets de mémoire partagés avec toutes les autres apps, d’aucun refroidissement actif, et d’une batterie qu’il essaie de préserver. Tout projet qui met Whisper sur Android consent donc au même jeu de concessions, qu’il le dise ou non :

  • Un modèle plus petit, donc une précision un peu en dessous des résultats de bureau que les gens citent.
  • Une attente après que tu as cessé de parler, puisque le travail commence quand il y a de quoi travailler.
  • De l’espace de stockage, parce que le fichier du modèle doit habiter sur l’appareil.
  • Moins de langues, le multilingue se payant en taille.

Qui annonce sur téléphone une transcription identique à celle d’une station de travail décrit autre chose que ce que fait le matériel. La question intéressante est de savoir quelles concessions une app donnée a retenues.

Ce qui existe aujourd’hui

Whisper IME exécute Whisper sur l’appareil et se présente comme méthode de saisie, donc utilisable depuis le clavier. La licence est MIT, c’est gratuit, il lui faut Android 9 ou plus récent, et il télécharge son modèle avant la première utilisation. Les enregistrements sont plafonnés à une demi-minute environ à chaque fois, ce qui convient mieux aux phrases et aux messages courts qu’à la dictée au long cours.

Transcribro tourne lui aussi sur l’appareil, avec whisper.cpp, et fournit à la fois un clavier et un service système de reconnaissance vocale que d’autres apps peuvent appeler. La licence est ISC, c’est gratuit. Il traite l’anglais.

Les deux sont libres, les deux gardent l’audio sur le téléphone, et les deux sont l’œuvre de gens qui voulaient que ça existe. Si gratuit et inspectable est ce qui compte le plus pour toi, commence là et arrête ta lecture ici.

Où se place LocalType

LocalType fait d’autres choix à partir du même principe de départ.

C’est d’abord un clavier complet, pas une dictée accrochée à un clavier. Correction automatique, suggestions de mot suivant, un dictionnaire par langue, AZERTY là où c’est la norme du pays et QWERTY ou QWERTZ ailleurs, un jeu d’émojis, et tes propres mots ajoutés à la liste. Le micro est une touche de ce clavier, donc la dictée n’est pas une chose distincte dans laquelle on bascule.

Il arrive avec trois tailles de modèle et te laisse arbitrer plutôt que d’arbitrer à ta place. Une de 60 Mo pour la vitesse sur du matériel fatigué, une de 190 Mo comme équilibre par défaut, une de 539 Mo quand la précision vaut l’attente. Les chiffres derrière ça, relevés sur un téléphone à 4 Go de mémoire : le modèle de 190 Mo a écrit 6,9 secondes de parole en 4,1 secondes, et le plus grand met environ le double du temps que tu as passé à parler. Un seul modèle est conservé, donc en changer remplace le fichier au lieu d’en ajouter un.

Il couvre dix-huit langues avec un modèle multilingue unique et devine laquelle tu parles à partir de l’enregistrement plutôt que d’un réglage. C’est là que LocalType a dépensé son budget de taille, et c’est la différence pratique la plus nette avec les options réservées à l’anglais.

Il est suivi comme un produit et non comme un projet du soir, ce qui compte le jour où quelque chose casse sur un modèle de téléphone que personne n’a testé.

Il tourne à partir d’Android 8.0, ce qui remonte plus loin que certaines alternatives.

Ce que ça te coûte

LocalType n’est pas libre et n’est pas gratuit. Ce sont de vrais désavantages face aux projets ci-dessus, et ils pèsent le plus lourd pour exactement les gens à qui ces projets s’adressent.

Ce que tu obtiens en échange, c’est un produit qui fait le travail entier : un clavier utilisable toute la journée sans toucher au micro, une dictée en dix-huit langues intégrée dedans, et quelqu’un à qui se plaindre quand il se comporte mal.

Le point commun à tous

Quel que soit ton choix, la propriété importante est la même, et c’est la raison d’en prendre un plutôt qu’aucun.

Ton audio ne quitte pas l’appareil. La reconnaissance est un fichier sur ton téléphone qui travaille sur ton téléphone. Il n’y a aucun compte, rien n’est téléversé, et une fois le modèle en place la connexion n’a plus d’importance : avion, tunnel, sous-sol et voyage avec les données coupées se comportent identiquement.

Pour LocalType en particulier, le modèle occupe le stockage privé de l’app, les données de l’app sont volontairement exclues de la sauvegarde cloud d’Android, le micro s’éteint de lui-même dans un champ de mot de passe, et il n’y a aucune publicité ni le moindre pistage à l’intérieur du produit. L’accès à internet n’est demandé que dans un seul but, aller chercher le modèle que tu as choisi. Aucune archive de tes enregistrements n’est conservée à aucun moment : l’audio devient du texte dans le champ où tu écrivais, et rien ne survit à l’opération. Les mots que tu ajoutes au dictionnaire restent eux aussi sur l’appareil.

Comment vérifier qu’une app tourne vraiment en local

Beaucoup d’apps se décrivent comme privées, locales ou sécurisées sans préciser où l’audio est traité. Il existe un test qui tranche en moins d’une minute et ne demande aucune connaissance technique.

Installe l’app et laisse-la terminer le téléchargement qu’elle réclame au premier lancement. Ensuite, mets le téléphone en mode avion, coupe aussi le Wi-Fi, et dicte une phrase.

Si des mots apparaissent, la reconnaissance s’est faite sur l’appareil. Il n’y a pas d’échappatoire, rien n’était joignable. Si ça bloque, expire ou affiche une erreur de connexion, l’audio partait quelque part, quoi qu’ait annoncé la fiche de l’app.

Certaines apps téléchargent leur modèle au premier usage, donc un échec avant d’avoir laissé faire ça ne prouve rien. Et une app peut vraiment travailler en local tout en parlant à un serveur pour d’autres raisons, comme la vérification d’une licence ou les mises à jour, ce qui est une autre question que celle du trajet de ta voix.

Fais ce test sur tout ce qui figure dans cette liste, LocalType compris. Nous préférons que tu vérifies plutôt que tu nous croies.

Où aller regarder

Si tu veux lire le code et ne rien payer, Whisper IME et Transcribro sont les adresses, et l’anglais seul n’est pas un problème si c’est en anglais que tu écris.

Si tu veux la dictée en dix-huit langues à l’intérieur d’un clavier que tu utiliserais de toute façon, sans l’assembler à partir de pièces détachées, c’est ce à quoi sert LocalType. Le même principe en dessous, emballé comme un produit et non comme un composant.

LocalType pour Android

Ta parole transformée en texte, en privé, sur ton propre téléphone. La reconnaissance vocale tourne sur le téléphone lui-même.

Disponible sur Google Play