De una grabación a transcripción, capítulos y notas, todo en local
Un flujo para convertir una conversación grabada (podcast, entrevista, reunión) en transcripción por hablante, capítulos y notas con Whisper y un modelo local, con revisión humana antes de publicar.

Si grabas conversaciones —un podcast, entrevistas, reuniones— este flujo te lleva del audio crudo a una transcripción por hablante, capítulos y notas listas para revisar, sin subir el audio a ningún servicio. Es el que vamos a usar para nuestro podcast; los tiempos concretos dependerán de tu máquina y del modelo.
El flujo completo
1. GRABACIÓN → una pista por persona
2. TRANSCRIPCIÓN → Whisper large-v3 local
3. LIMPIEZA → LLM local quita muletillas, marca hablantes
4. SHOW NOTES → LLM propone resumen, títulos, capítulos, links
5. WEB → Markdown + frontmatter → Astro build
6. PUBLICACIÓN → rsync al servidor → live
Pieza 1: Transcripción con diarización ligera
Whisper transcribe, pero no distingue quién habla por sí solo. Una opción controlable es grabar cada micrófono en un canal o pista separada con Audacity/OBS, transcribir cada pista por separado y unir los segmentos por timestamp:
from faster_whisper import WhisperModel
model = WhisperModel("large-v3", device="cuda", compute_type="float16")
for pista, hablante in [("ana.wav", "Ana"), ("luis.wav", "Luis")]:
segments, _ = model.transcribe(pista, language="es")
for s in segments:
print(f"[{s.start:.1f}] {hablante}: {s.text}")
Luego se ordenan todos los segmentos por start y ya tienes el diálogo completo.
Pieza 2: Show notes con el LLM local
Pásale la transcripción a tu modelo con este prompt. La calidad depende del modelo y de la revisión humana:
Eres el editor de un podcast. Con esta transcripción, genera en Markdown:
1. Título del episodio: gancho, máximo 8 palabras, sin clickbait.
2. Descripción: 2 frases para iTunes/web.
3. Capítulos con timestamps: "## 12:34 Título del tema" (usa los timestamps reales).
4. Menciones: herramientas, modelos y links mencionados en lista.
5. 3 frases destacables para redes sociales.
Transcripción:
<pega aquí la transcripción>
Pieza 3: El frontmatter automático
Otro prompt que convierte las show notes en el frontmatter de la web:
Convierte esto a frontmatter YAML válido para un post:
- title (sin comillas dobles internas)
- description (máximo 160 caracteres)
- pubDate: AAAA-MM-DD de hoy
- tags: máximo 4
Devuelve SOLO el bloque YAML entre ---.
Juntas ambos, revisas cada nombre y timestamp, pegas el Markdown debajo, lo guardas en la carpeta de contenido de tu web y ejecutas el build y el despliegue:
npm run build
# y despliega (nosotros lo hacemos con un git push: ver la guía «Desplegar con un git push»)
Pieza 4: El botón final (n8n)
Todo lo anterior podría encadenarse en un workflow n8n: carpeta watch → Whisper → LLM → genera Markdown → revisión humana → build → deploy. La automatización no publicará nada sin una aprobación explícita.
Lo que todavía hacemos a mano (y por qué)
- Revisar la transcripción: los nombres propios y anglicismos pueden salir mal. La revisión humana evita que un error llegue a la web.
- Aprobar las show notes: el modelo puede proponer un resumen, pero los títulos y los enlaces los elegimos nosotros. La IA propone, el humano decide.
- El audio no se toca: ni EQ ni magia. La limpieza de audio es otro oficio.
Qué medir para saber si te compensa
- Tiempo de transcripción por hora de audio con tu máquina y tu modelo de Whisper
- Tiempo de generación de las notas con tu modelo local
- Tiempo humano de revisión, y dónde cambia de verdad el resultado
Si solo quieres la parte de transcribir, tienes la receta corta en transcribe audio con Whisper.