Aller au contenu

Transformer des flux RSS en Podcasts grâce à l'IA

·6 mins
ia rss podcast audio python code
Romain Boulanger
Auteur
Romain Boulanger
Architecte Infra/Cloud avec une touche de DevSecOps
Sommaire

La veille technologique, l’activité indispensable d’un développeur
#

La veille technologique est une activité que je qualifierais d’indispensable dans nos métiers, beaucoup de concepts ou d’outils évoluent régulièrement, et se tenir informé est la clé du succès pour éviter de proposer des composants obsolètes ou pour combler la dernière faille de sécurité à la mode.

Cependant, dédier du temps pour la réaliser n’est pas toujours très simple…

Mon format préféré reste le podcast notamment parce que je retiens beaucoup plus de choses en écoutant des contenus audio qu’en lisant, mais aussi car celui-ci peut me suivre partout : dans les transports, sur la plage, ou bien dans mes séances de sport.

Alors j’ai eu une idée…

Au sien de cet article, j’aimerais vous présenter un petit projet que j’ai voulu créer spécialement pour l’été : Transformer des flux RSS en podcasts en utilisant une IA locale grâce à la puissance des processeurs Apple Silicon.

Vous l’aurez compris, la plateforme de référence est macOS pour la suite de l’article. Des adaptations seront peut-être nécessaires pour exécuter le script sur d’autres systèmes d’exploitation.

Concevoir son propre script : l’IA comme co-pilote
#

Comme vous le savez, je développe plutôt des scripts pour monter des infrastructures plutôt que de coder des applications.

Néanmoins, le Python est un langage qui m’est familier et qui colle assez bien pour cette réalisation.

En complément, je me suis basé sur trois moteurs d’Intelligence Artificielle pour m’assister dans cette création et obtenir 80% du code nécessaire :

  • Claude (Sonnet 4): Très fort dans la génération de code applicatif ;
  • Gemini (2.5 Pro): Permet d’améliorer avec beaucoup de pertinence la génération de code en fonction de besoins très précis ;
  • Perplexity (Pro): Rechercher et trouver les meilleures librairies Python pour réaliser mon besoin.

Évidemment j’aurais pu utiliser d’autres assistants ou un seul des trois, mais cela permet d’itérer et de me proposer quelque chose totalement adapté pour mon besoin.

Mon objectif principal : rester en local et ne pas dépendre de solutions propriétaires. Pour cela, j’ai utilisé Ollama et mlx-audio.

Ollama : Exécuter des LLMs localement de manière privée
#

Ollama est un outil open source qui simplifie considérablement le déploiement et l’utilisation de grands modèles de langage (LLMs) sur une machine personnelle (macOS dans mon cas).

Cet outil dispose d’une API qui sera utilisé dans le script Python, mais peut très bien utiliser une interface graphique comme open-webui ou Ollamac si vous voulez quelque chose de natif.

Pourquoi Ollama ?

  • Confidentialité : Tout est exécuté en local, rien ne quitte votre ordinateur ;
  • Coût : Ollama offre un catalogue très large de modèles dont l’utilisation est gratuite ;
  • Contrôle : : Vous choisissez le modèle qui correspond le mieux à votre besoin ;
  • Accès hors-ligne : Pas besoin de connexion internet pour dialoguer avec le modèle.

Dans le script, le rôle de Ollama est crucial. Un article de blog est écrit pour être lu, pas pour être écouté. La structure, les blocs de code, les listes et le ton ne sont pas toujours adaptés à un format audio.

Un LLM via Ollama sera donc utilisé pour agir comme un “producteur de contenu audio”. Le script enverra le texte brut de l’article au LLM avec un prompt spécifique, défini au sein du code.

De plus, le LLM aura aussi la tâche de traduire les articles vers la langue par défaut définie par l’interpréteur audio, l’anglais dans ce cas précis.

mlx-audio : La synthèse vocale sur Apple Silicon
#

Une fois que le script parlé est généré, une voix est nécessaire. C’est là qu’intervient mlx-audio.

mlx-audio est une bibliothèque Python spécialisée dans le traitement audio, conçue spécifiquement pour tirer parti de l’architecture Apple Silicon (des puces M1 aux M4) via le framework MLX d’Apple.

Pourquoi cette librairie plutôt qu’une autre ?

  • Performance : En utilisant directement le Unified Memory et les accélérateurs matériels des puces Apple, la génération audio est extrêmement rapide ;
  • Efficacité : L’inférence des modèles de synthèse vocale (Text-to-Speech, TTS) est optimisée, ce qui consomme moins de ressources qu’une solution générique ;
  • Confidentialité : Tout comme Ollama, la synthèse se fait entièrement sur la machine.

Le fonctionnement est le suivant : le script Python prend le texte généré par le LLM et le passe à un modèle de TTS chargé via mlx-audio. La bibliothèque se charge alors de convertir ce texte en une onde audio, qui est ensuite sauvegardée sous forme de fichier .wav.

Une grande variété de modèles TTS existe, pour ma part, je suis resté sur ceux proposés par défaut.

En combinant Ollama pour la transformation du contenu et mlx-audio pour la synthèse vocale, cela devient une véritable chaîne de production de podcasts automatisée et locale.

Vous voulez essayer ?
#

Sans plus attendre, voici le dépôt de code pour générer vos propres podcasts :

Petit rappel :

  • Le script fonctionne sur macOS avec un processeur Apple Silicon ;
  • L’installation de Ollama est requise avec le téléchargement du modèle de votre choix ;
  • Il est nécessaire de créer un environnement virtuel Python (version 3.10+) et de télécharger les dépendances requises grâce au fichier requirements.txt.

Une fois les prérequis validés, voici la commande magique :

python rss_to_podcast.py --rss-url https://blog.filador.ch/en/index.xml --site-name "Filador" --max-articles 2

Sans oublier le résultat :

=== Filador Comprehensive Extract Generator with Audio ===

✅ Ollama is accessible
🔍 Fetching the latest 2 articles from RSS feed...
🔍 Fetching RSS feed from https://blog.filador.ch/en/index.xml
✅ Found 17 items in RSS feed
2 articles found

📖 Article 1/2: IaC Security: OpenTofu vs Terraform
🔗 URL: https://blog.filador.ch/en/posts/iac-security-opentofu-vs-terraform/
📅 Published: Tue, 27 May 2025 07:35:56 +0000
✅ Content extracted (7365 characters)
🤖 Generating comprehensive extract...
📋 Comprehensive Extract:
   Welcome to a look at the evolving landscape of Infrastructure as Code, specifically comparing OpenTofu and Terraform. This discussion stems from a recent Silicon Chalet Meetup, where we 
[...]
✅ Audio generated: ./outputs/filador_extracts_2025-06-07.wav
✅ Audio generation completed! (./outputs/filador_extracts_2025-06-07.wav)

📁 Files generated:
   - Text extracts: ./outputs/filador_extracts_2025-06-07.txt
   - Audio: ./outputs/filador_extracts_2025-06-07.wav

🎉 Processing completed!

Quoi de mieux que d’écouter ses propres articles en podcast, n’est-ce pas ? :)

Les arguments --rss-url et --site-name sont les deux paramètres requis, le reste se trouve dans la documentation.

Pour un été rempli de podcasts…
#

Vous avez maintenant ce qu’il faut pour créer vos propres podcasts à travers vos meilleurs flux RSS !

Évidemment, quelques adaptations sont nécessaires en fonction de ce que vous souhaitez réaliser, notamment pour ajouter de nouvelles langues, créer un générique au début, varier les voix en fonction de chaque article, etc. Néanmoins, pour une première version, on a quelque chose de fonctionnel et de prêt à l’emploi.

N’hésitez pas à utiliser le code ou à la forker ! Bonnes vacances ! ☀️

Articles connexes

La sécurité dans l'IaC : OpenTofu vs Terraform
·8 mins
iac opentofu terraform cloud sécurité chiffrement infrastructure code
Retour sur la KubeCon 2025 à Londres
·15 mins
conférence kubernetes 2025 londres kubecon cloudnative cloudnativecon cncf sécurité plateformengineering ia finops
Protégez vos services avec Cloudflare et déployez vos configurations avec OpenTofu
·18 mins
iac opentofu code cloudflare terraform sécurité dns waf mtls