Instalación de Bibliotecas Necesarias
El primer paso es instalar las bibliotecas necesarias para construir el sistema. Utilizaremos pip, el gestor de paquetes de Python, para instalar las siguientes bibliotecas:
- OpenAI Whisper: Para la transcripción de audio.
- PyTube: Para descargar videos de YouTube.
- LangChain: Para construir la aplicación basada en modelos de lenguaje.
- ChromaDB: Para la indexación de texto.
- OpenAI: Para acceder a los modelos de lenguaje de OpenAI.
Para instalar estas bibliotecas, puedes utilizar el siguiente comando:
pip install openai-whisper pytube langchain chromadb openai
Este comando instalará todas las bibliotecas necesarias en tu entorno de Python. Asegúrate de tener Python instalado y configurado correctamente antes de ejecutar este comando.
Extracción del Audio del Video de YouTube
Una vez que tenemos las bibliotecas instaladas, el siguiente paso es extraer el audio del video de YouTube. Para esto, utilizaremos la biblioteca PyTube. PyTube facilita la descarga de videos de YouTube y la extracción de sus componentes, como el audio.
Para extraer el audio, puedes utilizar el siguiente código:
from pytube import YouTube
youtube = YouTube('URL_DEL_VIDEO')
audio = youtube.streams.filter(only_audio=True).first()
output_path = '.' #Directorio actual
audio.download(output_path=output_path)
print("Descarga finalizada")
Reemplaza 'URL_DEL_VIDEO'
con la URL del video de YouTube que deseas procesar. Este código descargará el audio del video y lo guardará en el directorio actual. Asegúrate de tener suficiente espacio en disco para guardar el audio.
Transcripción del Audio con OpenAI Whisper
El siguiente paso es transcribir el audio extraído utilizando OpenAI Whisper. Whisper convertirá el audio en texto, lo que nos permitirá indexarlo y buscar información. Para transcribir el audio, puedes utilizar el siguiente código:
import whisper
model = whisper.load_model("large")
result = model.transcribe("audio.mp4")
print(result["text"])
Reemplaza "audio.mp4"
con el nombre del archivo de audio que descargaste en el paso anterior. Este código cargará el modelo Whisper y transcribirá el audio en texto. El resultado se imprimirá en la consola y también se puede guardar en un archivo para su posterior procesamiento.
Indexación del Texto con ChromaDB
Una vez que tenemos la transcripción del video, necesitamos indexarla para poder buscar información de manera eficiente. Utilizaremos ChromaDB para esto. ChromaDB es una base de datos vectorial que permite almacenar y buscar embeddings de texto.
Para indexar el texto, puedes utilizar el siguiente código:
import chromadb
client = chromadb.Client()
collection = client.create_collection("youtube_transcripts")
collection.add(
documents=[result["text"]],
ids=["transcription_1"]
)
Este código creará una colección en ChromaDB llamada youtube_transcripts
y agregará la transcripción del video a esta colección. Ahora podemos buscar información en la transcripción utilizando ChromaDB.
Creación del Sistema de Preguntas y Respuestas con LangChain
Finalmente, utilizaremos LangChain para construir el sistema de preguntas y respuestas. LangChain facilitará la integración del modelo de lenguaje con ChromaDB y nos permitirá responder a las preguntas de los usuarios.
Para crear el sistema de Q&A, puedes utilizar el siguiente código:
from langchain.llms import OpenAI
from langchain.chains import RetrievalQA
from langchain.vectorstores import Chroma
llm = OpenAI(api_key="API_KEY") #Reemplaza API_KEY
vectorstore = Chroma(collection_name="youtube_transcripts")
qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=vectorstore.as_retriever())
query = "Pregunta aquí"
qa.run(query)
Reemplaza "API_KEY"
con tu clave de API de OpenAI. Este código creará un modelo de lenguaje OpenAI, lo integrará con ChromaDB utilizando LangChain, y responderá a la pregunta que especifiques en la variable query
.