Quand l'enceinte parle à la tour

Brancher une enceinte vocale sur son propre logiciel de gestion. Ce qui a été simple, ce qui a résisté, et la leçon qu'on n'attendait pas.

En bref : une skill Alexa pose une question à la tour, la tour répond. Le travail difficile n'a pas été de connecter les deux, mais de rendre une réponse écoutable : ce qui se lit très bien à l'écran s'écoute très mal.

L'idée tient en une phrase

On parle à une enceinte, elle répond avec ce que contient la tour. « Qu'est-ce que je dois faire aujourd'hui ? » — et la liste arrive, à voix haute, sans toucher un écran. Dicter une note en cuisinant. Demander l'état d'un projet en marchant.

Comment une enceinte parle à un logiciel

Amazon appelle une adresse web quand quelqu'un parle à l'enceinte. Notre travail est donc de fournir cette adresse, et de répondre dans le format qu'Amazon attend. Une seule route suffit :

La porte : /tour_alexa/skill — Alexa y envoie du JSON brut, pas le protocole habituel de la tour. Il a fallu lui ouvrir une porte à part, qui parle sa langue à elle.

Deux serrures, pas une

Cette adresse est publique : n'importe qui sur internet peut la trouver. Elle est donc fermée deux fois.

D'abord un jeton secret dans l'adresse, fabriqué par la tour elle-même. Sans le bon jeton, la réponse est « interdit », et rien d'autre ne se produit — la requête ne va même pas jusqu'à la lecture des données.

Ensuite, un second verrou facultatif : l'identifiant de la skill. Amazon envoie, dans chaque appel, l'identité de la skill qui parle. Si on l'a renseignée, toute autre skill est refusée — même avec le bon jeton.

Pourquoi deux : un jeton peut fuiter, il vit dans une adresse. L'identifiant de la skill, lui, ne se devine pas et ne circule pas. Il faut se tromper deux fois pour qu'une serrure lâche.

La leçon qu'on n'attendait pas

Le branchement s'est fait vite. Ce qui a résisté, c'est autre chose : une réponse écrite n'est pas une réponse parlée.

Une réponse de la tour arrive avec des étoiles pour le gras, des dièses pour les titres, des adresses web complètes, des tirets de liste. À l'écran, c'est propre. À voix haute, l'enceinte lit tout — les étoiles, les dièses, et l'adresse caractère par caractère. C'est insupportable au bout de trois secondes.

Il a donc fallu une étape de traduction, entre la réponse et l'oreille :

Le détail qui compte : couper à six cents caractères pile tomberait souvent au milieu d'un mot. On recule donc jusqu'à la dernière espace. C'est une ligne de code, et c'est la différence entre une assistante et un robot cassé.

Ce que ça dit du reste

Un canal nouveau n'est jamais un simple branchement. Chacun a ses contraintes propres, et elles remontent jusqu'au contenu. La voix impose d'être bref, sans mise en forme, sans lien. Elle oblige à répondre vraiment à la question posée, parce qu'on ne peut pas survoler un texte parlé comme on survole un écran.

C'est une bonne discipline. Une réponse qui tient à l'oral tient partout.

Ce que ça ne fait pas

La skill répond au nom du propriétaire de la tour : c'est un usage personnel, pas un accès partagé. Ouvrir la voix à plusieurs personnes demanderait de savoir qui parle, et une enceinte ne le sait pas de façon sûre. C'est une porte qu'on n'ouvre pas à la légère.

🔭