Skip to content
··8 min de lecture

DIALØGUE : Construire un générateur de podcast alimenté par l'IA de zéro (et apprendre énormément en chemin)

J'ai construit un générateur de podcast IA qui te permet de façonner le contenu avant qu'il soit créé — parce que j'en avais assez que l'IA me lise Wikipédia pendant mes trajets.

L'étincelle : pourquoi construire un générateur de podcast ?

Voilà la chose — j'adore les podcasts. En tant que quelqu'un qui passe beaucoup trop de temps dans les embouteillages (salut les collègues navetteurs !), je me suis toujours demandé : et si je pouvais générer un podcast sur n'importe quel sujet qui me fascine ? Pas juste une voix IA ennuyeuse qui lit Wikipédia, mais une vraie conversation engageante entre des hôtes IA.

Et soyons honnêtes, après avoir construit plusieurs projets plus petits et écrit sur mon parcours de codage, je voulais m'attaquer à quelque chose de plus grand. Quelque chose qui me pousserait à apprendre de nouvelles technologies et peut-être, qui sait, à créer quelque chose d'utile pour les autres. :P

Qu'est-ce que DIALØGUE ?

DIALØGUE est une application en phase précoce (phase alpha) qui génère des podcasts professionnels grâce à l'IA. Tu lui donnes un sujet — n'importe quoi, de "Les décisions de la Fed et l'impact sur les marchés en 2025" à "Comprendre l'informatique quantique pour les débutants" — et elle crée un podcast complet de plus de 20 minutes avec plusieurs voix IA qui ont une vraie conversation.

Voici ce qui le différencie du simple fait de demander à ChatGPT de te lire un article :

  • Révision interactive du plan : c'est le vrai game-changer — avant que toute recherche ou rédaction n'ait lieu, tu peux examiner le plan proposé et le modeler exactement comme tu le veux
  • Contenu basé sur la recherche : utilise un moteur de recherche pour trouver des faits et des informations actuelles
  • Dialogue naturel : Claude Sonnet 4 écrit des scripts conversationnels
  • Plusieurs voix : des voix neurales de haute qualité avec différentes personnalités d'hôtes

L'ensemble du processus prend environ 10 minutes, du sujet au fichier audio final. Pas mal pour quelque chose qui prendrait des heures ou des jours à des humains !

La stack technique : une aventure serverless (qui a évolué)

Bien, entrons dans les détails techniques (ma partie préférée !). Voici ce qui propulse DIALØGUE :

Frontend

- Next.js 15 + React 19 : parce que je voulais utiliser ce qu'il y a de plus récent et de meilleur

- TypeScript : après m'être fait piéger trop de fois par des erreurs à l'exécution

- Tailwind CSS : rend le styling tellement plus facile pour quelqu'un qui n'est pas un wizard du design

- Supabase JS Client : pour l'auth et les mises à jour en temps réel (c'était un vrai game-changer)

Backend (actuel — GCP)

- Cloud Run : 10+ microservices Python conteneurisés avec mise à l'échelle automatique

- Cloud Workflows : orchestre les workflows pré-feedback (plan) et post-feedback (génération)

- Cloud Storage : stockage de fichiers audio avec livraison CDN

- API Gateway : point d'entrée unique avec CORS et authentification

- Supabase : base de données PostgreSQL avec Row Level Security et Edge Functions

*Note : initialement construit sur AWS Lambda/Step Functions, mais migré vers GCP en juillet 2025 pour de meilleures performances et une réduction des coûts de 92 % pour la génération audio.*

Services IA

- Claude 4.0 Sonnet : génération de scripts avec temperature 0 pour la fiabilité JSON (API Anthropic directe)

- Perplexity AI : recherche et vérification des faits pour chaque segment

- OpenAI TTS : voix neurales de haute qualité pour une conversation naturelle

- Modération de contenu : vérifications de sécurité intégrées d'Anthropic

Fonctionnalités clés et le parcours utilisateur

Voici comment ça fonctionne du point de vue de l'utilisateur :

1. Entrer un sujet : simple saisie de texte, rien de compliqué

2. L'IA génère un plan : ça prend environ 1 minute — tu verras la structure proposée et les segments

3. Réviser et façonner ton podcast : c'est là que DIALØGUE brille vraiment ! Tu peux :

- Rediriger le focus ("Rends-le plus accessible aux débutants")

- Ajouter du contexte manquant ("Inclure les développements récents de 2025")

- Supprimer ou modifier des segments ("Saute le jargon technique dans le segment 3")

- Changer complètement de direction si l'IA a mal compris ton intention

4. Générer le podcast complet : une fois que tu approuves le plan, la génération prend environ 6 à 10 minutes

5. Télécharger et profiter : fichier MP3 prêt pour ton trajet

En coulisses, il se passe bien plus de choses :

- Décomposer le sujet en segments

- Attendre ton approbation avant les opérations gourmandes en ressources (pas de crédits gaspillés sur du contenu non désiré !)

- Rechercher chaque segment avec des requêtes spécifiques

- Rédiger un dialogue naturel entre deux hôtes IA

- Gérer les erreurs gracieusement (et rembourser les crédits si ça tourne mal)

- Mises à jour de progression en temps réel pour que tu saches ce qui se passe

Le bon, le difficile et les moments "Oh non"

Le bon

- La fonctionnalité de révision du plan : les utilisateurs adorent pouvoir façonner leur podcast avant que la génération ne commence. C'est comme avoir une conversation avec ton producteur IA !

- Amélioration des performances par 10 en passant aux requêtes Supabase directes (450 ms → 45 ms)

- Inscription instantanée des utilisateurs : correction du bug de délai de 3 minutes avec des Edge Functions atomiques (maintenant < 500 ms)

- Remboursements automatiques de crédits lorsque la génération échoue via des triggers de base de données

- Mises à jour en temps réel qui fonctionnent vraiment (merci, Supabase !)

- Réduction des coûts de 92 % pour la génération audio après la migration GCP

- Architecture clean database-first après suppression du code Lambda legacy

Le difficile (maintenant résolu !)

- L'enfer des layers AWS Lambda : erreurs d'import, limites de taille à 250 Mo (résolu par la migration GCP)

- Migration de sécurité JWT : passage de HS256 à P-256 tout en maintenant la compatibilité ascendante

- Paramètres de température IA : Claude à 0,7 générait du JSON invalide 30 % du temps (corrigé avec temperature 0)

- Memory leaks WebSocket : les composants React perdaient 50 Mo/heure (corrigé avec RealtimeManager)

- Race conditions en base de données : les nouveaux utilisateurs attendaient 3 minutes à cause du lag de réplication (corrigé avec des opérations atomiques)

- Complexité du système de crédits : simplifié d'un double système à un type unique

Les moments "Oh non"

- Cette fois où j'ai accidentellement stocké des données critiques de workflow au mauvais endroit

- Quand j'ai réalisé que des erreurs mystérieuses du navigateur venaient de mon propre code qui épuisait les ressources

- Découvrir des failles de sécurité lors d'un audit de routine (tout est corrigé maintenant !)

Ce que j'ai appris (spoiler : énormément)

Ce projet m'a poussé bien au-delà de ma zone de confort, et j'ai appris des tonnes de choses :

1. Le contrôle utilisateur est crucial : la fonctionnalité de révision du plan n'était pas dans ma conception originale, mais elle est devenue la fonctionnalité la plus importante. Permettre aux utilisateurs de façonner le contenu avant le démarrage de la génération économise du temps, des crédits et de la frustration

2. Commencer simple, migrer quand nécessaire : nous avons commencé avec AWS Lambda mais avons heurté des murs de complexité — la migration vers Cloud Run a tout résolu

3. Les requêtes directes à la base de données peuvent être plus rapides : mon amélioration des performances par 10 est venue en supprimant les couches API inutiles

4. Les coûts IA s'accumulent : faire fonctionner plusieurs services IA pour un seul podcast nécessite une gestion rigoureuse des coûts

5. L'expérience utilisateur compte : l'ajout d'indicateurs de progression et d'estimations de temps a fait une énorme différence

6. La sécurité n'est jamais "terminée" : les audits réguliers ont révélé des problèmes auxquels je n'aurais jamais pensé

7. Infrastructure as Code a ses pièges : les bizarreries de SAM m'ont beaucoup appris (comme SSMParameterReadPolicy qui ajoute des barres obliques supplémentaires !)

8. Les migrations cloud peuvent être étonnamment rapides : avec l'IA en pair programming, nous avons migré d'AWS vers GCP en seulement une journée !

Statut actuel et la suite

DIALØGUE est maintenant en ligne ! Il est en phase alpha avec 2 crédits gratuits pour les nouveaux utilisateurs.

Du côté de la tarification — je dois admettre que j'ai passé beaucoup trop de temps à m'angoisser là-dessus. Chaque podcast me coûte vraiment de l'argent à générer (appels à l'API Claude pour le script, Perplexity pour la recherche, OpenAI pour la synthèse vocale — ça s'accumule vite). J'ai opté pour des packs de crédits qui couvrent à peu près mes coûts avec une petite marge : Starter à 4,99 $ pour 4 podcasts, Pro à 9,99 $ pour 9, et Bulk à 19,99 $ pour 18. Je pourrais les ajuster au fur et à mesure que j'en apprendrai davantage sur les habitudes d'utilisation réelles, mais pour l'instant ils me semblent équitables. Et si une génération échoue pour des raisons techniques, les crédits sont remboursés automatiquement — je ne vais pas te faire payer pour mes bugs :P

Tu veux essayer ?

J'adorerais que tu l'essaies ! Rends-toi sur podcast.chandlernguyen.com et crée ton premier podcast IA. Les 2 premiers sont gratuits, donc tu n'as rien à perdre.

Avertissement juste : c'est encore en alpha, donc les choses peuvent parfois buguer. Mais hey, ça fait partie du fun, non ? Si tu rencontres des problèmes, il y a une fonctionnalité de feedback intégrée directement dans l'appli (uniquement pour les utilisateurs connectés — j'ai dû l'ajouter après quelques problèmes de spam).

Réflexions finales

Construire DIALØGUE a été l'un des projets les plus difficiles et les plus enrichissants que j'aie jamais entrepris. Il a combiné tout ce que j'apprenais — des fonctions AWS Lambda aux composants React en passant par l'ingénierie des prompts IA — et a même mené à un voyage de migration cloud inattendu.

La découverte la plus surprenante ? Cette étape de révision du plan dont je parlais plus tôt. Au départ, je pensais que les utilisateurs voudraient juste saisir un sujet et obtenir un podcast. Mais en testant, j'ai réalisé que donner aux utilisateurs le contrôle de la direction avant le démarrage du processus de génération principal fait toute la différence. Ça transforme l'outil d'une boîte noire en un assistant IA collaboratif. Cette même intuition — direction créative humaine au-dessus de l'exécution IA — est devenue la leçon centrale lorsque j'ai ensuite construit l'appli iOS native de DIALØGUE sans connaître Swift.

Est-ce parfait ? Non. Est-ce utile ? Je le crois ! Au minimum, ça a été un incroyable voyage d'apprentissage, et je suis impatient de voir où ça mène.

Sur quel sujet créerais-tu un podcast ? Je suis vraiment curieux — envoie-moi un message ou essaie par toi-même. Qui sait, avec la capacité de façonner et de guider le contenu, ton podcast généré par IA pourrait être exactement ce que tu cherches. :P

Cordialement,

Chandler

Tu veux le deep-dive technique ? Suis le parcours complet :

Continuer la lecture

Mon parcours
Me suivre
Langue
Preferences