Speech to text (stt)

Intermedio
OpenAI
OpenAI
Actualizado: 02/07/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

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.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

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

⭐⭐⭐⭐⭐
4.9/5 valoración