ChatGPT-to-Speech: cómo construir un Podcast impulsado por IA con Python | Daniel Davis | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

ChatGPT-to-Speech: cómo construir un Podcast impulsado por IA con Python

teacher avatar Daniel Davis, Making tech & photography easy

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      ¡Hola!

      1:56

    • 2.

      Preparación

      6:11

    • 3.

      Variables de medio ambiente

      4:06

    • 4.

      Grabación de contenido RSS

      6:06

    • 5.

      Uso de ChatGPT

      5:41

    • 6.

      Conversión a audio

      10:11

    • 7.

      Ajustes de configuración

      5:30

    • 8.

      Para terminar

      1:47

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

251

Estudiantes

--

Proyecto

Acerca de esta clase

¿Te interesa aprender cómo construir un generador de podcast basado en IA para convertir titulares de noticias en archivos de audio que se pueden publicar en podcasts? Si es así, ¡este curso es perfecto para ti!

En este curso, aprenderás cómo usar Python con las API de ChatGPT y ElevenLabs para desarrollar un generador de podcast automatizado que puede convertir los titulares de noticias en archivos de audio hablados de alta calidad. El contenido es fácil de seguir con explicaciones claras.

Las habilidades que aprenderás incluyen:

  • Uso de Python para obtener contenido desde un feed RSS

  • Generación de texto similar a la persona con la API de ChatGPT

  • Conversión de texto en voz con la API de ElevenLabs

  • Creación de un archivo de audio MP3 desde la salida de texto a voz

Al final de este curso, tendrás una comprensión de cómo usar las API en línea para crear aplicaciones basadas en IA, así como la capacidad de crear un generador de podcast funcional desde cero. Posteriormente, podrías cargar los archivos de audio resultantes en un servicio de podcast o adaptar el programa para generar otras formas de contenido, como imágenes o video.

Ya seas un principiante o un programador experimentado, este curso está diseñado para ayudarte a desarrollar las habilidades que necesitas para crear tus propias aplicaciones basadas en IA. Entonces, ¿por qué esperar? ¡Toma el curso ahora y comienza a crear tu propio generador de podcast hoy mismo!

Conoce a tu profesor(a)

Teacher Profile Image

Daniel Davis

Making tech & photography easy

Profesor(a)


Born in the UK and now living in Japan, I'm a programmer/web developer and a long-time amateur photographer.

Having taught English and computing in the past, I'm building on my experiences to teach subjects where I feel I can help others, concentrating on making technical and creative processes as easy as possible.

My other interests include baking, anything tech-related, and sitting on the sofa strumming a ukulele. 

 

 

Ver perfil completo

Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

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.