Actualizado 6 junio 2026 · 14 min de lectura
Cómo generar actas de reunión automáticas con IA en español
El 73% de los profesionales considera que las reuniones son improductivas (Harvard Business Review). Parte del problema es que los acuerdos se pierden porque nadie toma notas adecuadas. La solución no es más reuniones, sino extraer automáticamente los acuerdos y acciones de cada reunión.
En este tutorial te muestro cómo construir un pipeline que toma una grabación de Zoom/Meet/Teams, la transcribe con Escribelo, y genera un acta formateada con resumen, decisiones y action items.
¿Por qué automatizar las actas?
- Nadie quiere ser el que toma notas — con automatización, todos participan
- Las notas manuales son incompletas — la IA captura el 100% de lo dicho
- Los acuerdos se pierden — un email con action items garantiza seguimiento
- Ahorro de tiempo — 15-30 min/reunión tomando notas × 5 reuniones/semana = 2.5 horas/semana perdidas
- Registro histórico — busca qué se decidió en la reunión del 15 de marzo con texto plano
El pipeline completo: grabación → acta
Paso 1: Grabar la reunión
Cada plataforma tiene su propia forma de grabar:
| Plataforma | Cómo grabar | Formato resultante |
|---|---|---|
| Zoom | Botón "Grabar" → grabación local | MP4 (video) + M4A (audio separado) |
| Google Meet | Requiere Google Workspace. Menú → Grabar | MP4 en Google Drive |
| Microsoft Teams | Menú → Iniciar grabación | MP4 en OneDrive/SharePoint |
| Teléfono | App de grabación (ej. Easy Voice Recorder) | M4A o MP3 |
Tip: Zoom permite grabar solo el audio (M4A), que es más liviano y se transcribe igual de bien que el video completo.
Paso 2: Transcribir con Escribelo
import requests
def transcribir_reunion(archivo_audio: str) -> dict:
"""Transcribe una grabación de reunión con detección de hablantes."""
url = "https://escribelo.4l3.org/v1/transcribe"
headers = {"Authorization": "Bearer TU_API_KEY"}
with open(archivo_audio, "rb") as f:
resp = requests.post(
url,
headers=headers,
files={"file": (archivo_audio, f)},
data={
"tier": "accuracy", # máxima precisión + detección de hablantes
"output_format": "json", # timestamps + speaker labels
"language": "es"
}
)
return resp.json()
# Uso
resultado = transcribir_reunion("zoom_2026-06-06_standup.m4a")
print(f"Duración: {resultado['duration_seconds'] // 60} min")
print(f"Palabras: {resultado['word_count']}")
print(f"Segmentos: {len(resultado['segments'])}")
Paso 3: Generar acta con IA
Toma la transcripción y pasála por un LLM para extraer la estructura del acta:
import requests
import json
def generar_acta(transcripcion: dict, participantes: list = None) -> str:
"""Genera un acta de reunión desde una transcripción."""
# Formatear transcripción para el prompt
texto = ""
for seg in transcripcion["segments"]:
speaker = seg.get("speaker", "Desconocido")
texto += f"{speaker}: {seg['text']}\n"
prompt = f"""Eres un asistente que genera actas de reunión profesionales en español.
A partir de la siguiente transcripción, genera un acta con:
1. **Resumen ejecutivo** (3-5 oraciones)
2. **Temas tratados** (lista con bullets)
3. **Decisiones tomadas** (lista numerada)
4. **Action items** (tabla: responsable | acción | fecha límite)
5. **Próxima reunión** (si se mencionó)
TRANSCRIPCIÓN:
{texto[:8000]}"""
# Usar cualquier LLM (OpenAI, Anthropic, local, etc.)
resp = requests.post(
"https://api.openai.com/v1/chat/completions",
headers={
"Authorization": "Bearer TU_OPENAI_KEY",
"Content-Type": "application/json"
},
json={
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": prompt}],
"temperature": 0.3
}
)
return resp.json()["choices"][0]["message"]["content"]
# Pipeline completo
transcripcion = transcribir_reunion("zoom_standup.m4a")
acta = generar_acta(transcripcion)
print(acta)
Ejemplo de acta generada
# Acta de Reunión — Standup Equipo Marketing
**Fecha**: 6 de junio de 2026
**Duración**: 25 minutos
**Participantes**: Ana (PM), Carlos (Diseño), Laura (Dev)
## Resumen Ejecutivo
Se revisó el avance del rediseño de la landing page.
Carlos presentó 3 opciones de layout. El equipo eligió
la opción B con ajustes menores. Laura estima 3 días
para implementar.
## Decisiones
1. Se aprueba layout opción B con colores de la opción A
2. Lanzamiento programado para el 12 de junio
3. Se cancela la versión en inglés por ahora
## Action Items
| Responsable | Acción | Fecha |
|-------------|--------------------------------|-----------|
| Carlos | Ajustar mockup con feedback | 7 jun |
| Laura | Implementar landing en staging | 10 jun |
| Ana | Preparar copy final | 9 jun |
## Próxima reunión
Lunes 9 de junio, 10:00 AM
Paso 4: Distribuir automáticamente
import smtplib
from email.mime.text import MIMEText
def enviar_acta(acta: str, destinatarios: list, asunto: str):
"""Envía el acta por email al equipo."""
msg = MIMEText(acta, "plain", "utf-8")
msg["Subject"] = asunto
msg["From"] = "[email protected]"
msg["To"] = ", ".join(destinatarios)
with smtplib.SMTP("smtp.tuproveedor.com", 587) as s:
s.starttls()
s.login("user", "pass")
s.send_message(msg)
# Enviar
enviar_acta(
acta=acta,
destinatarios=["[email protected]", "[email protected]", "[email protected]"],
asunto="Acta Standup Marketing — 6 jun 2026"
)
Comparativa de herramientas para actas automáticas
| Herramienta | Precio | Español | Personalizable |
|---|---|---|---|
| Otter.ai | $16.99/mes | Limitado | No — formato fijo |
| Fireflies.ai | $18/mes | Básico | Parcial |
| tl;dv | $25/mes | Aceptable | No |
| Escribelo + LLM | $9/mes + LLM | Optimizado MX | 100% — tu prompt, tu formato |
La ventaja de usar Escribelo + tu propio LLM es que controlas al 100% el formato del acta, qué extraes, y cómo lo distribuyes. Las herramientas integradas (Otter, Fireflies) son más fáciles de configurar, pero menos flexibles y peores en español.
Automatiza tus actas de reunión
60 min/mes gratis. Transcripción con hablantes + timestamps. Probar Escribelo →
Preguntas frecuentes
¿Necesito un LLM para generar el acta?
Solo si quieres resumen + action items automáticos. Si solo necesitas la transcripción, Escribelo es suficiente. El acta requiere un paso adicional de procesamiento de lenguaje natural.
¿Funciona con reuniones presenciales?
Sí. Graba con tu teléfono usando cualquier app de grabación. Coloca el teléfono al centro de la mesa para captar a todos los participantes.
¿Los datos de la reunión son privados?
Sí. Escribelo procesa el audio y lo elimina en 24 horas. No se usa para entrenar modelos. Si manejas datos sensibles, puedes usar el tier on-premise (próximamente).
Artículos relacionados: Transcribir reuniones Zoom · Transcribir entrevistas · Reportia — Generar PDFs