Explorando la inteligencia artificial y OpenAI con Python

0 of 25 lessons complete (0%)

Extracción de audio de video.

Configurando solicitud a OpenAI. Prt 2

You don’t have access to this lesson

Please register or sign in to access the course content.

Aquí está el código completo con la validación de la opción seleccionada por el usuario:

if opcion in opciones:
    if opcion == 5:
        prompt_personalizado = input("Introduzca el comando personalizado: ")
        prompt = prompt_personalizado + f"{result['text']}"
    else:
        prompt = f"{opciones[opcion]}: '{result['text']}'"
else:
    print("Opción inválida. Inténtelo de nuevo.")

Este código verifica si la opción seleccionada por el usuario está presente en el diccionario de opciones. Si es así, se procede con la validación adicional dentro del bloque de código. En el caso de que la opción sea 5 (Introducir un comando personalizado), se solicita al usuario que ingrese el comando personalizado y se construye el prompt concatenando el comando personalizado con el texto extraído del video. Si la opción no es 5, simplemente se construye el prompt utilizando el valor correspondiente del diccionario de opciones.

Si el usuario introduce una opción no válida, se imprime un mensaje de error.

Todo nuestro código que llevamos hasta el momento se debería de ver así:

import openai
import sys
import os
import whisper
import yt_dlp

def descargar_youtube(url):
    title = input("Ingresa el nuevo nombre de tu video a analizar: ")

    ydl_opts = {
        'format': 'best',
        'outtmpl': f'{title}.%(ext)s',
        'noplaylist': True,
        'download': False 
    }

    with yt_dlp.YoutubeDL(ydl_opts) as ydl:
        ydl.download([url])  
       
    title = title + f".mp4"
    return title

print("¿Qué tipo de video desea analizar?")
print("1. Video descargado")
print("2. Video de YouTube")
opcion = int(input("Elija una opción: "))

if opcion == 1:
    archivo_video = input("Ingrese el nombre del video: ")
elif opcion == 2:
    url = input("Ingrese la URL del video de YouTube: ")
    archivo_video = descargar_youtube(url)
else:
    print("Opción no válida.")
    sys.exit()

nombre_archivo = os.path.splitext(archivo_video)[0]
carpeta = nombre_archivo
if not os.path.exists(carpeta):
    os.makedirs(carpeta)

archivo_audio = f"{carpeta}/{nombre_archivo}.wav"
os.system(f'ffmpeg -i "{archivo_video}" -vn "{archivo_audio}"')

model = whisper.load_model("base")
result = model.transcribe(archivo_audio)
archivo_texto = f"{carpeta}/{nombre_archivo}.txt"
 
with open(archivo_texto, 'w') as f:
    f.write(result["text"])
print(f"Transcripción guardada en {archivo_texto}")

opciones = {
    1: "Crea un resumen de este texto",
    2: "Crea un artículo original basado en este texto",
    3: "Crea un post para redes sociales basado en este texto",
    4: "Crea un correo basado en este texto",
    5: "Introduce un comando personalizado"
}
opcion = int(input("¿Qué desea hacer con la información del video?\n1. Crear un resumen\n2. Crear un artículo original\n3. Crear un post para redes sociales\n4. Crear un correo\n5. Introducir un comando personalizado\nElija una opción: "))

openai.api_key = "TU-API"

if opcion in opciones:
    if opcion == 5:
        prompt_personalizado = input("Introduzca el comando personalizado: ")
        prompt = prompt_personalizado + f"{result['text']}"
    else:
        prompt = f"{opciones[opcion]}: '{result['text']}'"
else:
    print("Opción inválida. Inténtelo de nuevo.")

Nota del maestro: Recuerda que este curso es gratuito y no cuenta con soporte. Si tienes problemas o dudas, puedes escribirme en Twitter haciendo clic aquí y esperar a que tenga un tiempo libre para poder contestarte. También puedes considerar tomar el curso profesional en nuestra plataforma de Azul School, que incluye soporte prioritario para todos nuestros cursos y muchos más beneficios. Haz clic aquí para comprar tu membresía anual u obtener más información al respecto.