← Journal
Technique·12 mai 2026

Quand l'assistant dit « OK je regarde » avant de répondre

Un smartphone posé à plat sur un bureau en bois sombre, l'écran éteint sauf un petit point de lumière bleue, une tasse en céramique et un carnet ouvert à côté, lumière douce de fin de matinée

Jusqu'au 12 mai, entre le moment où l'on relâchait le bouton et celui où la voix répondait, l'écran ne montrait rien. Cinq, dix, parfois quinze secondes sans un signe, et l'application avait l'air en panne. Cette journée a été consacrée à ces silences : des halos qui réagissent à la voix, un état « je réfléchis » qui garde l'orbe allumée, une bulle retirée, et une phrase brève, « OK je regarde ça », que l'assistant dit tout de suite quand la réponse va prendre du temps.

Un écran qui n'a rien d'autre à faire que rassurer

L'application n'a qu'un écran, et sur cet écran, une orbe. Quand on a conçu cette interface pour qu'elle ne se voie pas, on a accepté une contrepartie : tout ce que l'application fait doit se lire sur cette orbe, ou nulle part. Une application classique dispose d'une roue qui tourne, d'une barre de progression, d'un bouton grisé. Ici, il n'y a que le mouvement d'une forme et une voix.

Tant que la conversation tenait en un échange court, ça suffisait. On tient le bouton, on parle, on relâche, la réponse arrive une seconde ou deux plus tard. Mais dès que la demande exigeait une recherche, une recette, un lieu, une panne à diagnostiquer, la réponse mettait cinq à sept secondes à partir. Et quand la transcription, le modèle et la synthèse vocale s'additionnaient, on pouvait attendre quinze secondes sans qu'un pixel ne bouge. L'écran revenait au repos à l'instant où le doigt quittait le bouton, exactement comme si rien n'avait été entendu.

La question posée par les premiers essais tenait en une phrase : « il est planté ou il travaille ? » On tapait l'écran, on fermait une fiche, on répétait la demande. Et parfois la réponse arrivait pendant qu'on la répétait.

Ce 12 mai, entre deux essais de photos pour les fiches, a donc été consacré à ces silences. Quatre changements, deux sur l'écran, deux dans la voix, et un cinquième pour le cas où il n'y a vraiment rien à dire.

Fin de matinée : des bords qui s'allument avec la voix

Le premier signe manquant était le plus simple. Pendant qu'on parle, rien ne montrait que le micro entendait. L'orbe pulsait à son rythme, le même qu'au repos.

En fin de matinée, deux bandes de lumière sont apparues le long des bords gauche et droit de l'écran. Elles sont bleues pendant que l'utilisateur parle, et leur intensité n'est pas une animation : elle est tirée du niveau sonore mesuré par le micro, plusieurs fois par seconde, converti d'une mesure en décibels en une valeur entre zéro et un, puis lissé pour que le halo respire au lieu de clignoter. Quand on hausse la voix, les bords s'allument. Quand on se tait en cherchant ses mots, ils s'apaisent sans s'éteindre. Le bouton tenu et les bords qui suivent la voix disent la même chose : je t'entends, continue.

Pour la voix de l'assistant, on ne dispose pas de la même donnée. Le lecteur audio qui joue la réponse ne renvoie pas d'amplitude en temps réel. Plutôt que d'inventer un faux niveau, les halos adoptent une oscillation stylisée, un rythme proche d'une parole, trois cycles par seconde environ, dans une autre couleur. Le rendu dit « il parle » sans prétendre mesurer le volume. C'est un compromis assumé : un halo qui bat au rythme d'une vraie voix serait plus juste, mais un halo qui bat à un rythme de voix est déjà honnête.

Un détail de plomberie comptait pour que l'effet tienne. La mesure du micro ne traverse pas le code de l'application à chaque relevé : elle est déposée dans une valeur partagée que le moteur d'animation lit directement sur le fil d'affichage. Sans ce raccourci, chaque relevé aurait fait un aller-retour de plus, et un halo qui suit la voix avec un temps de retard ne suit plus rien.

Midi : des rectangles bleus à la place des halos

Le premier essai sur téléphone a montré autre chose que des halos. Deux rectangles bleus, pleins, opaques, qui se recouvraient au milieu de l'écran. La conversation était illisible derrière.

La cause tenait au dégradé. La première version dessinait les halos avec un dégradé radial vectoriel, dont les rayons horizontal et vertical étaient donnés en pourcentage de la zone. Sur Android, cette façon d'écrire les rayons n'est pas comprise : la bibliothèque abandonne le dégradé et remplit tout le rectangle de la couleur de départ. Le code était le même, le résultat était une plaque.

Les halos ont été refaits dans le moteur de dessin qui rend déjà l'orbe. Il ne connaît que des dégradés radiaux circulaires ; pour obtenir une ellipse, on applique au dégradé lui-même une transformation qui l'étire verticalement, sans toucher à la géométrie du rectangle qui le porte. Ce qui en sort est un fondu elliptique, fiable sur les téléphones essayés, aux dimensions de la maquette : chaque halo occupe un peu plus de la moitié de la largeur de l'écran et déborde en haut et en bas, pour que la lueur semble venir de derrière le bord plutôt que d'un objet posé dessus. Le volume ne change pas la taille du halo, seulement son opacité : agrandir une forme à chaque relevé aurait coûté cher en calcul et donné un effet de pompe désagréable.

La palette a été revue au passage. Le bleu reste celui de l'utilisateur. Pour l'assistant, le cyan initial a cédé la place à une lueur plus chaude, la même que celle du halo de l'orbe quand elle parle, si bien que l'orbe et les bords racontent ensemble la même phase.

L'état qui n'existait pas : « je réfléchis »

Le silence le plus long n'était pas pendant la parole. Il commençait au relâchement du bouton.

L'écran connaissait quatre états : le repos, l'écoute, la parole de l'assistant, et la saisie au clavier. Entre l'écoute et la parole, rien. Le doigt quitte le bouton, l'enregistrement part, la transcription revient, le modèle raisonne, appelle ses outils, la synthèse vocale fabrique l'audio, et pendant tout ce temps l'état était « repos ». L'orbe remontait au centre et pulsait tranquillement, comme avant qu'on lui parle. Cinq à quinze secondes de calme parfait, précisément quand l'application travaillait le plus.

Un cinquième état a été ajouté : « réfléchit ». Il s'enclenche à l'instant où le message de l'utilisateur est posé dans le fil, qu'il vienne de la voix ou du clavier. L'orbe descend en bas de l'écran, à la place qu'elle prend quand l'assistant parle, avec une légende sous elle : « je réfléchis… ». Les halos latéraux restent allumés, dans la teinte chaude de l'assistant, et continuent de respirer lentement. Le clavier se replie s'il était ouvert, pour que l'orbe soit visible. Et un tap sur l'orbe interrompt, le même geste qu'au milieu d'une réponse parlée, pour que l'utilisateur garde la main à tout moment.

Deux détails de transition comptaient. D'abord, on n'entre dans « réfléchit » que depuis le repos ou l'écoute : si une transcription tardive arrive alors que l'assistant est déjà en train de parler, elle ne doit pas écraser cette phase. Ensuite, on en sort dès que le texte de la réponse arrive, et non quand l'audio démarre. Si le son est activé, la lecture reprend aussitôt la main et l'orbe passe en « parle » sans qu'on voie la couture. Si le son est coupé, il n'y a pas de lecture, et sans cette sortie l'orbe serait restée en bas à réfléchir pour toujours.

Après-midi : une bulle en trop

Le début d'après-midi a été occupé par les fiches et leurs images. En revenant à la conversation, un élément a sauté aux yeux : pendant la dictée, une petite bulle sous l'orbe disait « j'écoute ». Elle avait été posée là quand elle était le seul signe que le micro tournait. Depuis le matin, les bords de l'écran disaient la même chose, en mieux, puisqu'ils suivaient la voix.

Deux signaux pour une seule information, c'est un de trop. La bulle a été retirée. La transcription partielle qui l'alimentait est toujours calculée, au cas où elle servirait ailleurs un jour, mais elle n'est plus affichée. C'est la leçon inverse du reste de la journée : dire ce qu'on fait ne veut pas dire le dire deux fois.

« OK je regarde ça » : le mot d'attente

Restait le silence le plus gênant, celui que l'écran seul ne pouvait pas combler.

Quand une demande exige une recherche sur le web, le modèle enchaîne plusieurs outils avant de rédiger : il interroge d'abord la mémoire, lance la recherche, enregistre souvent le résultat dans une fiche, puis seulement écrit sa réponse, qui part ensuite à la synthèse vocale. Cinq à sept secondes entre la fin de la phrase de l'utilisateur et le premier mot de l'assistant. L'état « réfléchit » montre que quelque chose tourne, mais dans une conversation, sept secondes de silence restent longues. Entre humains, personne ne se tait sept secondes avant de répondre : on dit « attends, je regarde ».

C'est ce que fait l'assistant depuis cet après-midi-là. Le chef d'orchestre côté serveur, celui qui fait tourner le modèle et exécute ses outils, observe la première décision du modèle. Si cette première décision comprend une recherche web, le seul outil de la chaîne qui prend systématiquement plus d'une seconde, il déclenche aussitôt une phrase courte : « Ok, je regarde ça, donne-moi un instant. » Cinq variantes existent, tirées au sort à chaque fois, « Une seconde, je cherche », « Je m'en occupe, deux secondes », pour qu'on n'entende pas la même formule à chaque recherche. Elles sont courtes à dessein : l'utilisateur n'a besoin que de savoir que ça avance.

Le point important est que cette phrase ne coûte pas de temps. Le serveur ne l'attend pas : il lance la synthèse de la phrase et, en parallèle, exécute les outils. Le texte part vers le téléphone immédiatement, l'audio suit une demi-seconde plus tard, et pendant ce temps la recherche est déjà en cours. Quand la vraie réponse arrive, elle arrive au même moment qu'avant ; simplement, le silence qui la précédait a été rempli. Pour rester vive, la phrase d'attente utilise la voix demandée par le téléphone sans aller relire les préférences en base, contrairement à la réponse finale. Et si l'utilisateur a coupé le son, il voit la phrase dans le fil sans qu'aucun audio ne soit fabriqué pour rien.

On aurait pu déclencher ce mot d'attente sur toutes les demandes. On ne l'a pas fait : un outil seul répond en moins d'une demi-seconde, et une phrase d'attente devant une réponse immédiate aurait rendu l'assistant bavard. Le mot d'attente est réservé au cas où l'attente existe.

Et quand il n'y a vraiment rien à dire

Un dernier silence a été traité le même matin, quelques minutes avant les halos, parce qu'il relevait de la même famille : celui où le modèle ne répond pas du tout.

Trois situations le produisaient. Le modèle plante en cours de route, une erreur réseau ou un serveur distant qui refuse. Le modèle tourne en boucle, appelle des outils encore et encore, et atteint la limite d'itérations sans jamais conclure par du texte. Ou le modèle renvoie une chaîne vide, ce qui arrive plus souvent qu'on ne le croirait. Dans les trois cas, l'orbe restait muette, et l'utilisateur n'avait aucun moyen de distinguer une panne d'une attente.

Désormais, chacun de ces cas produit une phrase parlée, distincte selon la cause : un souci technique de notre côté, une erreur en essayant de faire ce qui était demandé, ou une réponse qui n'a pas pu être finalisée, avec à chaque fois l'invitation à réessayer ou à reformuler. Si un outil a échoué mais que le modèle a lui-même expliqué le problème, on garde son explication, toujours plus précise qu'une formule toute faite. La réponse de secours n'est pas là pour faire joli : elle est là pour que l'orbe ne se taise jamais sans raison dite.

Ce que la journée aura appris

Une application sans écran de navigation ne peut pas se permettre le silence. Chaque seconde où rien ne bouge est une seconde où l'utilisateur se demande s'il doit recommencer, et recommencer est le pire des scénarios : deux demandes en vol, deux réponses, une fiche en double.

Ce 12 mai a réparti la réponse entre l'écran et la voix. L'écran dit la phase : j'écoute, avec des bords qui suivent la voix ; je réfléchis, avec une orbe qui reste allumée ; je parle, avec une lueur chaude. La voix dit l'attente quand elle va être longue, et elle dit l'échec quand il a lieu. Aucun de ces signaux n'ajoute de latence, et aucun ne ment : le halo de l'assistant ne prétend pas mesurer sa voix, la phrase d'attente ne promet rien de plus qu'une recherche en cours.

C'est la règle que l'on a gardée depuis pour tout ce qui touche à la voix et à la conversation : un assistant qui travaille doit le montrer, un assistant qui attend doit le dire, et un assistant qui échoue doit le dire aussi. Le reste, la mémoire, les fiches, les recherches, n'a de valeur que si l'on n'a pas fermé l'application entre-temps en la croyant morte.

À lire ensuite
XNeuronal est disponible sur AndroidUne mémoire qui déduit arrive bientôt