Speech-to-Text con Whisper: transcripción y traducción
La API de Audio de OpenAI ofrece capacidades avanzadas de conversión de voz a texto mediante diferentes modelos especializados. Esta funcionalidad permite tanto transcribir audio en su idioma original como traducir automáticamente el contenido a inglés, proporcionando flexibilidad para aplicaciones multilingües.
Modelos disponibles para transcripción
OpenAI proporciona tres modelos principales para el procesamiento de audio:
- whisper-1: El modelo original basado en Whisper de código abierto, que ofrece compatibilidad completa con todos los parámetros y formatos de salida
- gpt-4o-mini-transcribe: Versión optimizada que combina la arquitectura GPT-4o con capacidades de transcripción mejoradas
- gpt-4o-transcribe: El modelo más avanzado para transcripción, ofreciendo la mayor calidad y precisión
Los modelos más recientes (gpt-4o-mini-transcribe y gpt-4o-transcribe) proporcionan mejor calidad pero con un conjunto limitado de parámetros, soportando únicamente formatos de respuesta JSON y texto plano.
Transcripción básica de audio
La transcripción convierte el audio a texto manteniendo el idioma original del contenido. El proceso es directo y requiere únicamente el archivo de audio y la especificación del modelo:
from openai import OpenAI
client = OpenAI()
# Transcripción básica con el modelo más avanzado
with open("conferencia.mp3", "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=audio_file
)
print(transcription.text)
Para casos donde necesites mayor control sobre el formato de salida, puedes especificar el response_format:
# Transcripción con formato de texto plano
with open("entrevista.wav", "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=audio_file,
response_format="text"
)
print(transcription) # Devuelve directamente el texto
Traducción automática a inglés
La traducción no solo transcribe el audio, sino que también convierte automáticamente el contenido a inglés, independientemente del idioma original. Esta funcionalidad utiliza exclusivamente el modelo whisper-1:
# Traducir audio en español a texto en inglés
with open("presentacion_espanol.mp3", "rb") as audio_file:
translation = client.audio.translations.create(
model="whisper-1",
file=audio_file
)
print(translation.text)
# Salida: "Good morning, today we will discuss artificial intelligence..."
Mejora de transcripciones con prompts
Los modelos gpt-4o-transcribe y gpt-4o-mini-transcribe permiten utilizar prompts para mejorar la precisión de la transcripción, especialmente útil para terminología específica o contextos particulares:
# Transcripción con contexto específico
with open("reunion_tecnica.mp3", "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=audio_file,
prompt="Esta reunión trata sobre desarrollo de APIs REST, microservicios, Docker y Kubernetes."
)
print(transcription.text)
El prompt es especialmente efectivo para:
- Corregir acrónimos y términos técnicos que el modelo podría malinterpretar
- Mantener contexto entre segmentos de audio divididos
- Preservar puntuación y formato específico del texto
- Incluir palabras de relleno si son relevantes para el análisis
Manejo de archivos de gran tamaño
Guarda tu progreso
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
Los archivos de audio están limitados a 25 MB. Para archivos más grandes, es necesario dividirlos en segmentos más pequeños:
from pydub import AudioSegment
# Dividir archivo de audio largo
audio = AudioSegment.from_mp3("conferencia_larga.mp3")
# Dividir en segmentos de 10 minutos
diez_minutos = 10 * 60 * 1000 # PyDub maneja tiempo en milisegundos
segmentos = []
for i in range(0, len(audio), diez_minutos):
segmento = audio[i:i + diez_minutos]
nombre_archivo = f"segmento_{i//diez_minutos + 1}.mp3"
segmento.export(nombre_archivo, format="mp3")
segmentos.append(nombre_archivo)
# Transcribir cada segmento
transcripciones = []
for archivo in segmentos:
with open(archivo, "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=audio_file
)
transcripciones.append(transcription.text)
# Combinar todas las transcripciones
texto_completo = " ".join(transcripciones)
Formatos de archivo compatibles
La API soporta múltiples formatos de audio comunes:
- mp3: Formato comprimido más utilizado
- wav: Audio sin compresión, ideal para calidad máxima
- m4a: Formato de Apple, común en dispositivos iOS
- mp4: Contenedores de video con pista de audio
- webm: Formato web moderno
- mpga y mpeg: Formatos MPEG de audio
# Ejemplo con diferentes formatos
formatos_audio = ["grabacion.wav", "podcast.mp3", "llamada.m4a"]
for archivo in formatos_audio:
with open(archivo, "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="gpt-4o-mini-transcribe",
file=audio_file,
response_format="text"
)
print(f"Transcripción de {archivo}:")
print(transcription)
print("-" * 50)
Consideraciones de idioma
La API soporta más de 50 idiomas con alta precisión, incluyendo español, inglés, francés, alemán, japonés, chino y muchos otros. Para obtener mejores resultados con idiomas específicos, puedes incluir indicaciones en el prompt:
# Transcripción optimizada para español
with open("conferencia_madrid.mp3", "rb") as audio_file:
transcription = client.audio.transcriptions.create(
model="gpt-4o-transcribe",
file=audio_file,
prompt="Transcripción en español de una conferencia sobre inteligencia artificial."
)
print(transcription.text)
Aprendizajes de esta lección
- Comprender los diferentes modelos disponibles para transcripción de audio en la API de OpenAI.
- Aprender a realizar transcripciones básicas y traducciones automáticas de audio a texto.
- Utilizar prompts para mejorar la precisión y contexto de las transcripciones.
- Manejar archivos de audio grandes dividiéndolos en segmentos para su procesamiento.
- Conocer los formatos de audio compatibles y las consideraciones de idioma para optimizar resultados.
Completa OpenAI y certifícate
Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.
Asistente IA
Resuelve dudas al instante
Ejercicios
Practica con proyectos reales
Certificados
Valida tus conocimientos
Más de 25.000 desarrolladores ya se han certificado con CertiDevs