Transcrições
1. Boas-vindas: Olá e bem-vindo a este curso em
vídeo sobre como criar um podcast gerado por IA a partir de manchetes de
notícias usando Python, a API GPT de bate-papo e a API 11 labs,
que são os três. Meu nome é Daniel e tenho mais de 20 anos de experiência em
programação e
desenvolvimento web. Ao final deste
curso, você
poderá gerar
automaticamente
um arquivo de áudio MP3 a partir de um feed RSS de notícias, que poderá usar para
criar seu próprio podcast. Você também
aprenderá a integrar inteligência artificial e um
serviço de conversão de texto em voz em seu código. Algumas dessas
habilidades específicas que você aprenderá incluem o uso de Python para obter
conteúdo de um feed RSS, gerando textos semelhantes aos humanos
usando a API GBT de bate-papo. Convertendo texto em fala
usando a API 11 labs. Criação de um arquivo
de áudio MP3 da saída de texto para voz. O curso foi desenvolvido
para ser de nível iniciante ou intermediário e não é necessária
experiência em Python ou IA. Examinaremos cada etapa com explicações
claras para que você possa entender como
personalizar o código, se desejar. Ao final do curso,
você terá trabalhado em um projeto do mundo real
que poderá mostrar a potenciais empregadores ou usar
a base para um podcast. Ou você
entenderá como
incorporar a IA em
outros projetos seus. O aluno ideal
para este curso é alguém interessado
em aprender sobre Python,
sobre IA e outras APIs
de terceiros. E quem quer
saber como automatizar a criação de
conteúdo, como
com um podcast. É para você. Se você é blogueiro,
jornalista, criador de conteúdo ou amador
que só quer brincar com
as tecnologias mais recentes. Então, obrigado por
considerar este curso. Espero ver você lá dentro.
2. Montagem: Ok, vamos falar sobre isso. Mas antes de realmente
começarmos a programar, há três coisas que
precisamos configurar. Python e os vários
pacotes de que precisamos. E uma conta OpenAI e chave de
API e uma
conta de 11 laboratórios e uma chave de API. Então, primeiro, o Python, espero que você já o
tenha instalado e verifique se pode digitar Python no terminal. E deve mostrar
o que você instalou. Aqui. Está dizendo que eu
tenho o 0.7 instalado. E, na verdade,
queremos o Python três. Estou em um Mac e,
na verdade, ele tem duas versões
do Python instaladas. Então, para especificar o Python três, preciso digitar Python três. Acho que para Windows, apenas Python. Ficaremos bem se você tiver o
Python 3 instalado. De qualquer forma, vamos sair
do prompt do Python e tentar novamente com o
Python três, ok? E diz que eu tenho o Python 3.10
instalado, o que é bom. Então, qualquer uma
dessas opções que funcione para você, Python ou Python 3, use isso como comando para
o resto do curso. Estou saindo do prompt do
Python novamente. E agora precisamos ter
certeza de que temos os vários módulos e
pacotes de que precisamos. Eu tentei facilitar isso
criando um arquivo
requirements.txt, e ele deve estar nos
recursos deste curso. Então, coloque-o
no diretório em que
você está trabalhando atualmente. Agora eu criei uma pasta de projeto
chamada AI podcast creator. Vamos dar uma olhada no
que está dentro disso. Lá vamos nós. Apenas requirements.txt. Isso é tudo o que está
lá no momento. Então, tudo bem. Vamos
usar isso com o pip, que é um instalador do Python, para
pegar automaticamente esses pacotes. A maneira como fazemos isso é
com o comando pip. Se você precisar digitar
Python 3 em seu sistema, então aqui você deve
digitar pip3, instalar o hífen r e o nome
do arquivo de requisitos. Portanto, os requisitos
não são apresentadores de TXT. E ele lerá esse arquivo
requirements.txt e baixará
e instalará automaticamente esses pacotes. Eu já os tenho
instalados para você. Pode levar alguns
segundos para baixá-los e instalá-los, se
faltar algum, mas você deve
estar pronto para começar. Portanto, a próxima etapa é
o OpenAI e 11 laboratórios, contas e chaves de API. E para isso, precisamos passar
para o navegador. Ok, aqui no navegador, se você pesquisar pela API OpenAI, poderá obter vários guias
, explicações e outras coisas, mas o que precisamos é da
própria plataforma. Então platform.openai.com. Se você ainda não tem
uma conta, crie uma e
o plano gratuito é bom. Se você tiver uma
conta, é
aqui que você precisa fazer login. Depois de fazer login, você
recebe vários tokens, muitos créditos para usar, e isso será suficiente
para nosso programa aqui. Não precisamos nos
preocupar em pagar nada, mas precisamos
pegar a chave da API. Então, vá até o menu da
conta e procure o item Exibir chaves da API. Eu já criei uma, a
sua pode estar vazia aqui Nesse caso, clique no botão
Criar nova chave secreta. E isso mostrará sua chave de API. Só uma vez, essa é a única vez que
vai aparecer na tela. Então você precisa fazer uma cópia agora, caso contrário, você a perderá. Mas se você perdê-lo, você
também pode regenerar outro. Então, não é realmente
um grande problema, de qualquer maneira. Queremos copiar isso. E vamos colocar isso em um arquivo de variáveis de ambiente. Então, precisamos voltar para
o terminal para criar isso. De volta ao terminal,
temos a chave da API OpenAI
em nossa área de transferência, mas precisamos criar
um arquivo para armazená-lo. E vamos
criar um arquivo especial
chamado arquivo de
variáveis de ambiente, também
conhecido
como ponto ou ponto ENV. Queremos criar
esse arquivo de texto básico. Vou usar o editor de texto
Nano aqui, mas você pode usar qualquer editor de
texto que quiser, nano, e é ponto d e v.
Por favor, use esse nome. Pressione Enter. E criou
esse arquivo vazio. E aqui eu vou colocar um nome de variável e
depois colar a chave da API. Portanto, o nome da variável, vou usar chave da API
Open AI, então
é igual sem espaço. E então aqui vou colar
a chave da API do OpenAI. Bom. Vou deixar isso aberto porque
voltaremos a isso em um minuto depois de obtermos a chave
da API 11 labs, que está novamente de volta
no navegador. Semelhante ao anterior. No beta dot 11 labs dot io. Por favor, crie uma conta. Se
você ainda não tiver um. Se você tiver uma conta,
faça login aqui. Depois de fazer
login, precisamos ir
até o menu da conta
e, desta vez, clicamos no
perfil. Agora não podemos ver
a chave da API aqui, então precisamos clicar no botão I e isso a torna visível. Podemos ver isso sempre
que você pode regenerar um novo, a qualquer momento, como antes. Vamos copiar e colar isso e voltar
para o terminal. Esse arquivo DOT ENV ainda está
aberto, o que é bom. Então, precisamos criar uma nova linha. E desta vez vamos
usar o mesmo formato, mas vamos chamá-lo de 11 laboratórios. A chave Api é igual a nenhum espaço. E, novamente, colamos
a chave da API lá. É tudo o que precisamos
para esse arquivo. Assim, podemos salvar e
sair desse arquivo. Se você estiver usando o Nano aqui, então você faz o Control X. E isso solicitará que
você o salve. Sim. E fechamos o arquivo e
voltamos ao terminal. Portanto, temos nossas chaves de API prontas e armazenadas
em um arquivo ENV de pontos. Vamos acessar
isso com Python. Temos todos os
módulos do Python instalados. Estamos prontos para
começar a programar.
3. Variáveis do ambiente: Agora, para a diversão,
a programação, e eu tenho um arquivo
Python vazio aqui, que chamei de criar
podcasts dot p-y. Eu me certifiquei de que está
na mesma pasta do arquivo dot ENV no qual
salvamos as chaves da API anteriormente. Então, eles estão na mesma
pasta dentro deste programa. Vou
dividi-lo em pedaços. E esse primeiro trecho será um pequeno código que pegará
essas chaves de API e as imprimirá na tela
para garantir que funcionou. E então vamos
usá-los nas outras seções. Então, vamos nos
concentrar nisso primeiro. Para fazer isso, precisamos primeiro
importar alguns módulos. E precisamos de três
para esta seção. Portanto, o primeiro é
um módulo feito
especificamente para lidar com
as variáveis de ambiente, as chaves de API do ponto n, que é o nome do módulo. E vamos importar
apenas uma parte dela, que é chamada de carga. E vamos
usar esse método. A próxima coisa que precisamos importar
é o módulo de sistema operacional embutido. E, finalmente, tudo já deve estar instalado para você. É chamado de Open
AI, módulo OpenAI. Depois de importar esses
módulos, a primeira coisa que
faremos é executar a função
de carregamento e isso meio que a preparará para pegar as chaves da API. Isso é super fácil. É só um monte de colchetes. Em seguida, precisamos nos preparar
para armazenar temporariamente
a chave da API
dentro do programa. E o módulo OpenAI tem uma propriedade
específica para isso. Então, ele usará
isso com o Open AI. E, em seguida, a propriedade da chave da API. E atribuímos
isso à chave da API em nosso arquivo de variáveis. E aqui é onde podemos usar o módulo do sistema operacional para pegar esse sistema operacional. E tente lembrar o nome
da variável que
usamos anteriormente. E tenho certeza de que
era uma chave de API de IA aberta. Ok, agora podemos fazer a
mesma coisa em 11 laboratórios. Desta vez, não temos
um módulo de 11 laboratórios, então criaremos
nossa própria variável, chamando-a de chave de API de 11 laboratórios. E, novamente, isso é igual a OS dot get the
environment variable. E é chamada de chave de API ao vivo
e de laboratório. Isso deve ser tudo o que precisamos
apenas para pegar as chaves da API. A razão pela qual estamos
fazendo isso, em
vez de codificá-los
no programa,
é que, se compartilharmos esse programa, esse código no GitHub ou em qualquer outro lugar, as pessoas poderão ver as pessoas poderão ver
como as chaves de API estão aqui. E não queremos que eles
devam ser privados, isso deveria ser secreto. Nós os armazenamos em um arquivo de variável de
ambiente local, que permanecerá em nossa máquina. Mas então podemos compartilhar
esse código livremente e
as chaves da API permanecerão secretas. Vamos garantir que
isso funcione imprimindo as chaves de API
nos terminais. Portanto, imprima a chave
da API ai dot aberta e a chave da API
sublinhada dos laboratórios de impressão. Uma pequena diferença entre
os dois, certo? Vou salvar isso e
vamos até o
terminal e executá-lo. Aqui no terminal,
vamos executar o programa digitando Python. Python pode ser suficiente para você. No meu caso, preciso
digitar Python three e depois o
nome do arquivo. Então, é criar podcasts
dot p-y, pressione Enter. E isso funciona. Ele imprime as chaves de API que
armazenamos
no arquivo de variáveis de ambiente. Perfeito, isso significa que estamos prontos para passar
para a próxima parte, que é, na verdade,
pegar conteúdo e fazer com que
a IA brinque com ele.
4. Agarrar conteúdo RSS: Vamos desenvolver nosso programa um pouco mais do que isso, mas antes de tudo, quero remover essas linhas
que imprimem as chaves da API. Não precisamos deles. Então, vamos nos livrar disso. O que eu preciso, porém,
é de um feed RSS, porque vou pegar as manchetes de um feed
RSS e usá-las como entrada para
o bate-papo GBT até
o navegador. E eu já tenho um
feed RSS preparado. Eu moro no Japão, então
estou usando um dos tempos
do Japão,
as manchetes de notícias. E eu só quero
ressaltar que o feed RSS
consiste em vários itens e cada
um tem o título, tem uma descrição, também tem vários outros
elementos, mas vou
ficar com o título e a descrição e
combiná-los como resumo da
notícia para o chat GPT. Então, eu só preciso do
URL desse feed e praticamente qualquer feed
RSS deve servir. E vou
voltar ao nosso programa. E vamos fazer com que uma
nova variável para esse feed de notícias seja igual a esse URL. Gosto de manter essas
variáveis no topo
do programa para que qualquer pessoa possa entrar
e alterar o RS. Feed Rss facilmente mais tarde sem precisar
percorrer todo o código. Em seguida, quero trabalhar para
realmente capturar o conteúdo. E antes de fazer isso, vou imprimir algo no
terminal aqui que
diz que agora estamos
processando o feed RSS. Em seguida, imprimirei
os estágios
das diferentes partes à medida que escrevemos
o programa, para das diferentes partes à medida que escrevemos que, quando
executarmos o programa, saibamos em qual parte está sendo
trabalhada a qualquer momento. Também podemos ver quando ele falha, quando há erros, podemos ver em qual bit esses erros. Então, vamos, para nosso
próprio bem, imprimir. Estou avaliando o feed RSS, certo? E para fazer isso, precisamos de um
módulo muito bom chamado analisador de feeds, o que tornará
tudo muito fácil para nós. Então, nós o importamos
como fizemos antes. Importar um par de alimentação. Bom. E isso significa que, em apenas
algumas linhas, podemos pegar esse
conteúdo do feed RSS. Agora, vamos
atribuir a saída do processamento
do analisador de feed a
uma nova variável chamada feed. Por isso, usamos o analisador de feeds aqui. Parser, e usamos um de
seus métodos chamado pass. E o argumento para isso é
o URL dos feeds RSS. Então, isso é apenas um feed de notícias
que preparamos anteriormente. Quando pegamos o feed, não
podemos fornecer várias informações facilmente para conversar com o DBT, o que realmente queremos é
um pouco de conteúdo. Então, eu vou ter
uma variável vazia. Vou fazer
um por minuto. E então com cada notícia, vou acrescentar
o novo resumo a ela. Então, no final, teremos
uma variável que contém todos os resumos de notícias
unidos. São histórias novas. Então, vou chamar
uma história variável e isso é apenas uma
vontade vazia para começar. O feed RSS que eles usam, acho que tem cerca de 30 itens
e não quero muitos. Eu quero que os podcasts
sejam bem curtos. Então, vou limitá-lo a dez e criarei outra
variável para usar mais tarde. Então, histórias, vamos chamá-las de limite de
histórias igual a dez. Ok, agora estamos prontos para
percorrer o objeto de feed, que deve conter
todos os dados do
feed RSS . Para dar uma olhada. Vamos
criar um loop for. E vamos chamar cada item
no item do feed RSS
porque
é para isso que serve o item no objeto do feed. E há uma propriedade
chamada entradas. Agora isso por si só é suficiente
para pegar todos os itens. Mas, como mencionei, quero
limitá-lo aos dez primeiros. Portanto, podemos usar uma
abreviatura inteligente de Python
aqui e usar os
colchetes. E então usaremos
esse limite de armazenamento aqui depois de dois pontos. Então, códon e depois dez
ou limite de armazenamento, e depois dois pontos no final
porque é um for-loop. E isso
truncará automaticamente todos os itens
até os dez primeiros. Dentro de cada iteração
do loop. Vamos fazer com que a loja
vazia seja variável. Então, histórias são iguais a histórias mais, porque estamos anexando
dados a elas todas as vezes. E como estamos anexando todas essas novas histórias
em uma sequência, quero deixar
absolutamente claro que devemos conversar com o GBT quando uma nova história começar. Então, vamos ter uma nova história, o começo de cada uma. E então os itens
no feed RSS têm um elemento de título e um elemento de
descrição. Então, vamos pegá-los
fazendo o título do ponto do item. Coloque um ponto final depois disso. E então pegaremos
a descrição do item. E isso deve ser o suficiente para
a passagem do feed RSS. Quero ter certeza de que funciona. Então, vou
imprimir a variável histórias. Depois que tudo for
adicionado, vamos garantir que
funcione indo até
o terminal e
executando o programa. Então, estou salvando esse
arquivo no terminal. E como antes, Python
ou Python três. E o nome do apresentador
do arquivo. Cruze seus dedos. Isso foi rápido. Lá vamos nós. Ele pegou o feed RSS e combinou
tudo
em uma longa sequência. Isso é perfeito como entrada para
o GPT,
o que faremos a seguir.
5. Usando o ChatGPT: Certo, estamos indo bem. Temos o conteúdo
dos feeds RSS, então vamos começar a conversar com o GPT. Vou deletar
essa linha de impressão lá. Não precisamos mais imprimir
a variável stories, mas vou adicionar
uma linha que imprime a próxima etapa do processamento. Então, vamos dizer
processamento de bate-papo, GPT. Com este,
vamos usar o módulo OpenAI que já
importamos. Portanto, não há novos
módulos para importar. Para usar isso, precisamos atribuir o resultado ou a saída do
bate-papo GPT em uma variável. Então, vamos chamar isso de bate-papo. Vou dizer que isso será
do módulo Open AI. E há um serviço
chamado conclusão de bate-papo. Eles têm outros serviços, como geração de imagens,
coisas assim. Mas estamos usando um bate-papo por
texto aqui. E dentro disso
existe um método de criação. O método create usa
vários argumentos, mas precisa de pelo menos dois, e eles são modais. E espera pelas mensagens de
vírgula. E as mensagens são
, na verdade, uma matriz. Em primeiro lugar, com o modelo, isso pode especificar o
modelo de IA que queremos usar. Provavelmente haverá muitas coisas para escolher no futuro. Mas, no momento,
você praticamente tem o GPT 3.5 atualmente. Então, o hífen GPT 3.5 e
existe um chamado turbo. E esse é o modelo de IA mais avançado disponível
ao público. No futuro, isso
provavelmente mudará. Portanto, fique de olho na
documentação da API para descobrir quais são as melhores e
mais recentes. Então, por enquanto, o modelo
é o GPT 3.5 Turbo. E as mensagens são uma
matriz de objetos. Cada objeto tem uma
função e um conteúdo. E vamos usar apenas
um objeto para mantê-lo simples. Então, queremos uma função
porque é um objeto aqui, eu vou usar uma
função e um conteúdo. O papel pode ser uma
das três coisas. Um usuário, que é a
função que realmente envia o comando ou as solicitações
para o sistema TBT de bate-papo, que está meio que informando
ao chat GPT o que ele é. Então, por exemplo, você é um assistente prestativo e
educado,
algo assim. E então o assistente
é o terceiro jogador. E isso pode ser algum tipo de informação básica, por exemplo, se você
estiver enviando um monte de dados, você poderia dizer que esses
dados foram coletados e março de 2023, algo parecido. Não precisamos desse
tipo de coisa. Vamos
continuar com a única função do comando básico. E isso significa que a
função será de usuário. O conteúdo é a solicitação
real que enviemos um bate-papo GBT. Eu fiz várias
tentativas e erros aqui, e criei um comando
bem longo, então vou colá-lo
para economizar tempo. E aí está. Reescreva as
seguintes manchetes
e resumos de notícias em
uma forma de discussão , como se alguém estivesse falando
sobre eles em um podcast. Como você pode ver,
adicionei vários tipos de detalhes extras aqui porque tive que
continuar ajustando-os para conseguir
o que eu realmente queria. E, obviamente, você
também
pode ajustar isso ouvindo a saída. Então esse é o pedido. Mas, obviamente, precisamos
incluir as
manchetes das notícias em si. Então, no final dessa solicitação, vou apenas
acrescentar a
variável stories que obterá a saída
do chat TBT. Mas também nos dará algumas outras coisas. E nós só queremos o
conteúdo principal, a resposta central. Então, vamos extrair isso criando uma nova
variável, o conteúdo do bate-papo. E vamos pegá-lo
da saída de bate-papo que
acabamos de criar. E dentro disso,
haverá uma matriz de opções. E nós só queremos o primeiro item, zero item da matriz de
opções, depois a mensagem
e depois o conteúdo. Então, esse é
o tipo de
forma fixa que detalhamos para obter apenas o conteúdo que o DBT do
bate-papo retorna. Deveria ser isso. Então, vamos ver se funcionou imprimindo-o
no terminal como antes, imprimindo o conteúdo do bate-papo. E eu estou salvando isso e agora vou até o terminal
e experimente. Vou executar
o programa aqui. Mas antes de tudo, você pode ou não saber disso, mas se você pressionar a seta para cima no teclado no terminal, ela passará pelos
comandos que você digitou
anteriormente, para que você
não precise digitá-los novamente. Então, acabei de pressionar
algumas vezes e este é o que eu quero
criar podcasts dot p-y, pressionar Enter e ele está
executando o programa. E agora ele está tão longe, isso é bom. Então, agora é só esperar que o chat
GBT retorne algo. Então vamos, demoramos alguns segundos, mas parece muito
bom, sem erros. E só de ler
isso, parece um conteúdo de podcasts melhor,
meio bom . E eu sempre fico impressionado
que ele tenha tirado isso das manchetes e
depois possa
convertê-lo em algo que
parece bem natural. Então, o que precisamos fazer a
seguir é converter isso em áudio usando a API 11 labs.
6. Convertendo em áudio: Bem, isso está indo bem até agora. Então, vamos passar
para a próxima parte, que é realmente
gerar a saída de áudio. E, como antes, vou
imprimir uma linha para
dizer o que está acontecendo. Então, processando áudio,
algo assim. Ok, agora não há um módulo de
11 laboratórios para Python. Em vez disso, vamos
usar algumas coisas. Vamos usar o módulo JSON porque vamos
lidar com dados no formato JSON. E vamos
importar um
módulo de solicitações que
lidará com o envio de solicitações de
postagem pela Internet. Então, para importá-los, voltamos
ao topo do programa, importamos JSON e depois
importamos solicitações. Agora, quando lidamos com
a API de 11 laboratórios, na verdade
existem várias
vozes que podemos usar. Portanto, precisamos especificar
a voz que
queremos especificando o ID de voz. Tudo isso está listado na documentação da API
11 labs. Então, eu não vou passar por isso aqui, mas eu já tenho um,
já pronto. Então, vou adicionar isso primeiro
a uma nova variável, e vamos chamá-la de ID de voz. E essa é a criança
difícil de lembrar. Eu colei isso. Na verdade, é para um garoto
americano chamado Rachel. E eu acho que
parece muito natural. Então é por isso que eu
vou com esse. Em seguida, queremos usar o módulo de solicitações para realmente enviar essa solicitação e
obter a resposta. Para fazer isso, vamos
ter uma nova variável para armazenar a saída
na saída de áudio. Vamos usar o módulo de
solicitações e na verdade,
precisamos
enviar dados de postagem. Então, postar é o método. E então há
três argumentos que
vamos usar
no método post. O primeiro argumento
para o método post é apenas o URL da API. É só uma corda, e eu a
tenho na área de transferência,
então cole isso. Mas também precisamos adicionar a ideia de voz da
voz que queremos. Então, anexe o ID de voz. Os próximos dois argumentos
são dados e cabeçalhos. Então, vamos lidar com os dados primeiro. E os dados estarão
em formato adjacente. Então, os dados são iguais. E aqui usamos o módulo JSON. E tem um método
chamado dumps, que aceita objetos
adjacentes. Neste objeto, vamos
colocar duas coisas, configurações
de texto e voz. O texto é bem fácil porque
já o preparamos. E essa é a
saída do chat GBT. Então, é conteúdo de bate-papo. E depois as configurações de voz. Deixe-me mudar isso para cima. A página com configurações de voz
é outro objeto com, no caso de 11 laboratórios, apenas duas configurações de
como podemos controlar o tom ou a
expressividade da voz. As duas configurações são estabilidade
e aumento de similaridade. Em primeiro lugar, estabilidade. Ambos são valores 0-1. E estabilidade é
o que parece. A voz soa bastante
estável quando você tem um valor alto e muito mais expressiva quando
você tem um valor baixo, vou defini-la em 0,2. Eu tentei algumas coisas
e gostei bastante de 0.2. No vídeo a seguir, explicarei o que
isso significa e
demonstrarei um pouco como você
pode alterar essas configurações. Mas antes de tudo,
vamos ficar com 0,2 e depois aumentar a similaridade. Não achei que isso
faça muita diferença. Então, vou ficar
com zero para esse. Em seguida, passamos para o argumento
headers dos cabeçalhos
desse método de postagem. O terceiro argumento também
é um objeto, e desta vez com
três propriedades. O primeiro é o tipo de conteúdo, que será o aplicativo JSON, porque estamos enviando um objeto
adjacente. Também estamos enviando uma chave de API. Essa é a próxima propriedade. Portanto, precisamos,
neste caso, da chave de API de hífen x i. E não queremos digitá-la diretamente no programa aqui, mas tudo bem, porque já a
temos como uma variável que criamos
logo no início. Assim, podemos usar a chave de
API de 11 lâmpadas que preparamos. E a terceira propriedade é o formato dos dados
que queremos receber. E, na verdade,
queremos formato de áudio. Então, podemos aceitar. E isso será audio
slash mpeg, MP Zhe. Ok, isso é tudo que precisamos. Portanto, temos o
método de postagem pronto para ser enviado. E o que precisamos
fazer a seguir é lidar com a resposta com a
saída que recebemos. Vou aumentar um pouco
o código. E dentro da
saída de 11 laboratórios, haverá uma coisa
chamada código de status, que nos dirá se
funcionou ou não. Então eu acho que é uma boa ideia
pegar isso e desmarcar. Em primeiro lugar. Portanto, se a saída de áudio, que é o objeto
e, dentro , a propriedade do código de status, se for igual a 200, significa que
tudo funcionou. Então, vamos colocar um
espaço reservado lá. Faça alguma coisa. Caso contrário, queremos imprimir algo para nos dizer
que não funcionou. Então, vamos imprimir na tela uma mensagem
da saída de áudio. Portanto, 11 lâmpadas
incluirão uma mensagem de erro
se houver algum problema. É isso que
queremos imprimir. Então, saída de áudio, e essa
é uma propriedade de texto. Então, se algo der
errado, poderemos
entender se é porque estamos sem créditos
ou outra coisa. Descobri que 11 laboratórios
usam alguns créditos muito rapidamente porque a geração de áudio
é bastante intensa. De qualquer forma, isso é para o caso de
algo dar errado, mas espero que
tudo dê certo. Nesse caso, agora podemos,
nesta linha de fazer algo, converter o áudio
que recebemos em um arquivo de áudio, um arquivo mp3. Então, vamos usar
o comando width com, e então vamos abrir um arquivo de áudio e
chamá-lo test dot mp3. Você pode chamá-lo do que
quiser e, se ele não existir, ele o criará automaticamente. Mas precisamos adicionar
algumas bandeiras aqui. W e b. W significa certo, então está no modo de gravação. Podemos
gravar conteúdo no arquivo MP3, e B significa que
são dados binários, o arquivo binário. E então precisamos apenas atribuir um nome a esse arquivo de saída. Então, vamos chamá-lo de arquivo de saída. Com esse arquivo,
vamos escrever o conteúdo do áudio que
recebemos de 11 laboratórios. Então, com esse arquivo, arquivo de
saída, certo, o que
vamos escrever nele? Vamos escrever o
conteúdo da saída de áudio. Então, saída de áudio, e isso
tem uma propriedade de conteúdo. Isso deve ser
tudo o que
precisamos para criar o arquivo de áudio. Então, para finalizar, vamos
imprimir mais uma linha informando que tudo está acabado versus incompleto
ou algo parecido. Vou salvar esse arquivo. E agora, se a executarmos e
cruzarmos os dedos, ela deve funcionar. Então, aqui no
terminal mais uma vez, vou pressionar a seta para
cima no meu teclado. Crie podcasts
dot p-y. Vamos embora. Então, como antes, já está
pegando as coisas no
feed RSS. Isso é rápido. Agora está usando o chat GBT
para converter isso em um tipo de estilo de
discussão mais falante. Tem alguns textos que provavelmente não
são idênticos ao texto
que tínhamos antes, mas ainda
parece muito bom. E agora isso
será gravado, se você quiser,
pela voz da IA e, esperançosamente salvo como um arquivo chamado
Tech test dot mp3. Ok, acabou de terminar e não mostrou nenhuma
mensagem de erro, o que é ótimo. Então, agora vamos até a pasta em que
estamos trabalhando. Certo, há um arquivo
chamado test dot mp3. Tem 1,2 mb, o que parece bom. Vamos jogar. Olá
e bem-vindo ao podcast de
hoje, onde
discutiremos algumas das últimas
notícias do Japão. Primeiro passo, funciona. Funciona. Espero que você possa ouvir
que há duas vogais nenhum primeiro uso de armas
nucleares é
incrivelmente realista para mim. Estou muito impressionado.
Podemos ver o conteúdo do terminal e
ver a oportunidade de sair. Na verdade, ela está lendo isso. O Japão e a Coréia do Sul estão
de olho em um pacote para mim. Sim, parece muito bom. Uau. Então, criamos nosso programa. Você deve se sentir muito orgulhoso
de si mesmo, e isso funciona. Temos um arquivo de áudio,
então é isso mesmo. Mas eu quero falar
no próximo vídeo, apenas algumas maneiras de
ajustar as configurações aqui para
mudar a sensação, o
tom ou a expressividade. Então, nos vemos no próximo vídeo.
7. Ajustes de tecelagem: Então, tudo funciona. Isso é ótimo. Mas eu só quero mostrar
algumas maneiras pelas quais você pode controlar o que
sai do bate-papo GBT e o
áudio do bate-papo GPT primeiro. E para isso, eu realmente quero excluir a seção de
áudio apenas temporariamente porque não
quero desperdiçar créditos gerando
áudio quando é a parte
do DBT do bate-papo em que
estou focando. Então, isso vai funcionar por enquanto. A função de criação que
vimos anteriormente para o chat GBT precisa de pelo menos
dois argumentos. Existem vários
outros, e você pode ver a documentação da API para entender todos os diferentes argumentos que estão
disponíveis para você. Mas o que tem o maior impacto que eu
encontrei, sua temperatura. E você pode
pensar nisso como criatividade. Vai de 0 a 2. Acho que o padrão é 1,0. Relativamente, nenhuma criatividade significa que você receberá
praticamente a mesma ou quase a
mesma resposta toda vez que executar o mesmo comando. Esse número alto, o máximo dois, nos dará
muita criatividade. E é isso que eu
quero mostrar aqui. Então, vamos usar uma temperatura
de dois. Guarde isso. E vamos
executar o comando novamente. Lá vamos nós. Oh, isso
é muito criativo. Então, meio que começa, ok, bem-vindo à nossa aula de hoje, estamos discutindo
blá, blá, blá. Mas, como você pode ver, à medida que
avançamos cada vez mais, é apenas lixo. Então, isso é muito criativo. Portanto, você provavelmente nunca vai
querer usar a temperatura como um valor de dois, o menor 10, como mencionei, isso provavelmente
fornecerá uma saída muito mais estável e praticamente a
mesma coisa todas as vezes. Depende do que você
quer. Você pode ficar com essa saída previsível. O padrão que eu acho
é absolutamente bom. Eu geralmente
costumo deixar em branco. Eu não uso o argumento da
temperatura a menos que eu queira
controlar sua criatividade. Mas isso não ajuda muito. De qualquer forma, isso depende de você. Você pode brincar com isso. Vamos dar uma olhada nos controles
de áudio agora. Para as configurações de áudio, há praticamente dois de estabilidade
e similaridade
que vimos anteriormente nas configurações de voz aumentos
de estabilidade
e similaridade
que vimos anteriormente nas configurações de voz. Em primeiro lugar, aumento de similaridade. Isso é mais eficaz quando você tem uma voz personalizada
e pode fazer isso. Acho que talvez você
precise ter um
plano pago com 11 lâmpadas, mas você pode fornecer
amostras de voz e ele
tentará criar uma voz de IA
muito semelhante a essa. Portanto, você pode usar um aumento de
similaridade para torná-lo muito semelhante
ou menos semelhante. Se você estiver muito alto, acho que pode
haver artefatos que comecem a aparecer. Descobri que não
tem muito efeito quando usamos as vozes
embutidas. Talvez um número maior pareça um
pouco mais claro, mas há algum
risco de artefatos surgirem de acordo com
a documentação da API. Então, acabei de deixar
em zero e está tudo bem. A configuração de estabilidade tem
mais diferença. E é um pouco como sua
configuração criativa de bate-papo DBT. Ele controla a
expressividade da voz. Portanto, um número maior
o torna mais estável. Na verdade, sou um pouco
chato. E um número baixo é que a voz é muito expressiva. Agora, em vez de gerar
e usar meus créditos, eu criei
dois arquivos de teste. Portanto, é muito mais rápido
ouvirmos
a diferença entre
essas duas configurações. Tenho alguns
arquivos de amostra que preparei aqui. E vamos ouvir
o primeiro vínculo com a máxima
estabilidade possível de um. Olá. Esta é uma amostra
da voz chamada Rachel de 11 laboratórios com uma configuração de
estabilidade de um e uma configuração de
aumento de similaridade de zero. Ok, parece muito bom, muito natural, mas
também meio chato. Então, vamos tentar com uma configuração de estabilidade de
zero, que é o mínimo. Olá. Esta é uma amostra
da voz chamada Rachel de 11 laboratórios com a configuração de
estabilidade de zero e uma configuração de
aumento de similaridade de zero. Nossa, ela está muito
animada com isso. Isso é possivelmente muito expressivo. Eu fiz isso com algumas amostras
e descendo para zero. Vamos voltar ao
programa por um segundo. Sim, a configuração de estabilidade de zero é realmente demais para mim. Eu gosto de 0,2. Já
vi outras pessoas em fóruns de
discussão recomendarem
algo entre 0,2 e 0,4. Então, opte por eles e
um aumento de similaridade. Você pode tentar
brincar com isso, mas geralmente zero ou mesmo
um vai ficar bem. Não há uma grande diferença. Então, essas são as maneiras de
controlar a saída do Chen GBT e do áudio de 11 laboratórios. Só tome cuidado, pois o processamento de áudio é
muito mais intenso. E, portanto, você
usará seus 11 créditos de laboratório muito
mais rápido do que os de bate-papo GBT. O que eu recomendo é que cada vez que você gera
um novo arquivo de áudio, talvez faça uma cópia dele e mantenha um registro da estabilidade e das
configurações de abuso de similaridade que você usou para que, se ele
for sobrescrito, você ainda tenha essa cópia. Você pode se referir a ele como um arquivo de
amostra no futuro. De qualquer forma, acho que
tudo o que nos resta
agora foi recapitular
o que aprendemos.
8. Resumo: Lá vamos nós. Agora você sabe como
criar facilmente um podcast com inteligência artificial
a partir de apenas manchetes de notícias. E esperamos ter aprendido
muito ao longo do curso. Então, vamos recapitular rapidamente as habilidades específicas
que abordamos. Usando Python para obter
conteúdo de um feed RSS. Geração de textos semelhantes aos humanos
usando a API GPT de bate-papo. Conversão de texto em fala
usando a API 11 labs. Criação de um arquivo
de áudio MP3 a partir da saída de texto em voz. Espero que você tenha gostado do
curso e o tenha achado útil. Agora que você o concluiu, as habilidades que você aprendeu
podem ser usadas para uma variedade de
projetos diferentes no futuro. Obviamente, você pode gerar
automaticamente arquivos
de áudio
diariamente ou semanalmente
e, em seguida, enviá-los para o host de podcast de sua
preferência. Alguns exemplos
incluem bus sprout, simple cost ou transistor FM. Como alternativa, você pode usar o código que desenvolvemos para usar outros
serviços on-line, como geração de
imagens ou
até mesmo geração de vídeo Deve ser muito fácil
ajustar o código para usar uma variedade de APIs on-line. Finalmente, quero agradecer
por se juntar a mim neste curso. Foi um prazer
ensinar você e por favor, lembre-se de que a
prática leva à perfeição. Portanto, continue aprimorando
essas habilidades de codificação e crie projetos interessantes. E, o mais importante,
divirta-se ao longo do caminho. Se você tiver algum
comentário ou dúvida
, sinta-se à vontade para deixá-los
na seção de discussão. E se ainda não o fez, considere deixar
uma avaliação para ajudar outros alunos a encontrar e
se beneficiar desse curso. Então é isso para mim. E desejo a você tudo de bom
em suas aventuras de programação.