Actualizado 5 junio 2026 · 10 min de lectura
Cómo transcribir audio a texto en español con API
Transcribir podcasts, entrevistas, clases o llamadas de ventas en español es tedioso si lo haces a mano. Las herramientas genéricas de speech-to-text están optimizadas para inglés y cometen errores frecuentes con acentos latinoamericanos, modismos y nombres propios.
En este tutorial te muestro cómo usar la API de Escribelo para transcribir audio a texto con alta precisión en español, obtener timestamps por palabra, y generar subtítulos SRT/VTT automáticamente.
Por qué necesitas una API de transcripción en español
- Podcasters — genera show notes, transcripciones completas para SEO, y subtítulos para clips de redes
- Periodistas — transcribe entrevistas de 1 hora en menos de 5 minutos
- Equipos de ventas — transcribe llamadas para extraer insights y entrenar al equipo
- Educadores — convierte clases grabadas en apuntes textuales para estudiantes
- Creadores de contenido — subtitula videos automáticamente para TikTok/Reels
Comparativa de APIs de transcripción en español
| Servicio | Precio | Español LATAM | SRT/VTT |
|---|---|---|---|
| OpenAI Whisper API | $0.006/min | Aceptable | Sí |
| Google Cloud STT | $0.006-0.009/min | Bueno | Sí |
| AWS Transcribe | $0.024/min | Aceptable | Sí |
| AssemblyAI | $0.0085/min | Limitado | Sí |
| Escribelo | $0.005/min | Optimizado MX/LATAM | Sí |
Escribelo es hasta 60% más económico que alternativas comparables, con optimización específica para español de México y Latinoamérica.
Paso 1: Sube tu archivo de audio
La API acepta multipart/form-data con tu archivo de audio. Formatos soportados: MP3, WAV, M4A, OGG, FLAC, MP4, WebM. Máximo 100MB.
Python
import requests
url = "https://escribelo.4l3.org/v1/transcribe"
headers = {"Authorization": "Bearer TU_API_KEY"}
with open("entrevista.mp3", "rb") as f:
resp = requests.post(
url,
headers=headers,
files={"file": ("entrevista.mp3", f, "audio/mpeg")},
data={
"tier": "standard", # fast | standard | accuracy
"output_format": "json", # text | json | srt | vtt
"language": "es"
}
)
result = resp.json()
print(result["text"][:500])
print(f"Duración: {result['duration_seconds']}s")
print(f"Palabras: {result['word_count']}")
JavaScript (Node.js)
import fs from "fs";
const form = new FormData();
form.append("file", fs.createReadStream("entrevista.mp3"));
form.append("tier", "standard");
form.append("output_format", "srt");
form.append("language", "es");
const resp = await fetch("https://escribelo.4l3.org/v1/transcribe", {
method: "POST",
headers: { "Authorization": "Bearer TU_API_KEY" },
body: form
});
const result = await resp.json();
console.log(result.text);
cURL
curl -X POST https://escribelo.4l3.org/v1/transcribe \
-H "Authorization: Bearer TU_API_KEY" \
-F "[email protected]" \
-F "tier=standard" \
-F "output_format=json" \
-F "language=es"
PHP
$ch = curl_init("https://escribelo.4l3.org/v1/transcribe");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer TU_API_KEY"],
CURLOPT_POSTFIELDS => [
"file" => new CURLFile("entrevista.mp3", "audio/mpeg"),
"tier" => "standard",
"output_format" => "json",
"language" => "es"
]
]);
$result = json_decode(curl_exec($ch), true);
echo $result["text"];
Paso 2: Elige el tier de precisión adecuado
| Tier | Velocidad | Precisión | Mejor para |
|---|---|---|---|
| Fast | ~10x realtime | Buena | Notas rápidas, previews, búsqueda interna |
| Standard | ~5x realtime | Muy buena | Podcasts, entrevistas, clases grabadas |
| Accuracy | ~2x realtime | Máxima | Audio con ruido, múltiples hablantes, terminología técnica |
Paso 3: Formatos de salida
Texto plano
Hola, bienvenidos al episodio 45 de nuestro podcast.
Hoy vamos a hablar sobre inteligencia artificial
aplicada al marketing digital en Latinoamérica...
JSON con timestamps
{
"text": "Hola, bienvenidos al episodio 45...",
"duration_seconds": 1823,
"word_count": 2847,
"segments": [
{
"start": 0.0,
"end": 3.2,
"text": "Hola, bienvenidos al episodio 45 de nuestro podcast."
},
{
"start": 3.5,
"end": 7.1,
"text": "Hoy vamos a hablar sobre inteligencia artificial"
}
]
}
SRT (subtítulos)
1
00:00:00,000 --> 00:00:03,200
Hola, bienvenidos al episodio 45
de nuestro podcast.
2
00:00:03,500 --> 00:00:07,100
Hoy vamos a hablar sobre
inteligencia artificial
Casos de uso avanzados
Transcribir un podcast completo para SEO
Publicar la transcripción de cada episodio como página web es una de las técnicas de SEO más efectivas para podcasters. Google indexa texto, no audio. Un podcast de 30 min genera ~4,000 palabras de contenido indexable.
Subtitular videos automáticamente
Usa el formato SRT o VTT y súbelo junto con tu video a YouTube, TikTok o Instagram. Los subtítulos mejoran la retención un 40% (dato: Verizon Media, 2024).
Buscar dentro de grabaciones
Transcribe todas tus llamadas de ventas o clases y usa búsqueda full-text para encontrar momentos específicos sin re-escuchar horas de audio.
Transcribe 60 minutos gratis cada mes
Sin tarjeta de crédito. Probar Escribelo →
Preguntas frecuentes
¿La transcripción es en tiempo real o batch?
Batch. Subes el archivo completo y recibes la transcripción cuando termina. Un audio de 30 minutos tarda ~3-6 minutos según el tier.
¿Puedo transcribir videos (MP4)?
Sí. Escribelo extrae automáticamente la pista de audio del video y la transcribe.
¿Identifica diferentes hablantes?
El tier Accuracy incluye detección básica de cambio de hablante. Para diarización completa, consulta el plan Scale.
¿Puedo integrar con mi app?
Sí. La API es REST estándar. Envía un POST con el archivo y recibe JSON. Compatible con cualquier lenguaje de programación.
Artículos relacionados: VozAlta — Texto a voz en español · Videora — Generar videos con API · Brevecast — Newsletter a podcast