Transcripciones
1. ¡Hola!: Hola y bienvenidos a este curso en
video sobre cómo crear
un podcast generado por IA a partir de titulares de
noticias usando Python, la API de chat GPT, y la API de 11 labs,
que los tres. Mi nombre es Daniel y tengo más de 20 años de experiencia en
programación y
desarrollo web. Al final de este
curso,
podrás generar
automáticamente
un archivo de audio MP3 a partir de una fuente RSS de noticias, que luego podrás usar para
crear tu propio podcast. También habrás
aprendido a integrar ai y un
servicio de texto a voz en tu código. Algunas de estas
habilidades específicas que aprenderás incluyen el uso de Python para obtener
contenido de un feed RSS, generando textos similares a humanos
usando la API GBT de chat. Conversión de texto a voz
usando la API de 11 labs. Crear un archivo de audio MP3 a partir de la salida de texto a voz. El curso está diseñado
para ser de nivel principiante o intermedio y no se requiere
experiencia en Python o IA. Repasaremos cada paso con explicaciones
claras para que luego entiendas cómo personalizar el código si lo deseas. Al final del curso,
habrás trabajado en un proyecto del mundo real
que podrías mostrar a posibles empleadores o utiliza
una base para un podcast. O
comprenderás cómo
incorporar la IA en
otros proyectos tuyos. El alumno ideal
para este curso es alguien que esté interesado
en aprender sobre Python, sobre la IA y otras API
de terceros. Y quién quiere
saber automatizar las creaciones de
contenido como
con un podcast. Es para ti. Si eres un blogger,
un periodista, un creador de contenido, o un aficionado que solo quiere jugar con
las últimas tecnologías. Así que gracias por
considerar este curso. Espero verte por dentro.
2. Preparación: Bien, vamos a meternos en ello. Pero antes de que realmente
empecemos a codificar, hay tres cosas que
necesitamos configurar. Python y los diversos
paquetes que necesitamos. Y cuenta OpenAI y clave
API y una
cuenta de 11 labs y una clave API. Entonces Python primero, ojalá lo
tengas ya instalado y vuelve a verificar que puedas escribir Python en la terminal. Y debería mostrarte
lo que tienes instalado. Aquí. Es decir que
tengo a 0.7 instalado. Y en realidad
queremos Python tres. Estoy en una Mac y en
realidad tiene dos versiones
de Python instaladas. Entonces, para especificar Python tres, necesito escribir Python tres. Creo que para Windows solo Python. Estaremos bien si tienes
Python tres instalado. De todos modos,
salgamos del prompt de Python e intentemos de nuevo con
Python tres, ¿de acuerdo? Y dice que tengo
instalado Python 3.10, lo cual está bien. Entonces, cualquiera de
esos que funcione para ti, Python o Python tres, úsalo como comando para
el resto del curso. Vuelvo a salir del prompt de
Python. Y ahora tenemos
que asegurarnos de que tenemos los diversos módulos y
paquetes que necesitamos. He intentado que esto sea fácil
creando un archivo
requirements.txt, y debería estar en los
recursos para este curso. Así que ponlo en el directorio en el que
estás trabajando actualmente. Ahora he hecho una carpeta de proyecto
llamada AI podcast creator. Echemos un vistazo a
lo que hay dentro de eso. Ahí vamos. Sólo requirements.txt. Eso es todo lo que hay
ahí en este momento. Entonces eso está bien. Vamos
a usar eso con pip, que es un instalador de Python, para
agarrar automáticamente esos paquetes. La forma en que lo hacemos es
con el comando pip. Si necesitas escribir
Python tres en tu sistema, entonces aquí debes
escribir pip3, instalar guión r, y el nombre
del archivo de requisitos. Así requisitos
punto TXT presentador. Y leerá ese archivo
requirements.txt y automáticamente descargará
e instalará esos paquetes. Ya los tengo
instalados para ti. Podría tardar unos
segundos en descargarlos e instalarlos
si falta alguno, pero entonces deberías
estar listo para comenzar. Entonces la siguiente etapa son
los OpenAI y 11 labs, cuentas y claves API. Y para eso, necesitamos
pasar al navegador. Bien, aquí en el navegador, si buscas API OpenAI, podrías obtener varias guías
y explicaciones y cosas así, pero lo que necesitamos es la plataforma
en sí misma. Así platform.openai.com. Si aún no tienes
una cuenta, por favor crea una y
el plan gratuito está bien. Si tienes una
cuenta, entonces aquí es donde necesitas iniciar sesión. Una vez que hayas iniciado sesión, te
dan un montón de tokens, un montón de créditos para usar, y eso será suficiente
para nuestro programa aquí. No necesitamos
preocuparnos por pagar nada, pero sí necesitamos
tomar la clave API. Así que ve al menú de la
cuenta y busca el elemento view API keys. Ya he creado uno,
el tuyo podría estar vacío aquí, en cuyo caso, haz clic en el botón
Crear nueva clave secreta. Y eso mostrará tu clave API. Sólo una vez, esta es la única vez que
va a estar en la pantalla. Entonces necesitas hacer una copia ahora, lo contrario, la perderás. Pero si la pierdes,
también puedes regenerar otra. Así que no es realmente
un gran problema de todos modos. Queremos copiar esto. Y vamos a poner esto en un archivo de variables de entorno. Entonces necesitamos volver a
la terminal para crear eso. De vuelta en el terminal
aquí tenemos la clave API OpenAI
en nuestro portapapeles, pero necesitamos crear
un archivo para almacenarlo. Y vamos a
crear un archivo especial
llamado archivo de
variables de entorno, también
conocido
como punto o punto ENV. Queremos crear
ese archivo de texto básico. Voy a usar el editor de texto
Nano aquí, pero puedes usar cualquier editor de
texto que te guste, nano y es punto d y v.
Por favor usa ese nombre. Pulse Intro. Y se ha creado
este archivo vacío. Y aquí voy a poner un nombre de variable y
luego pegar la clave API. Entonces el nombre de la variable, voy a usar clave API
Open AI entonces
es igual sin espacio. Y luego aquí voy a pegar
la clave API de OpenAI. Bueno. Voy a dejar esto abierto porque vamos a
volver a esto en un minuto después de que tengamos
la clave API de 11 labs, que nuevamente está de vuelta
en el navegador. Similar a antes. En beta punto 11 labs punto io. Por favor, cree una cuenta.
Si aún no tienes uno. Si tienes una cuenta,
entonces inicia sesión aquí. Una vez que hayas iniciado
sesión, necesitamos subir
al menú de la cuenta, y esta vez es el
perfil en el que hacemos clic. Ahora no podemos ver
la clave API aquí, así que necesitamos hacer clic en el botón I y eso lo hace visible. Podemos ver esto en cualquier momento
puedes regenerar uno
nuevo, en cualquier momento como antes. Copiemos y peguemos eso y volvamos
a la terminal. Este archivo de punto ENV sigue
abierto, lo cual es bueno. Entonces necesitamos crear una nueva línea. Y esta vez vamos
a usar el mismo formato, pero lo llamaremos 11 laboratorios. La clave Api equivale a que no haya espacios. Y nuevamente, pegamos ahí
la clave API. Eso es todo lo que necesitamos
para este archivo. Así podremos guardar y
salir de este archivo. Si estás usando Nano aquí, entonces haces Control X. Y eso
te pedirá que lo guardes. Sí. Y cerramos el archivo y
volvemos a la terminal. Así que tenemos nuestras claves API listas y almacenadas
en un archivo ENV punto. Vamos a acceder a
eso con Python. Tenemos todos los
módulos Python instalados. Estamos listos para
comenzar a programar.
3. Variables de entorno: Ahora para las cosas divertidas,
la programación, y aquí tengo un archivo
Python vacío, que he llamado crear
podcasts punto p-y. Me he asegurado de que esto esté
en la misma carpeta el archivo punto ENV en el que
guardamos las claves API antes. Entonces están en la misma
carpeta dentro de este programa. Voy a
dividirlo en trozos. Y este primer trozo va a ser un poco de código que agarrará esas claves API y solo imprimirá en la pantalla
para asegurarse de que funcionó. Y luego los vamos a usar en
las otras secciones. Entonces, concentrémonos primero
en eso. Para ello, necesitamos antes que nada
, importar algunos módulos. Y necesitamos tres
para esta sección. Entonces el primero es
un módulo que está hecho
específicamente para manejar
las variables de entorno, las claves API del punto n, ese es el nombre del módulo. Y vamos a importar
sólo una parte de ella, que se llama carga. Y vamos a
usar ese método. Lo siguiente que necesitamos importar
es el módulo del sistema operativo incorporado. Y luego finalmente, debería
estar todo instalado ya para ti. Se llama Open
AI, módulo OpenAI. Una vez que tengamos esos
módulos importados, lo primero que
haremos es ejecutar la función load y eso simplemente
la preparará para agarrar las claves API. Eso es súper fácil. Es solo cargas con soportes. A continuación, tenemos que prepararnos
en algún lugar para almacenar la clave API que está temporalmente
dentro del programa. Y el módulo OpenAI tiene una propiedad
específicamente para esto. Por lo que va a usar
eso con Open AI. Y luego la propiedad de clave API. Y asignamos la clave API
esto en nuestro archivo variable. Y aquí es donde podemos usar el módulo OS para agarrar ese SO. Y trata de recordar el nombre de la variable que
usamos antes. Y estoy bastante seguro de que
era una clave API de IA abierta. Bien, ahora podemos hacer lo
mismo para 11 laboratorios. Esta vez no tenemos
un módulo de 11 labs, así que solo crearemos
nuestra propia variable, llamaremos clave API de 11 labs. Y nuevamente eso es igual a OS dot obtener la variable de
entorno. Y se llama Live
y lab API key. Eso debería ser todo lo que necesitamos
solo para agarrar las claves API. La razón por la que estamos
haciendo esto en
lugar de codificarlos duro
en el programa, es que si compartimos
este programa, este código en GitHub o donde sea, la gente podrá ver
cómo claves API si están aquí. Y no queremos que se
supone que sean privados, esto se supone que es secreto. Los almacenamos en un archivo variable de
entorno local, que permanecerá en nuestra máquina. Pero entonces podemos compartir libremente este código y las
claves API permanecen en secreto. Asegurémonos de que esto
se funcione
imprimiendo las claves API en
los terminales. Así que imprime la clave
API open ai dot y los laboratorios de impresión
subrayan la clave API. Una ligera diferencia entre
los dos ahí, ¿verdad? Voy a guardar esto y vamos a
pasar a la
terminal y ejecutarlo. Aquí en la terminal,
vamos a ejecutar el programa escribiendo Python. Python podría ser suficiente para ti. En mi caso, necesito
escribir Python tres y luego el
nombre del archivo. Entonces es crear podcasts
punto p-y, presione Enter. Y funciona. Imprime las claves API que
hemos almacenado en el archivo de variables de entorno. Perfecto, eso significa que estamos listos para pasar
a la siguiente parte,
que en realidad es
agarrar contenido y luego conseguir que la IA
juegue con él.
4. Grabación de contenido RSS: Vamos a construir nuestro programa un poco más que, pero antes que nada, quiero eliminar estas líneas
que imprimen las claves API. No los necesitamos. Entonces nos desharemos de eso. Sin embargo, lo que sí necesito
es un feed RSS, porque voy a tomar los titulares de noticias de un feed
RSS y usarlo como entrada para chatear GBT
al navegador. Y ya tengo un
feed RSS preparado. Vivo en Japón, así que
estoy usando uno de
los tiempos de Japón,
los titulares de noticias. Y solo quiero
señalar que el feed RSS consta de múltiples elementos y cada
uno tiene el título, tiene una descripción, tiene varios otros
elementos también, pero solo voy a
seguir con el título y
la descripción y combinarlos como el resumen de la
noticia para el chat GPT. Así que solo necesito la
URL de este feed y prácticamente cualquier
feed RSS debería hacer. Y voy a
volver a nuestro programa. Y hagamos una
nueva variable para este feed de noticias igual a esa URL. Me gusta mantener estas
variables en la parte superior
del programa para que cualquiera pueda entrar
y cambiar el RS. RSS se alimenta fácilmente más tarde sin tener que desplazarse
hacia abajo por todo el código. A continuación, quiero trabajar en acaparar
realmente el contenido. Y antes de hacer eso, solo
voy a imprimir algo al
terminal aquí que
dice que ahora estamos
procesando el feed RSS. Y luego
imprimiré etapas para
las diferentes partes a medida que escribimos el programa para que cuando
ejecutemos el programa, sepamos en qué bit se está
trabajando en cualquier momento. También podemos ver cuando falla, cuando hay errores, podemos ver en qué bit esos errores. Entonces, solo, por nuestro
propio bien, la impresión. Estoy evaluando el feed RSS, ¿verdad? Y para hacer eso, necesitamos un
módulo realmente bueno llamado feed parser, que nos va a hacer que
sea súper fácil. Así que lo importamos
como lo hacíamos antes. Piensos de importación par. Bueno. Y esto significa que en muy
pocas líneas, podemos tomar ese
contenido del feed RSS. Ahora, vamos a
asignar la salida del procesamiento
del analizador de alimentación a
una nueva variable llamada feed. Y así usamos feed parser aquí. Analizador, y utilizamos uno de
sus métodos llamados pass. Y el argumento para ello es
la URL de las fuentes RSS. Entonces eso es solo un feed de noticias
que preparamos antes. Cuando agarramos el feed, no
podemos dar múltiples bits de información fácilmente para chatear DBT, lo que realmente queremos es
un poco de contenido. Entonces voy a tener
una variable vacía. Voy a hacer
un minuto. Y luego con cada noticia, voy a agregarle
el nuevo resumen. Así que al final tendremos
una variable que contiene todos los resúmenes de noticias
unidos. Nuevas historias que son. Entonces voy a llamar a
una variable stories y eso es solo un vacío con
ganas de empezar. El RSS los alimenta usando, creo que tiene alrededor de 30 artículos
y no quiero tantos. Quiero que los podcasts
sean bastante cortos. Entonces voy a limitarlo a diez, y voy a crear otra
variable para que esa use más adelante. Entonces historias, llamémoslo
historias límite es igual a diez. Bien, ahora estamos listos para
recorrer el objeto feed, que debería contener
todos esos datos de la fuente
RSS . Para mirar a través. Vamos a
crear un bucle for. Y llamemos a cada elemento en el elemento de la fuente RSS
porque eso
es lo que es para el elemento en el objeto de feed. Y hay una propiedad
llamada entradas. Ahora que por sí solo es suficiente
para agarrar todos los artículos. Pero como mencioné, quiero
limitarlo a los diez primeros. Así que podemos usar un
poco inteligente de abreviatura de Python
aquí y usar los
corchetes. Y entonces usaremos
esa tienda es límite aquí después de dos puntos. Así codón y luego diez
o límite de almacenamiento, y luego un colon al final
porque es un for-loop. Y eso automáticamente truncará todos los artículos
hasta los diez primeros. Dentro de cada
iteración del bucle. Vamos a construir esa tienda
vacía es variable. Entonces, las historias equivalen a historias más porque le agregamos
datos cada vez. Y como estamos agregando todas estas nuevas historias
en una sola cadena, quiero dejar
absolutamente claro platicar con GBT cuando comience una nueva historia. Entonces vamos a tener una nueva historia, el comienzo de cada una. Y luego los ítems
en el feed RSS, tienen un elemento title y tienen un elemento
description. Así que vamos a agarrarlos
haciendo item dot title. Poner un periodo después de eso. Y luego agarraremos
la descripción del artículo. Y eso debería ser para
el paso del feed RSS. Quiero asegurarme de que funcione. Así que sólo voy a
imprimir la variable de historias. Una vez que se le
haya agregado todo, asegurémonos de que
funcione yendo a la terminal y
ejecutando el programa. Entonces estoy guardando este
archivo en la terminal. Y como antes, Python
o Python tres. Y el nombre del presentador del
archivo. Cruza los dedos. Eso fue rápido. Ahí vamos. Agarró el feed RSS y lo combinó todo
en una cadena larga. Esto es perfecto como entrada para GPT,
que haremos a continuación.
5. Uso de ChatGPT: Bien, lo estamos haciendo bien. Tenemos el contenido
de las fuentes RSS, así que pasemos al chat GPT. Voy a eliminar
esta línea de impresión ahí. Ya no necesitamos imprimir
la variable stories, pero voy a agregar
una línea que imprima la siguiente etapa de procesamiento. Entonces diremos
procesando chat, GPT. Con este,
vamos a usar el módulo OpenAI que ya
hemos importado. Así que no hay nuevos
módulos para importar. Para usar eso necesitamos asignar el resultado o la salida de
chat GPT en una variable. Entonces llamémoslo chat. Voy a poner esto será
desde el módulo Open AI. Y hay un servicio
llamado finalización de chat. Cuentan con otros servicios
como generación de imágenes,
cosas así. Pero estamos usando un chat de
texto aquí. Y dentro de eso
hay un método de crear. El método create toma
varios argumentos, pero necesita al menos dos, y son modales. Y esperanzas para los mensajes de
coma. Y los mensajes son
en realidad una matriz. En primer lugar, con el modelo, esto puede especificar el
modelo de IA que queremos usar. Probablemente habrá muchas cosas para elegir en el futuro. Pero por el momento, prácticamente
tienes GPT 3.5 actualmente. Entonces GPT guión 3.5 y
hay uno llamado turbo. Y este es el modelo de IA más avanzado disponible
públicamente. En el futuro, esto
probablemente cambiará. Así que por favor, vigile la documentación de
su API para averiguar qué es lo
último y lo mejor. Entonces por ahora, el modelo
es GPT 3.5 Turbo. Y los mensajes son una
matriz de objetos. Cada objeto tiene un
rol y un contenido. Y sólo vamos a usar
un objeto para mantenerlo sencillo. Entonces queremos un rol
porque aquí es un objeto, voy a usar
rol y un contenido. El papel puede ser una
de tres cosas. Un usuario, que es el
rol que realmente envía el comando o las solicitudes
para chatear sistema TBT, que es una especie de informar al
chat GPT de lo que es. Entonces, por ejemplo, eres un asistente servicial ,
educado,
algo así. Y entonces asistente
es el tercer rollo. Y eso podría ser algún tipo de información de fondo, por ejemplo, si le estás enviando
un montón de datos, podrías decir que estos
datos fueron recopilados y marzo de 2023, algo así. No necesitamos ese
tipo de cosas. Sólo vamos a
seguir con el único papel del comando básico. Y eso significa que el
rol será usuario. El contenido es la solicitud
real que enviemos un chat GBT. He hecho varios
ensayos y errores aquí, y se me ha ocurrido un comando
bastante largo, así
que voy a pegarlo, ahorrar tiempo. Y ahí está. Por favor, reescriba los
siguientes titulares
y resúmenes de noticias de
una manera de discusión, como de una manera habladora, como si alguien estuviera
hablando de ellos en un podcast. Como pueden ver,
he agregado varios tipos de bits extra aquí porque tuve que
seguir ajustándolo para obtener
lo que realmente quería. Y obviamente
se puede ajustar eso
además de escuchar la salida. Entonces esa es la petición. Pero obviamente necesitamos
incluir los propios
titulares de noticias. Entonces al final de esta solicitud, voy a simplemente
anexar la
variable stories que va a agarrar
la salida del chat TBT. Pero también nos va a dar algunas otras cosas también. Y solo queremos el
contenido principal, la respuesta central. Así que vamos a extraer eso creando una nueva
variable, el contenido del chat. Y lo vamos a agarrar de
la salida de chat que
acabamos de crear. Y dentro de eso,
habrá una matriz de opciones. Y solo queremos el primer elemento, cero elemento de la matriz
choices, y luego mensaje
y luego contenido. Entonces esa es una especie de
forma fija que perforamos para obtener solo el contenido que devuelve el
chat DBT. Eso debería ser. Entonces veamos si ha funcionado imprimiéndolo en la terminal como
antes, imprima el contenido del chat. Y eso lo estoy guardando y ahora
pasa a la terminal
y pruébalo. Yo voy a ejecutar
el programa aquí. Pero antes que nada, puede
que sepas esto o no, pero si presionas la flecha hacia
arriba tu teclado
en la terminal, pasará por
comandos que escribiste previamente para que
no necesites volver a escribirlos. Así que acabo de presionar
un par de veces y este es el que quiero
crear podcasts punto p-y, presionar Enter, y está
ejecutando el programa. Y ahora está hasta el momento eso es bueno. Entonces ahora solo esperamos a que el chat
GBT nos devuelva algo. Entonces vamos, tardamos unos segundos, pero eso se ve bastante
bien, sin errores. Y solo leyendo esto, se ve mejor, algo así como bueno, tipo de contenido de podcasts. Y siempre me ha impresionado
que haya agarrado esto de titulares de las
noticias y luego
poder
convertirlo en algo que
se ve bastante natural. Entonces, lo que tenemos que hacer a
continuación es convertir esto en audio usando la API de 11 labs.
6. Convertido a audio: Bueno, esto va bien hasta el momento. Así que pasemos
a la siguiente parte, que es
generar realmente la salida de audio. Y como antes, sólo voy a imprimir una línea para
decir lo que está pasando. Entonces procesando audio,
Algo así. Bien, ahora no hay un módulo de
11 labs para Python. En cambio, vamos a estar
usando un par de cosas. Vamos a estar usando el módulo JSON porque vamos a estar
manejando datos en formato JSON. Y vamos a estar importando un
módulo de peticiones que se
ocupará de enviar solicitudes de
correos a través de internet. Entonces, para importarlos, volvemos
a la parte superior del programa, importamos JSON y luego
importamos solicitudes. Ahora, cuando tratamos con
la API de 11 labs, en realidad
hay varias
voces que podemos usar. Y así tenemos que especificar
la voz que
queremos especificando el ID de voz. Eso es todo lo que aparece en la documentación de la API de
11 labs. Entonces no voy a pasar por aquí, pero ya tengo uno,
ya listo. Entonces voy a agregar eso antes
que nada a una nueva variable, y la llamaremos ID de voz. Y esa es la identificación
difícil de recordar. Lo pegué en. En realidad es para una
chica americana llamada Rachel. Y creo que
suena muy natural. Entonces por eso me
voy con esa. A continuación, queremos usar el módulo de peticiones para
enviar realmente esta solicitud y
obtener la respuesta. Para ello,
tengamos una nueva variable para almacenar la salida
en salida de audio. Vamos a usar el módulo de
peticiones y en realidad
tenemos que
enviar datos de post. Entonces post es el método. Y luego hay
tres argumentos que vamos a usar
en el método post. El primer argumento
para el método post es solo la URL de la API. Eso es solo una cadena, y la
tengo en el portapapeles,
así que pégala. Pero también necesitamos agregar la idea de voz de la
voz que queremos. Así que agrega ID de voz. Los siguientes dos argumentos
son datos y encabezados. Entonces, tratemos primero con los datos. Y los datos estarán
en formato adyacente. Entonces los datos son iguales. Y aquí usamos el módulo JSON. Y tiene un método
llamado volcado, que aceptará objeto
adyacente. En este objeto,
pondremos dos cosas, ajustes de
texto y voz. El texto es bastante sencillo porque
ya lo tenemos listo. Y esa es la
salida del chat GBT. Entonces es contenido de chat. Y luego los ajustes de voz. Déjame mover esto hacia arriba. La página con ajustes de voz
es otro objeto con, en el caso de 11 labs, solo dos ajustes de
cómo podemos controlar el tono o la
expresividad de la voz. Los dos ajustes son la estabilidad
y el impulso de similitud. En primer lugar, la estabilidad. Estos son ambos valores 0-1. Y la estabilidad es
lo que suena. La voz suena bastante
estable cuando tienes un valor alto y mucho más expresiva cuando
tienes un valor bajo, voy a poner en 0.2. He intentado algunas cosas
y me gusta bastante el 0.2. En el siguiente video, voy a explicar lo que significan
estos y voy a demostrar un poco cómo
se pueden cambiar estos ajustes. Pero antes que nada,
sigamos con 0.2 y luego impulso de similitud. No he encontrado que esto
haga mucha diferencia. Así que sólo voy a seguir
con cero para esa. Luego pasamos al argumento
headers de este método post headers. El tercer argumento
es también un objeto, y esta vez con
tres propiedades. El primero es el tipo de contenido, que será JSON de aplicación, porque estamos enviando objeto
adyacente. También estamos enviando una clave API. Esa es la siguiente propiedad. Y así necesitamos, en este caso x i guión clave API. Y no queremos escribirlo directamente en el programa aquí, pero eso está bien porque
ya la tenemos como una variable que creamos
justo al principio. Así podremos usar 11 lámparas
API clave que preparamos. Y la tercera propiedad es el formato de los datos
que queremos recibir. Y en realidad
queremos formato de audio. Entonces podemos aceptar. Y esto será audio
slash mpeg, MP Zhe. Bien, eso es todo lo que necesitamos. Y así tenemos el
método post listo para ser enviado. Y lo que tenemos que
hacer a continuación es lidiar con la respuesta con la
salida que recuperemos. Sólo voy a subir un poco
el código. Y dentro de la
salida de 11 laboratorios, habrá una cosa
llamada código de estado, que nos dirá
si ha funcionado o no. Entonces creo que es una buena idea
agarrar eso y desmarcar. En primer lugar. Entonces si salida de audio, que es el objeto
y luego dentro eso la propiedad de código de estado, si esto equivale a 200, entonces significa que
todo ha funcionado. Así que pongamos ahí un
marcador de posición. Haz algo. De lo contrario, queremos imprimir algo que nos diga
que no ha funcionado. Así que vamos a imprimir la pantalla un mensaje
de la salida de audio. Por lo que 11 lámparas
incluirán un mensaje de error
si hubo algún problema. Eso es lo
que queremos imprimir. Entonces salida de audio, y eso
es una propiedad de texto ahí. Entonces, si algo sale
mal, podremos
entender si es porque nos quedamos sin créditos
o algo más. He encontrado que 11 laboratorios
sí usan un poco de créditos bastante rápido porque la generación de audio
es bastante intensiva. De todas formas, eso es en caso de que
algo salga mal, pero ojalá
todo salga bien. En cuyo caso ahora podemos
en esta línea hacer algo, convertir ese audio
que hemos recibido en un archivo de audio, un archivo mp3. Así que vamos a usar
el comando width con, y luego vamos a abrir un archivo de audio y lo
llamaremos test dot mp3. Puedes llamarlo
como quieras y si no existe, automáticamente lo creará. Pero tenemos que añadir un
par de banderas aquí. W y b. W significa correcto, así que está en modo escritura. Podemos
escribir contenido en el archivo MP3, y B significa que son
datos binarios, el archivo binario. Y luego necesitamos simplemente asignar un nombre a este archivo de salida. Entonces lo llamaremos archivo de salida. Con este archivo,
vamos a escribir el contenido del audio que
recibimos de 11 laboratorios. Entonces con este archivo, archivo de
salida, ¿verdad, qué le
vamos a escribir? Vamos a escribir el
contenido de la salida de audio. Entonces salida de audio, y eso
tiene una propiedad de contenido. Eso debería ser
todo lo que
necesitamos para crear el archivo de audio. Entonces para rematar, solo tengamos una línea más para imprimir que todo está terminado versus incompleto
o algo así. Voy a guardar este archivo. Y ahora si lo corremos y
cruzamos los dedos, debería funcionar. Entonces por aquí en la
terminal una vez más, voy a presionar la flecha hacia
arriba en mi teclado. Crear podcasts
punto p-y. Vamos. Entonces como antes, ya va y agarra las cosas en el
feed RSS. Eso es rápido. Ahora está usando el chat GBT
para convertir eso en una especie de estilo de
discusión más habladora. Tiene algunos textos probablemente no
es idéntico al texto
que teníamos antes, pero aún así
se ve bastante bien. Y así esto ahora va a
ser grabado, si lo desea, por la voz AI y ojalá guarde como un archivo llamado
Tech test dot mp3. Bien, eso acaba de terminar y no mostró ningún
mensaje de error, lo cual es genial. Así que ahora pasemos a la carpeta en la que
hemos estado trabajando. Bien, hay un archivo
llamado test dot mp3. Es de 1.2 mb, que se ve bien. Juguémoslo. Hola
y bienvenidos al podcast de
hoy donde estaremos discutiendo algunas de las últimas
noticias fuera de Japón. Primer paso, funciona. Funciona. Espero que puedan escuchar
que hay dos vocales, ningún primer uso de armas
nucleares es
asombrosamente realista para mí. Estoy muy impresionado.
Podemos ir a mirar el contenido en la terminal y ver esa oportunidad de irnos. Ella en realidad está leyendo eso. Japón y Corea del Sur
me están viendo un paquete. Sí, suena muy bien. Guau. Así que hemos creado nuestro programa. Deberías sentirte muy orgulloso
de ti mismo, y funciona. Tenemos un archivo de audio,
así que eso es todo de verdad. Pero sí quiero
repasar en el siguiente video, solo un par de formas en las que puedes
ajustar los ajustes aquí para cambiar el sentimiento o el
tono o la expresividad. Entonces, nos vemos en el siguiente video.
7. Ajustar los ajustes: Entonces todo funciona. Eso es genial. Pero solo quiero mostrarte
un par de formas en las que puedes controlar lo que
sale tanto del chat GBT como del
audio hará chat GPT primero. Y para eso, en realidad
quiero eliminar la sección de
audio solo temporalmente porque no
quiero desperdiciar créditos generando
audio cuando es el bit DBT de chat en el que
me estoy enfocando. Así que eso va a hacer por ahora. La función create que
vimos antes para el chat GBT necesita al menos
dos argumentos. Hay varios
otros, y puedes ver la documentación de la API para entender todos los diferentes argumentos que están
disponibles para ti. Pero el que tiene más impacto que he
encontrado, su temperatura. Y se puede pensar
en esto como una creatividad. Va 0-2. Creo que el valor por defecto es 1.0. Relativamente, sin creatividad significa que vas
a recuperar la misma o casi la
misma respuesta cada vez que ejecutes ese mismo comando. Ese número elevado, el máximo dos nos va a dar
mucha creatividad. Y eso es lo
que quiero mostrar aquí. Entonces usemos una temperatura
de dos. Guarde esto. Y vamos a repasar y
ejecutar el comando otra vez. Ahí vamos. Oh, esto
es muy creativo. Entonces empieza un poco, bien, Bienvenido a nuestra clase de hoy, estamos discutiendo
bla, bla, bla. Pero como pueden ver, a medida que
vamos más y más abajo, es sólo basura. Entonces esto es realmente creativo. Entonces probablemente nunca quieras
usar la temperatura como un valor de dos, el 10 más bajo, como mencioné, probablemente te
dará una salida mucho más estable y prácticamente lo
mismo cada vez. Depende de lo que
quieras. Puedes quedarte con esa salida predecible. El valor por defecto que encuentro
está absolutamente bien. Generalmente tiendo
a dejarlo en blanco. No uso el argumento de la
temperatura a menos que quiera
controlarlo creatividad. Pero esto no es muy útil. En fin, eso depende de ti. Se puede jugar con eso. Veamos ahora los controles
de audio. Para la configuración de audio, hay prácticamente solo a, a configuraciones de voz, aumentos de estabilidad y similitud
que vimos antes. En primer lugar, el impulso de similitud. Esto es más efectivo cuando
tienes una voz personalizada
y puedes hacerlo. Creo que podrías
tener que estar en un
plan pago con 11 lámparas, pero puedes proporcionar
muestras de voz e
intentará crear una voz AI
muy similar a esa. Y así puedes usar un impulso de
similitud para que sea muy similar
o menos similar. Si lo tienes muy alto, puede
haber artefactos
creo que empiezan a aparecer. He encontrado que no
tiene mucho efecto cuando estamos usando las voces
incorporadas. número más alto suena un
poco más claro tal vez, pero existe cierto
riesgo de
que lleguen artefactos de acuerdo con
la documentación de la API. Así que lo he estado dejando
a cero y ha estado bien. El ajuste de estabilidad tiene
más de una diferencia. Y es un poco como su creatividad
ambientación de chat DBT. Controla la
expresividad de la voz. Y así un número mayor lo
hace más estable. En realidad soy un poco
aburrida. Y un número bajo es, la voz es muy expresiva. Ahora, en lugar de generar
y usar mis créditos, en realidad
he creado
dos archivos de prueba. Así que es mucho más rápido
para nosotros escuchar la diferencia entre
esos dos escenarios. Tengo un par de
archivos de muestra que he preparado aquí. Y escuchemos
el primer vínculo con la máxima
estabilidad posible de uno. Hola. Esta es una muestra de
la voz llamada Rachel de 11 laboratorios con un ajuste de
estabilidad de uno y un ajuste de
impulso de similitud de cero. Bien, Suena bastante bien, bastante natural, pero
también un poco aburrido. Entonces intentemos con un ajuste de estabilidad de
cero, que es el mínimo. Hola. Esta es una muestra de
la voz llamada Rachel de 11 laboratorios con el ajuste de
estabilidad de cero y un ajuste de
impulso de similitud de cero. Vaya, está muy
emocionada por eso. Eso es posiblemente demasiado expresivo. Lo he hecho con algunas muestras
y bajando a cero. Volvamos un segundo al
programa. Sí, el ajuste de estabilidad de cero realmente es demasiado para mí. mí me gusta 0.2. He
visto a otras personas en foros de
discusión recomendar
cualquier cosa entre 0.2 a 0.4. Así que ve con esos y
un impulso de similitud. Puedes intentar
jugar con eso, pero generalmente cero o incluso
uno va a estar bien. No hay una gran diferencia. Entonces esas son las formas en que
puedes controlar la salida de Chen GBT y el audio de los 11 labs. Solo ten cuidado porque el procesamiento de audio es
mucho más intensivo. Y por lo tanto
vas a agotar tus 11 créditos de laboratorios mucho
más rápido que los de chat GBT. Lo que recomiendo es que cada vez que generes
un nuevo archivo de audio, tal vez hagas una copia del mismo y mantengas un registro de
la estabilidad y la
configuración de abuso de similitud que
usaste para que si
se sobrescribe, aún
tengas esa copia. Se puede referir como un archivo
de muestra en el futuro. En fin, creo que ya
lo único que nos queda ahora es sólo para recapitular
lo que hemos aprendido.
8. Conclusión: Ahí vamos. Ahora ya sabe cómo
crear fácilmente un podcast impulsado por IA
a partir de solo titulares de noticias. Y ojalá hayamos aprendido
mucho a lo largo del curso. Así que recapitulemos rápidamente las habilidades específicas
que hemos cubierto. Usar Python para obtener
contenido de una fuente RSS. Generación de textos similares a humanos
usando la API de chat GPT. Conversión de texto a voz
usando la API de 11 labs. Crear un archivo de audio MP3 a partir de la salida de texto a voz. Espero que hayas disfrutado del
curso y te haya resultado útil. Ahora que lo has completado, las habilidades que has aprendido
podrían ser utilizadas para una variedad de
proyectos diferentes en el futuro. Obviamente, podrías generar
automáticamente archivos de
audio
diariamente o semanalmente, y luego subirlos a tu anfitrión de podcast
preferido. Algunos ejemplos
incluyen brote de bus, costo
simple o transistor FM. Alternativamente, podría usar el código que hemos desarrollado para usar otros
servicios en línea como generación de
imágenes o
incluso la generación de video, debería ser bastante
fácil ajustar el código para usar una variedad de API en línea. Por último, quiero agradecerles
por acompañarme en este curso. Ha sido un placer
enseñarte y por favor recuerda,
la práctica hace la perfección. Así que sigue perfeccionando
esas habilidades de codificación y crea proyectos interesantes. Y muy importante,
que te diviertas en el camino. Si tiene algún
comentario o pregunta, no
dude en dejarlos
en la sección de discusión. Y si aún no lo has hecho, considera dejar
una reseña para ayudar a otros alumnos a encontrar y
beneficiarse de este curso. Entonces eso es todo para mí. Y te deseo todo lo mejor
en tus aventuras de codificación.