Об этом проекте
# 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)
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.