
Whisper para transcripción de llamadas: voz a texto preciso para llamadas telefónicas
Eric King
Author
La transcripción de llamadas telefónicas es uno de los casos de uso más habituales y valiosos del habla a texto. OpenAI Whisper encaja especialmente bien gracias a su robustez ante el ruido, los acentos y la calidad de audio imperfecta.
Este artículo explica cómo usar Whisper para transcribir llamadas, incluidos formatos de audio, separación de hablantes, optimización de la precisión y patrones de despliegue reales.
¿Por qué Whisper para transcripción de llamadas?
En comparación con los motores ASR tradicionales, Whisper rinde bien en:
- Audio telefónico de baja calidad (8 kHz)
- Acentos y hablantes no nativos
- Ruido de fondo
- Conversaciones largas (10–120 minutos)
- Llamadas multilingües y cambio de idioma
Casos de uso típicos:
- Registros de llamadas de soporte al cliente
- Análisis de llamadas de ventas
- Control de calidad y cumplimiento
- Resúmenes e insights de llamadas
- Automatización del CRM
Pipeline típica de transcripción de llamadas
Call (PSTN / VoIP)
↓
Call Recording (WAV / MP3)
↓
Preprocessing (resample, channel split)
↓
Whisper Transcription
↓
Speaker Diarization (optional)
↓
Post-processing (punctuation, timestamps, summaries)
Formatos de audio: qué funciona mejor
Ajustes recomendados
| Parámetro | Valor |
|---|---|
| Frecuencia de muestreo | 8 kHz o 16 kHz |
| Canales | Mono o estéreo |
| Formato | WAV (preferido), FLAC |
| Profundidad de bits | PCM de 16 bits |
Whisper remuestrea internamente, pero una entrada limpia mejora la precisión.
Llamadas en mono frente a estéreo
Mono (lo más habitual)
- Ambos hablantes mezclados en un solo canal
- Pipeline más sencilla
- Más difícil separar hablantes
Ideal para:
- Transcripción sencilla
- Búsqueda y archivo
Estéreo (mejor práctica)
- Agente en el canal izquierdo
- Cliente en el canal derecho
Ventajas:
- Separación clara de hablantes
- No hace falta diarización
- Mayor precisión en pasos posteriores
# Split stereo call into two mono tracks
import torchaudio
audio, sr = torchaudio.load("call.wav")
agent = audio[0]
customer = audio[1]
Luego transcribe cada canal por separado.
Diarización de hablantes con Whisper
Whisper no incluye diarización de forma nativa, pero puedes combinarlo con:
- Pyannote.audio
- VAD de WebRTC + clustering
- Separación por canal (preferida)
Enfoque habitual:
- Ejecutar el modelo de diarización
- Dividir el audio por segmentos de hablante
- Transcribir cada segmento con Whisper
- Fusionar resultados con etiquetas de hablante
Mejores modelos Whisper para llamadas
| Modelo | Precisión | Velocidad | Recomendado |
|---|---|---|---|
| base | Media | Rápida | ❌ Llamadas cortas |
| small | Alta | Media | ✅ La mayoría de casos |
| medium | Muy alta | Más lenta | ✅ Cumplimiento |
| large-v3 | Excelente | Lenta | ✅ Legal / QA |
Recomendación: small o medium para centros de llamadas
Llamadas largas (30–120 minutos)
En llamadas largas, evita pasar todo el audio de una sola vez.
Mejor práctica
- Divide el audio en segmentos de 2–5 minutos
- Usa solapamientos pequeños (5–10 segundos)
- Conserva las marcas de tiempo
result = model.transcribe(
audio_chunk,
condition_on_previous_text=True
)
Así se mantiene el contexto entre trozos.
Mejorar la precisión en llamadas telefónicas
1. Normalizar el audio
- Eliminar silencios
- Normalizar el volumen
- Aplicar reducción de ruido si hace falta
2. Usar pistas de idioma
model.transcribe(audio, language="en")
3. Activar FP16 en GPU
Inferencia más rápida y estable.
4. Evitar trozos demasiado pequeños
Los fragmentos muy cortos reducen contexto y precisión.
Transcripción de llamadas en tiempo real frente a por lotes
| Modo | Caso de uso |
|---|---|
| Tiempo real | Monitorización en vivo, alertas |
| Casi en tiempo real | Paneles de QA |
| Por lotes | Analítica, archivo |
La mayoría de los centros de llamadas usan casi en tiempo real o por lotes por estabilidad y coste.
Escalar Whisper en centros de llamadas
Escala pequeña (≤ 100 llamadas/día)
- Un servidor con GPU
- Whisper small
Escala media (1k–10k llamadas/día)
- Pool de GPUs
- Cola de trabajos asíncrona (RabbitMQ / Kafka)
- Procesamiento por trozos
Escala grande (empresa)
- Varios nodos GPU
- Servicio de preprocesamiento de audio
- Pipelines de transcripción y resumen
Postprocesamiento y extracción de valor
Tras la transcripción, los pasos habituales incluyen:
- Puntuación de frases
- Etiquetado de hablantes
- Extracción de palabras clave
- Análisis de sentimiento
- Resúmenes de llamadas (LLMs)
- Integración con el CRM
Whisper frente a APIs en la nube para llamadas
| Aspecto | Whisper | APIs en la nube |
|---|---|---|
| Coste | Bajo (autohospedado) | Alto |
| Privacidad de datos | Control total | Depende del proveedor |
| Precisión | Muy alta | Alta |
| Personalización | Total | Limitada |
Whisper encaja en equipos que necesitan privacidad, control de costes y personalización.
Conclusión
Whisper es una opción potente para transcribir llamadas, sobre todo para:
- Soporte al cliente
- Ventas y control de calidad
- Sectores con mucho cumplimiento normativo
Con un buen manejo del audio, troceado y diarización opcional, Whisper puede ofrecer transcripción de llamadas a nivel de producción a escala.
