
Tech • IA • Robotique • Jeu
Un pipeline AWS orienté événements peut transcrire automatiquement des fichiers audio téléversés en combinant S3, Lambda, SQS, EC2 et Whisper dans un workflow asynchrone qui monte en charge sereinement lors des pics.
Le système est conçu pour que le téléversement et la transcription s’exécutent indépendamment. Un utilisateur dépose un fichier audio dans le stockage cloud puis s’en va; le téléversement n’attend pas le traitement, et le worker chargé de la transcription n’a pas besoin de savoir qui a envoyé le fichier ni quand. Ce découplage permet au service de traiter un fichier ou des dizaines avec la même action utilisateur.
L’installation utilise un bucket S3, une file SQS standard, une fonction Lambda et un worker EC2. Elle est volontairement réduite pour mettre en avant le modèle central événement, file, worker, tout en laissant de côté des couches de production plus complexes comme des flottes de workers avec autoscaling, un périmètre IAM plus strict et la gestion des dead letters en cas d’échecs répétés.
La sécurité repose d’abord sur deux rôles IAM plutôt que sur des clés d’accès permanentes. Le rôle EC2 autorise le worker à lire et écrire des objets S3 ainsi qu’à recevoir et supprimer des messages SQS, tandis que le rôle Lambda permet au dispatcher d’écrire des logs et d’envoyer des messages vers la file. Cela évite de stocker des secrets de longue durée sur disque et limite chaque composant aux services dont il a besoin.
Les fichiers audio arrivent dans un préfixe d’entrée et les transcriptions terminées sont écrites dans un préfixe de sortie au sein du même bucket S3. Cela fonctionne parce que les dossiers S3 ne sont que des préfixes de noms et non de vrais répertoires. Utiliser un seul bucket avec deux préfixes simplifie le routage tout en séparant les fichiers entrants et sortants.
Une file SQS standard se place entre les événements de téléversement et le worker de transcription. Si 40 fichiers arrivent d’un coup, ils s’alignent sous forme de messages au lieu de submerger la couche de calcul. Le worker les traite un par un, de sorte que les téléversements en amont continuent sans heurts même si la transcription prend du temps.
Le réglage clé de la file est un délai de visibilité de 300 secondes, augmenté par rapport aux 30 secondes par défaut. Quand le worker récupère une tâche, le message devient invisible pendant le traitement. C’est important, car transcrire un long enregistrement sur une petite machine peut prendre plusieurs minutes; sans ce délai plus long, le même message pourrait réapparaître et être traité deux fois.
Le dispatcher Lambda n’est déclenché que lorsque des objets sont créés dans le préfixe d’entrée. Il lit le nom du bucket et la clé de l’objet depuis l’événement S3 et envoie ces détails à SQS. Limiter le déclencheur à la zone d’entrée empêche que la sortie de transcription du worker soit prise pour un nouvel envoi audio et remise en file indéfiniment.
Le worker s’exécute sur une petite instance Amazon Linux EC2 avec Docker et sans paire de clés SSH, l’accès console étant utilisé lorsqu’un shell est nécessaire. Comme Whisper et son conteneur dépassent les limites d’une très petite machine, le disque est porté à 30 GB et un fichier de swap de 2 GB est ajouté. Cela rend une instance économique utilisable pour l’inférence de machine learning, en échange d’une vitesse plus faible mais d’un coût au repos réduit.
Un conteneur worker Whisper préconstruit est configuré avec l’adresse de la file, la région AWS, le bucket et les préfixes d’entrée et de sortie. Il interroge la file en continu, télécharge l’audio, le transcrit, téléverse le fichier texte résultant dans le préfixe de sortie, puis supprime le message de la file en cas de succès. Si le worker plante avant cette suppression, le message redevient visible après cinq minutes et peut être retenté.
Dans un déroulement typique, un enregistrement téléversé déclenche un événement S3, réveille le dispatcher Lambda et produit un message dans la file. Le worker EC2 reçoit ce message, traite l’audio et écrit une transcription une ou deux minutes plus tard. Le résultat est un fichier texte qui apparaît automatiquement, sans étape manuelle de transcription.
Cette conception montre comment une pile AWS modeste peut transformer des téléversements audio en transcriptions automatiques avec un traitement asynchrone fiable et peu coûteux. Sa principale valeur réside dans le modèle lui-même: isoler l’événement, mettre le travail en tampon et laisser un worker traiter les tâches à son propre rythme.
Explique-moi