Sobre o projeto

# podgenai O podgenai é uma aplicação Python que gera arquivos MP3 informativos de audiolivro/podcast com um ou dois locutores sobre um determinado tópico usando um LLM da OpenAI. O conteúdo vem do conhecimento interno do modelo ou de um documento markdown fornecido; não é usada pesquisa na web. ## Como Funciona Para um determinado tópico, a ferramenta: 1. Lista os subtópicos aplicáveis usando um LLM (aborta se o tópico for desconhecido ou não suportado) 2. Seleciona as vozes (voz única para monólogo; masculina e feminina para diálogo) via LLM 3. Gera texto de monólogo simultaneamente para cada subtópico 4. Desduplica o texto entre subtópicos adjacentes usando uma abordagem rubro-negra ímpar-par, reduzindo o comprimento total em 6-40% 5. Para diálogos, gera texto de diálogo e instruções de tom 6. Converte texto em fala usando modelos TTS da OpenAI simultaneamente 7. Concatena os segmentos de áudio com `ffmpeg`, adicionando pausas entre partes e subtópicos ## Modelos Utilizados - **Modelo de conhecimento** (`gpt-6-sol`): listagem de subtópicos, seleção de vozes, geração de texto de monólogo (a partir de conhecimento interno), geração de texto de diálogo - **Modelo de texto** (`gpt-6-sol`): geração de texto de monólogo a partir de documentos de origem, desduplicação - **Modelo TTS** (`gpt-4o-mini-tts-2025-12-15`): geração de fala ## Uso - Requer uma [chave de API da OpenAI](https://platform.openai.com/api-keys) - A duração de saída padrão tem como alvo ~1 hora; uma cobertura abrangente frequentemente produz arquivos de várias horas - Pode limitar as seções com `--max-sections` (mínimo 3) para controlar a duração - Suporta modos de um locutor (`--speakers 1`) e dois locutores - Aceita documentos de origem markdown via `--document` - A saída pode incluir marcadores de áudio nos limites das seções - Armazenado em cache localmente no diretório `./work/<topic>` ## Configuração - Defina `OPENAI_API_KEY` no arquivo `.env` ou no ambiente - Opcionalmente defina `PODGENAI_OPENAI_MAX_WORKERS` (padrão: 16, máximo: 32) - Requer `ffmpeg` e `ffprobe` para concatenação de áudio ## Estimativa de Custo O custo aproximado é de $10 USD para um podcast de 10 horas, com a maior parte dos custos proveniente da geração TTS. Durações mais curtas custam proporcionalmente menos. ## Formatos de Saída - Arquivos MP3 gerados para consumo como audiolivro/podcast - Velocidades de reprodução recomendadas: 1,05x para tópicos não técnicos, 1,0x para tópicos técnicos, 0,95x para conteúdo em língua estrangeira ## Instalação Disponível via PyPI: `pip install podgenai` ou `uv add podgenai` Também pode ser usado como biblioteca Python com a função `generate_media()`. ## Licença GNU Lesser General Public License (LGPL)