Escribelo

Actualizado 6 junio 2026 · 8 min de lectura

Cómo convertir audios de WhatsApp a texto en español

Todos hemos recibido esa nota de voz de 7 minutos que no podemos escuchar en el momento. O peor: un hilo de 15 audios de un cliente explicando un proyecto. Convertir esos audios a texto te ahorra tiempo y te permite buscar, copiar y responder con precisión.

En este tutorial te muestro cómo transcribir notas de voz de WhatsApp a texto en español usando la API de Escribelo — incluyendo cómo automatizarlo si manejas muchos audios.

¿Por qué transcribir audios de WhatsApp?

Paso 1: Exportar el audio de WhatsApp

En Android

  1. Abre la conversación en WhatsApp
  2. Mantén presionado el mensaje de audio
  3. Toca el icono de compartir (↗)
  4. Elige "Guardar en archivos" o envíatelo por email
  5. El archivo se guarda como .opus

En iPhone

  1. Mantén presionado el mensaje de audio
  2. Selecciona "Reenviar"
  3. Reenviálo a tu propio número o a un email
  4. Desde el email, descarga el archivo .opus o .ogg

Tip: en Android también puedes encontrar los audios directamente en /storage/emulated/0/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp Voice Notes/

Paso 2: Envía a la API de Escribelo

Escribelo acepta archivos .opus y .ogg directamente — no necesitas convertir a MP3 primero.

Python

import requests

url = "https://escribelo.4l3.org/v1/transcribe"
headers = {"Authorization": "Bearer TU_API_KEY"}

with open("AUD-20260606-WA0023.opus", "rb") as f:
    resp = requests.post(
        url,
        headers=headers,
        files={"file": ("audio.opus", f, "audio/ogg")},
        data={
            "tier": "fast",          # notas de voz cortas = fast es suficiente
            "output_format": "text", # texto plano directo
            "language": "es"
        }
    )

print(resp.json()["text"])

cURL

curl -X POST https://escribelo.4l3.org/v1/transcribe \
  -H "Authorization: Bearer TU_API_KEY" \
  -F "[email protected]" \
  -F "tier=fast" \
  -F "output_format=text" \
  -F "language=es"

JavaScript

const form = new FormData();
form.append("file", fs.createReadStream("AUD-20260606-WA0023.opus"));
form.append("tier", "fast");
form.append("output_format", "text");
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 { text } = await resp.json();
console.log(text);

Paso 3: Automatizar la transcripción de múltiples audios

Si recibes muchos audios de clientes o proveedores, puedes automatizar la transcripción de toda una carpeta:

import requests
from pathlib import Path

API_URL = "https://escribelo.4l3.org/v1/transcribe"
HEADERS = {"Authorization": "Bearer TU_API_KEY"}
AUDIO_DIR = Path("./audios_whatsapp")

for audio in sorted(AUDIO_DIR.glob("*.opus")):
    with open(audio, "rb") as f:
        resp = requests.post(
            API_URL,
            headers=HEADERS,
            files={"file": (audio.name, f, "audio/ogg")},
            data={"tier": "fast", "output_format": "text", "language": "es"}
        )

    if resp.status_code == 200:
        texto = resp.json()["text"]
        print(f"\n{'='*50}")
        print(f"Archivo: {audio.name}")
        print(f"{'='*50}")
        print(texto)

        # Guardar transcripción
        txt_path = audio.with_suffix(".txt")
        txt_path.write_text(texto, encoding="utf-8")
    else:
        print(f"Error en {audio.name}: {resp.status_code}")

Caso de uso: bot de WhatsApp que transcribe automáticamente

Si quieres que cada audio que recibas en un número de WhatsApp Business se transcriba y te llegue como mensaje de texto, puedes conectar la API de WhatsApp Business con Escribelo:

# Webhook que recibe mensajes de WhatsApp Business API
from fastapi import FastAPI, Request
import requests

app = FastAPI()

@app.post("/webhook/whatsapp")
async def handle_whatsapp(request: Request):
    data = await request.json()

    for message in data.get("messages", []):
        if message["type"] == "audio":
            # Descargar el audio
            media_url = message["audio"]["url"]
            audio = requests.get(media_url).content

            # Transcribir con Escribelo
            resp = requests.post(
                "https://escribelo.4l3.org/v1/transcribe",
                headers={"Authorization": "Bearer TU_API_KEY"},
                files={"file": ("audio.ogg", audio, "audio/ogg")},
                data={"tier": "fast", "output_format": "text", "language": "es"}
            )

            texto = resp.json()["text"]

            # Responder con la transcripción
            send_whatsapp_message(
                to=message["from"],
                text=f"Transcripción:\n{texto}"
            )

    return {"status": "ok"}

Comparativa: apps para transcribir WhatsApp

AppPrecioEspañol LATAMAutomatizable
Transcriber for WhatsApp (app)$3.99 USDBásicoNo
VoicepopFree + $4.99/mesAceptableNo
WhisperAI (local)FreeBuenoSí (requiere GPU)
EscribeloFree 60 min/mesOptimizado MXSí (API REST)

Transcribe 60 minutos de audio gratis cada mes

Acepta .opus de WhatsApp directamente. Probar Escribelo →

Preguntas frecuentes

¿Necesito convertir el .opus a MP3 antes?

No. Escribelo acepta .opus y .ogg directamente. No necesitas FFmpeg ni ningún conversor.

¿Funciona con audios de WhatsApp Web?

Sí. Los audios descargados desde WhatsApp Web son el mismo formato .opus. Solo arrastra el archivo o descarga y envía a la API.

¿Puedo transcribir audios de Telegram también?

Sí. Telegram usa formato .ogg que Escribelo soporta nativamente.

Artículos relacionados: Transcribir audio a texto con API · Transcribir podcast a show notes · VozAlta — Texto a voz