À propos du projet

# podgenai podgenai est une application Python qui génère des fichiers MP3 informatifs de type livre audio/podcast à un ou deux intervenants sur un sujet donné, en utilisant un LLM d'OpenAI. Le contenu provient des connaissances internes du modèle ou d'un document source markdown fourni ; la recherche web n'est pas utilisée. ## Fonctionnement Pour un sujet donné, l'outil : 1. Liste les sous-sujets applicables à l'aide d'un LLM (abandonne si le sujet est inconnu ou non pris en charge) 2. Sélectionne les voix (une seule voix pour le monologue ; voix masculine et féminine pour le dialogue) via le LLM 3. Génère le texte du monologue en parallèle pour chaque sous-sujet 4. Déduplique le texte entre les sous-sujets adjacents à l'aide d'une approche rouge-noir paire-impaire, réduisant la longueur totale de 6 à 40 % 5. Pour les dialogues, génère le texte du dialogue et les instructions de ton 6. Convertit le texte en parole à l'aide des modèles TTS d'OpenAI en parallèle 7. Concatène les segments audio avec `ffmpeg`, en ajoutant des pauses entre les parties et les sous-sujets ## Modèles utilisés - **Modèle de connaissances** (`gpt-6-sol`) : liste des sous-sujets, sélection des voix, génération du texte du monologue (à partir des connaissances internes), génération du texte du dialogue - **Modèle de texte** (`gpt-6-sol`) : génération du texte du monologue à partir des documents sources, déduplication - **Modèle TTS** (`gpt-4o-mini-tts-2025-12-15`) : génération de la parole ## Utilisation - Nécessite une [clé API OpenAI](https://platform.openai.com/api-keys) - La durée de sortie par défaut vise environ 1 heure ; une couverture complète produit souvent des fichiers de plusieurs heures - Peut limiter les sections avec `--max-sections` (minimum 3) pour contrôler la durée - Prend en charge les modes à un intervenant (`--speakers 1`) et à deux intervenants - Accepte les documents sources markdown via `--document` - La sortie peut inclure des marqueurs audio aux limites des sections - Mise en cache locale dans le répertoire `./work/<topic>` ## Configuration - Définissez `OPENAI_API_KEY` dans le fichier `.env` ou dans l'environnement - Définissez éventuellement `PODGENAI_OPENAI_MAX_WORKERS` (par défaut : 16, maximum : 32) - Nécessite `ffmpeg` et `ffprobe` pour la concaténation audio ## Estimation des coûts Le coût approximatif est de 10 USD pour un podcast de 10 heures, la plupart des coûts provenant de la génération TTS. Les durées plus courtes coûtent proportionnellement moins. ## Formats de sortie - Fichiers MP3 générés pour la consommation de livres audio/podcasts - Vitesses de lecture recommandées : 1,05x pour les sujets non techniques, 1,0x pour les sujets techniques, 0,95x pour le contenu en langue étrangère ## Installation Disponible via PyPI : `pip install podgenai` ou `uv add podgenai` Peut également être utilisé comme bibliothèque Python avec la fonction `generate_media()`. ## Licence GNU Lesser General Public License (LGPL)