Об этом проекте

# podgenai podgenai — это приложение на Python, которое генерирует информационные аудиокниги/подкасты в формате MP3 с одним или двумя дикторами по заданной теме с использованием LLM OpenAI. Содержимое берётся из внутренних знаний модели или из предоставленного исходного markdown-документа; веб-поиск не используется. ## Как это работает Для заданной темы инструмент: 1. Составляет список применимых подтем с помощью LLM (прерывает работу, если тема неизвестна или не поддерживается) 2. Выбирает голоса (один голос для монолога; мужской и женский для диалога) через LLM 3. Одновременно генерирует текст монолога для каждой подтемы 4. Удаляет дубликаты текста между соседними подтемами с использованием красно-чёрного чётно-нечётного подхода, сокращая общую длину на 6–40% 5. Для диалогов генерирует текст диалога и инструкции по тону 6. Одновременно преобразует текст в речь с использованием моделей OpenAI TTS 7. Объединяет аудиосегменты с помощью `ffmpeg`, добавляя паузы между частями и подтемами ## Используемые модели - **Модель знаний** (`gpt-6-sol`): составление списка подтем, выбор голосов, генерация текста монолога (из внутренних знаний), генерация текста диалога - **Текстовая модель** (`gpt-6-sol`): генерация текста монолога из исходных документов, удаление дубликатов - **Модель TTS** (`gpt-4o-mini-tts-2025-12-15`): генерация речи ## Использование - Требуется [ключ OpenAI API](https://platform.openai.com/api-keys) - Целевая длительность вывода по умолчанию — около 1 часа; всестороннее освещение часто приводит к файлам длительностью несколько часов - Можно ограничить количество разделов с помощью `--max-sections` (минимум 3) для контроля длительности - Поддерживает режимы с одним диктором (`--speakers 1`) и с двумя дикторами - Принимает исходные markdown-документы через `--document` - Вывод может включать аудиометки на границах разделов - Кэшируется локально в каталоге `./work/<topic>` ## Конфигурация - Задайте `OPENAI_API_KEY` в файле `.env` или в переменных окружения - Опционально задайте `PODGENAI_OPENAI_MAX_WORKERS` (по умолчанию: 16, максимум: 32) - Требуются `ffmpeg` и `ffprobe` для объединения аудио ## Оценка стоимости Примерная стоимость — 10 долларов США за 10-часовой подкаст, причём большая часть затрат приходится на генерацию TTS. Меньшая длительность стоит пропорционально меньше. ## Форматы вывода - Сгенерированные MP3-файлы для прослушивания в качестве аудиокниги/подкаста - Рекомендуемые скорости воспроизведения: 1,05x для нетехнических тем, 1,0x для технических тем, 0,95x для контента на иностранном языке ## Установка Доступно через PyPI: `pip install podgenai` или `uv add podgenai` Также можно использовать как библиотеку Python с функцией `generate_media()`. ## Лицензия GNU Lesser General Public License (LGPL)