Podgenai é um aplicativo Python 3.12 para gerar um arquivo MP3 informativo de audiolivro/podcast de alto-falante único em um determinado tópico usando o GPT-4 LLM. A duração direcionada do arquivo gerado é de uma hora, embora a duração gerada varie. É necessária uma chave de API do OpenAI financiada.
| Rubrica | Link |
|---|---|
| Repo | https://github.com/impredicative/podgenai |
| Changelog | https://github.com/impredicative/podgenai/releases |
| Pacote | https://pypi.org/project/podgenai |
| Podcast | https://podcasters.spotify.com/pod/podgenai |
| Podcast RSS | https://anchor.fm/s/f4868644/podcast/rss |
Os modelos gpt-4o e tts-1 são usados. Para um determinado tópico, a abordagem de referência de alto nível é:
ffmpeg .Embora às vezes possa existir alguma repetição semântica de conteúdo entre os subtópicos, isso não foi intencionalmente "otimizado" porque essa repetição de pontos importantes pode ajudar no aprendizado e memorização. Para se aprofundar em um subtópico específico, pode -se tentar criar um novo arquivo apenas para ele.
Esses arquivos MP3 gerados estão disponíveis para download. Com efeito, eles também constituem um conjunto mínimo de teste manual, com o objetivo único de cada amostra observada. Como lembrete, a voz é selecionada pelo LLM.
Há também um podcast relacionado (RSS) para quais episódios em tópicos adicionais podem ser publicados manualmente ao longo do tempo.
Uma velocidade de reprodução de 1,05x é recomendada para tópicos não técnicos, 1,0x para tópicos técnicos e 0,95x para tópicos de idioma estrangeiro.
| Voz | Nome | Propósito |
|---|---|---|
| Padrão | Pytorch | Geração de conteúdo técnico |
| Padrão | Pytorch avançado | Geração avançada de conteúdo técnico |
| Padrão | Dicas de entrevistas de emprego de engenheiro de software | Seleção de voz padrão |
| Emotivo | Cidade de Nova York: presente e futuro | Geração de conteúdo não técnica |
| Emotivo | Vivendo uma boa vida | Seleção de voz emotiva |
| Padrão | Inteligência Geral Artificial (AGI): abordagens e algoritmos | Aplicação subtópica de nível único não hierárquico achatado |
| Fêmea | Sistema Circulatório Humano (Unabridged) | Suporte de tópico implícito para sufixo não absorvido |
| Fêmea | Buffy, a Caçadora de Vampiros | Seleção de voz feminina |
| Macho | Bitcoin para nerds | Seleção de voz masculina |
.env , com a variável de ambiente pretendida OPENAI_API_KEY=<your OpenAI API key> ou defina de uma maneira diferente.PODGENAI_OPENAI_MAX_WORKERS=32 para geração mais rápida, com seu valor padrão sendo 16.ffmpeg está disponível. Isso é automático se estiver usando a definição de devContainer incluída.rye está instalado e disponível.rye sync --no-lock .pip install -U podgenai . O uso pode ser como um aplicativo de linha de comando ou como uma biblioteca Python. Por padrão, o arquivo MP3 gerado será gravado no diretório de trabalho atual. Em 2024, o custo típico por geração é de 1 a 2 USD, mais especificamente abaixo de 0,10 USD por subtópico. O tempo gasto é inferior a três minutos.
./work/<topic>/1.*.mp3 e regenere a saída.--no-markers .A ajuda de uso é copiada abaixo:
$ python -m podgenai -h
Usage: python -m podgenai [OPTIONS]
Generate and write an audiobook podcast mp3 file for the given topic to the given output file path.
Options:
-t, --topic TEXT Topic. If not given, the user is prompted for it.
-p, --path PATH Output file or directory path. If an intended file path, it must have an ".mp3"
suffix. If a directory, it must exist, and the file name is auto-determined. If not
given, the output file is written to the current working directory with an auto-
determined file name.
-s, --max-sections INTEGER RANGE
Maximum number of sections, between 3 and 100. If not given, it is unrestricted.
[3<=x<=100]
-m, --markers / -nm, --no-markers
Include markers at the start or end of sections in the generated audio. If
`--markers`, markers are included, and this is the default. If `--no-markers`,
markers are excluded, as can be appropriate for foreign-language generation.
-c, --confirm / -nc, --no-confirm
Confirm before full-text and speech generation. If `--confirm`, a confirmation is
interactively sought as each step of the workflow progresses, and this is the
default. If `--no-confirm`, the full-text and speech are generated without
confirmations.
-h, --help Show this message and exit.
Exemplos de uso:
$ python -m podgenai -t "My favorite topic"
$ python -m podgenai -t "My favorite topic" -p ~/Downloads/
$ python -m podgenai -t "My favorite topic" -p ~/Downloads/topic.mp3 -nc
$ python -m podgenai -t "L'histoire de Napoléon Bonaparte (français)" -nm
>> > from podgenai import generate_media
>> > import inspect
>> > print ( inspect . signature ( generate_media ))
( topic : str , * , output_path : Optional [ pathlib . Path ] = None , max_sections : Optional [ int ] = None , markers : bool = True , confirm : bool = False ) - > pathlib . Path
>> > print ( inspect . getdoc ( generate_media )) Return the output path after generating and writing an audiobook podcast to file for the given topic.
Params:
* `topic`: Topic.
* `path`: Output file or directory path.
If an intended file path, it must have an ".mp3" suffix. If a directory, it must exist, and the file name is auto-determined.
If not given, the output file is written to the repo directory with an auto-determined file name.
* `max_sections`: Maximum number of sections to generate. It is between 3 and 100. It is unrestricted if not given.
* `markers`: Include markers at the start or end of sections in the generated audio.
If true, markers are included. If false, markers are excluded, as can be appropriate for foreign-language generation. Its default is true.
* `confirm`: Confirm before full-text and speech generation.
If true, a confirmation is interactively sought after generating and printing the list of subtopics, before generating the full-text, and also before generating the speech. Its default is false.
If failed, a subclass of the `podgenai.exceptions.Error` exception is raised.
Os segmentos de texto e fala são armazenados em cache localmente no disco no diretório ./work/<topic> . Eles podem ser excluídos manualmente. Atualmente, esta exclusão não é automática. Além disso, atualmente pode ser necessário excluir um ou mais arquivos em cache aplicáveis se o cache for ignorado.
Este software é fornecido "como está", sem garantia de qualquer tipo, expresso ou implícito, incluindo, entre outros, as garantias de comercialização, aptidão para uma finalidade específica e não comprometimento. Em nenhum caso os autores ou detentores de direitos autorais serão responsáveis por qualquer reclamação, danos ou outro passivo, seja em uma ação de contrato, delito ou de outra forma, decorrente de, de ou em conexão com o software ou o uso ou outras negociações no software.
Os usuários devem estar cientes de que o texto e o áudio dos arquivos gerados são produzidos pela Intelligence Artificial (AI) com base nas entradas fornecidas e nos dados disponíveis para o modelo de IA no momento da geração. Assim, imprecisões, erros ou conteúdo não intencional podem ocorrer. Os usuários são aconselhados a exercer cautela e verificar a precisão e a adequação do conteúdo gerado antes de qualquer uso ou confiança.
Você é responsável pelos custos associados ao uso da API do OpenAI, conforme exigido pelo software, e deve cumprir os Termos de Serviço da API OpenAI. A funcionalidade do software depende da disponibilidade e funcionalidade de serviços e software externos, incluindo, entre outros, a API e o FFMPEG do OpenAI, sobre os quais os autores não têm controle.
O uso da chave da API do OpenAI e qualquer conteúdo gerado deve cumprir todas as leis e regulamentos aplicáveis, incluindo leis de direitos autorais e os termos de serviço da plataforma OpenAI. Você é o único responsável por garantir que seu uso do software e qualquer conteúdo gerado esteja em conformidade com os Termos de Serviço do OpenAI e quaisquer outras leis e regulamentos aplicáveis.
Este software é licenciado sob a LicPL (LicPPL) (LGPL), que permite uso, modificação e distribuição privados e comerciais, sujeitos aos termos e condições estabelecidos na LGPL. Você deveria ter recebido uma cópia da licença pública geral da GNU, juntamente com este programa. Caso contrário, consulte http://www.gnu.org/license/.
Os autores não reivindicam a propriedade de nenhum conteúdo gerado usando este software. A responsabilidade pelo uso de todo e qualquer conteúdo gerado repousa com o usuário. Os usuários devem ter cautela e due diligence para garantir que o conteúdo gerado não infrinja os direitos dos terceiros.
Este aviso está sujeito a alterações sem aviso prévio. É sua responsabilidade revisá -lo periodicamente para atualizações.