Novemade
Tous les textes

Pourquoi Pivumo livre de l’AAC et non de l’Opus

Le brief demandait Opus. Le livrer aurait rendu l’application muette sur chaque iPhone.

Note technique · · 3 min de lecture

Pivumo est une application d’apprentissage précoce pour des enfants qui ne savent pas encore lire, ce qui fait de la voix l’interface et non une de ses fonctionnalités. Chaque consigne, chaque nombre, chaque couleur et chaque récompense est dite à voix haute, en vingt-neuf langues, par deux personnages. L’audio n’est pas un dossier de ressources — c’est la surface du produit.

Le brief de production spécifiait Opus. Cela ressemble à un choix sensé : une meilleure qualité par octet que l’AAC aux débits de la parole, et pour une application qui livre des milliers de lignes de voix sur vingt-neuf paramètres régionaux, vingt à trente pour cent de moins est un chiffre réel.

Le problème

Sur iOS, l’audio de Flutter passe par AVPlayer. AVPlayer n’a pas de décodeur Opus ni OGG. Une version uniquement Opus n’est pas dégradée sur iPhone et iPad — elle est muette. Pour un produit où la voix est l’interface, muet n’est pas un bogue avec un niveau de gravité. C’est l’application qui n’existe pas.

C’est le genre de chose invisible jusqu’à l’intégration et catastrophique exactement au mauvais moment : après que l’ensemble du paquet multilingue a été généré, écouté en contrôle qualité et vérifié côté licences.

Ce qui a été livré

De l’AAC-LC en .m4a comme ensemble par défaut, à 48 kHz — mono pour la voix, parce que la parole ne gagne rien au stéréo et double de taille, et stéréo pour la musique. Cela se lit nativement sur les deux plateformes. L’ensemble Opus continue d’être produit et livré à côté, en option Android uniquement, avec des noms de fichiers, des clés et une arborescence identiques : le choisir est un changement de chemin et rien d’autre.

La version générale

Les décisions de format appartiennent à la plateforme qui doit les décoder, non au pipeline qui les produit. Le moment le moins coûteux pour le découvrir est avant de générer vingt-neuf paramètres régionaux, et la manière de le rendre peu coûteux consiste à jouer un fichier tôt sur le véritable appareil cible — non à lire la spécification en supposant que l’environnement d’exécution la respecte.

Conserver les deux encodages derrière une arborescence identique n’a presque rien coûté et a transformé une décision irréversible en décision réversible. Cet échange vaut généralement la peine.

Le produit

Pivumo

1002 activités d’apprentissage précoce pour les deux à six ans, doublées en 29 langues.