Nouveau Trouve le job que tu mérites sur Les Joies du Code

Thème d'affichage

Un dev a créé un synthétiseur de canards plus canard que nature

Nicolas Lecointre ·
Un dev a créé un synthétiseur de canards plus canard que nature

Jusqu'ici, le seul canard toléré près d'un clavier était en plastique, et son job se limitait à écouter vos bugs sans broncher.

Un développeur inventif a décidé de vous en mettre à dispo toute une bande directement dans votre navigateur : The Duck Pond est une petite mare peuplée de canards colverts, avec trois canes, deux mâles et deux couvées de canetons.

Côté look, The Duck Pond est très sobre, pour ne pas dire basique : une ellipse bleue vue du dessus pour la mare, de petites formes colorées pour les canards et, à droite, la liste de leurs distances.

Capture de The Duck Pond : une mare vue du dessus avec des canards qui cancanent, et la liste de leurs distances à droite

Mais ce n'est pas là que se joue le projet. Tout se passe dans la façon dont ces canards se comportent et dans leurs cris.

Aucun de leurs "coin-coin" ne sort d'un enregistrement : chaque cri est calculé à l'instant où le canard le pousse, puis vous parvient tel que vous l'entendriez depuis votre place sur la berge.

Des canards calqués sur de vrais colverts

Le projet pousse le réalisme jusqu'à l'emploi du temps des palmipèdes, en s'appuyant sur deux études de terrain : l'une menée en 1981 sur des colverts nicheurs du nord de la Suède, l'autre en 1987 sur des colverts venus passer l'hiver en Alabama.

La première sert de repère pour le temps passé à manger, la seconde pour leur repos. À la louche, ça donne 40 % du temps à manger, 30 % à se reposer, 15 % à se lisser les plumes et le reste à se balader (pas une réunion à l'horizon).

Les deux études de terrain sur les colverts ne sont pas les seules sources du projet : le fichier qui les recense aligne une vingtaine de références, dont une étude sur l'hydroplanage des canetons qui sert à régler leur vitesse de nage.

Quand une cane lance une série de coin-coin, ses voisins peuvent lui répondre, à commencer par son compagnon (quand elle en a un).

Comme chez les vrais colverts, le mâle ne cancane pas et se contente d'un petit cri rauque. Dans la mare, il le pousse plus souvent quand sa compagne n'est plus à portée.

Quant au caneton parti à la chasse aux insectes un peu trop loin de sa mère, il s'arrête et piaille jusqu'à ce qu'elle le rappelle.

Pour les visiteurs, un bouton permet aussi de leur lancer une poignée de petits pois. Les canards les plus proches les repèrent, poussent un cri et foncent de pois en pois, dans la limite des stocks disponibles.

De quoi casser trois pattes à un canard

Le synthétiseur, écrit en Rust et disponible sur GitHub, tourne dans le navigateur grâce à WebAssembly, mais peut aussi se compiler pour tourner directement dans un terminal.

Capture du terminal : une mare en ASCII où des canards (poules, mâles, canetons) se déplacent et lancent des wak-wak-wak

Pour que ses coin-coin sonnent juste, il va jusqu'à imiter l'appareil vocal du canard.

Une série d'impulsions d'air reproduit les vibrations de la syrinx, l'organe qui produit le son chez les oiseaux. Des filtres jouent ensuite le rôle du conduit vocal et suivent le bec, qui s'ouvre et se referme au fil du coin-coin.

Une impulsion sur deux est volontairement affaiblie et avancée d'un poil, ce qui rend le cri éraillé. Et de petites variations aléatoires évitent que deux coin-coin sonnent pareil.

La mare s'appuie même sur une norme ISO : les aigus des cris lointains sont atténués par un filtre calé sur ISO 9613-1, qui définit comment calculer l'absorption du son par l'air. Chaque cri vous parvient aussi avec le retard qu'impose la vitesse du son.

Au casque, chaque oreille reçoit son propre signal, calculé avec un modèle qui assimile votre tête à une sphère (rien de personnel, promis).

Coin-coin assisté par IA

Son auteur ne s'en cache pas : le projet a été réalisé avec un gros coup de main de Claude. Faut dire que le traitement audio n'est pas du tout la partie de ce dev : de son propre aveu, sa contribution se résume à quelques choix techniques.

Claude a tourné en boucle en corrigeant peu à peu les réglages de la synthèse sonore, pour que le spectrogramme du cri obtenu (l'image de ses fréquences au fil du temps) colle à celui d'un vrai canard enregistré.

Des enregistrements de vrais colverts ont servi à l'étalonnage des cris synthétisés pendant le prototypage en Python, mais ne figurent pas dans le dépôt.

En cours de route, un modèle d'IA entraîné à reconnaître les sons a même identifié le cri synthétique comme un canard avec plus de certitude que l'enregistrement d'un vrai canard.

Se rendre sur le site The Duck Pond

À propos de l'auteur

Nicolas Lecointre

Nicolas Lecointre

Fondateur des Joies du Code, je suis l'actualité et la culture des développeurs depuis 2012. Ancien développeur, je me consacre aujourd'hui entièrement au média.

Voir sa page auteur

Offres d'emploi

Voir toutes les offres

À lire également

Articles recommandés

Plus de contenu

Charger +