Sesión 6 · CEOGET · Diego Jerez
Transcripción de Voz a Texto
para Atención al Ciudadano
Pedimos permiso para grabar una reunión con ciudadanos. Ahora la necesitamos transcribir. Aquí exploramos dos caminos, tú eliges el que mejor se adapta a tu entorno.
🎯 ¿Por qué transcribir reuniones en la alcaldía?
Una reunión con ciudadanos puede contener peticiones, quejas, sugerencias o compromisos que deben quedar documentados. Transcribir el audio con IA nos permite construir actas más rápido, alimentar la base de conocimiento y garantizar trazabilidad sin perder tiempo en dictado manual.
Elige tu ruta: dos opciones, mismo resultado
Ruta A · Sin código
Adobe Enhance Speech
Sube tu audio, descarga texto limpio

Adobe Enhance Speech es una herramienta web gratuita (con cuenta Adobe) que mejora la calidad del audio y genera una transcripción lista para copiar. Ideal para hacer la demo en vivo sin configuración técnica.

1
Entrar al sitio con tu cuenta Adobe (o crear una gratis)
2
Subir el archivo de audio de la reunión (.mp3 / .wav / .m4a)
3
Esperar que mejore la calidad y genere la transcripción
4
Copiar el texto o descargarlo como .txt
5
Pegar en Claude o ChatGPT para generar el acta resumida
🌐 Web · sin instalación ✨ Mejora calidad de audio 🆓 Gratis con cuenta Adobe ⚡ Rápido para demos
✨ Ir a Adobe Enhance Speech
⚙️
Ruta B · Google Colab
OpenAI Whisper
Paso a paso con Python — el profe guía en vivo
0
Abrir Google Colab y activar GPU

Ir a colab.research.google.com → Crear nuevo cuaderno → Menú Entorno de ejecuciónCambiar tipo de entorno → Acelerador de hardware: GPU → Guardar.

¿Por qué GPU? Whisper usa redes neuronales Transformer. Con GPU la inferencia es 5–10× más rápida. En CPU funciona, pero puede tardar varios minutos por audio largo.
1
Instalar Whisper y ffmpeg

Ejecutar esta celda. La primera vez tarda ~2 minutos mientras descarga las dependencias.

bash · celda 1
# Instalar OpenAI Whisper desde el repositorio oficial
!pip install git+https://github.com/openai/whisper.git -q

# Instalar ffmpeg (necesario para procesar audio)
!sudo apt-get update -qq
!sudo apt-get install -y ffmpeg -qq

print("✅ Instalación completada")
¿Qué es Whisper? Un modelo Transformer de OpenAI entrenado con 680 000 horas de audio multilingüe. Transcribe español, detecta idioma automáticamente y añade puntuación — algo que los sistemas comerciales clásicos no logran bien.
2
Subir el archivo de audio

Esta celda abre un diálogo para subir el audio desde tu computador (grabación de la reunión, .mp3 o .wav).

python · celda 2
from google.colab import files

# Subir audio desde tu computador
uploaded = files.upload()

# Obtener el nombre del archivo
audio_file = list(uploaded.keys())[0]
print(f"📂 Archivo cargado: {audio_file}")
Privacidad: Recuerda que tienes el permiso de los participantes de la reunión para grabar y procesar el audio. Nunca subas grabaciones sin consentimiento previo.
3
Transcribir con Whisper

Cargamos el modelo medium (buena relación velocidad/precisión) y transcribimos. Whisper detecta el idioma automáticamente.

python · celda 3
import whisper

# Cargar modelo  (opciones: tiny · base · small · medium · large)
# medium = buena precisión en español, carga en ~30s con GPU
model = whisper.load_model("medium")

print("🔍 Transcribiendo... (esto puede tardar unos segundos)")

# Transcribir · task="transcribe" mantiene el idioma original
result = model.transcribe(audio_file, task="transcribe")

# Ver idioma detectado y texto completo
print(f"🌍 Idioma detectado: {result['language']}")
print("\n📄 TRANSCRIPCIÓN:\n")
print(result["text"])
Tamaños de modelo: tiny más rápido pero menos preciso · base equilibrado · medium recomendado para reuniones · large-v2 máxima precisión, requiere más GPU.
4
Ver transcripción con marcas de tiempo

Whisper devuelve segmentos con inicio y fin. Útil para saber exactamente en qué momento del audio se dijo cada cosa.

python · celda 4
# Ver segmentos con timestamps  [inicio → fin]  texto
print("⏱️  SEGMENTOS CON MARCAS DE TIEMPO:\n")
for seg in result["segments"]:
    inicio = int(seg["start"])
    fin    = int(seg["end"])
    texto  = seg["text"].strip()
    print(f"[{inicio//60:02d}:{inicio%60:02d}{fin//60:02d}:{fin%60:02d}]  {texto}")
5
Guardar como .txt y .md — y descargar

Exportamos dos versiones: texto plano para pegar en Word/Claude, y Markdown para la base de conocimiento.

python · celda 5
from google.colab import files

# ── Texto plano ──────────────────────────────────────────
with open("transcripcion.txt", "w", encoding="utf-8") as f:
    f.write(result["text"])

# ── Markdown con timestamps (para base de conocimiento) ──
with open("transcripcion.md", "w", encoding="utf-8") as f:
    f.write("# Transcripción de reunión\n\n")
    f.write(f"**Archivo de audio:** {audio_file}\n\n")
    f.write(f"**Idioma detectado:** {result['language']}\n\n")
    f.write("---\n\n")
    for seg in result["segments"]:
        i = int(seg["start"])
        e = int(seg["end"])
        t = seg["text"].strip()
        f.write(f"- [{i//60:02d}:{i%60:02d}–{e//60:02d}:{e%60:02d}] {t}\n")

# ── Descargar ambos archivos ──────────────────────────────
files.download("transcripcion.txt")
files.download("transcripcion.md")
print("✅ Archivos descargados")
Siguiente paso: Copia el texto en Claude o ChatGPT con el prompt: "Con base en esta transcripción, genera un acta de reunión con: participantes mencionados, puntos tratados, compromisos y responsables."
+
Bonus: Traducir al inglés automáticamente

Whisper puede transcribir y traducir en un solo paso. Útil si necesitas un resumen en inglés para reportes internacionales.

python · bonus
# Cambiar task a "translate" traduce cualquier idioma → inglés
result_en = model.transcribe(audio_file, task="translate")
print("🌐 TRADUCCIÓN AL INGLÉS:\n")
print(result_en["text"])
📊 ¿Cuál usar? Comparativa rápida
Criterio ✨ Adobe Enhance ⚙️ Whisper en Colab
Instalación Ninguna — solo navegador Celdas de instalación (~2 min)
Costo Gratis con cuenta Adobe 100% gratuito
Control del código Caja negra Código abierto, personalizable
Privacidad del audio Se sube a servidores Adobe Solo en tu sesión de Colab
Mejora de calidad Reduce ruido de fondo No (solo transcripción)
Timestamps Limitados Por segmento, a nivel de palabra
Traducción Cualquier idioma → inglés
Ideal para Demo rápida en clase Práctica real y aprendizaje técnico
🗃️ ¿Y ahora qué hago con la transcripción?
1
Pégala en Claude y pide: "Genera un acta con: fecha, participantes mencionados, puntos discutidos, compromisos y responsables."
2
Clasifica las peticiones: extrae qué solicitudes caen en cada categoría PQRSDF (Petición, Queja, Reclamo, Sugerencia…).
3
Guarda el .md en la base de conocimiento de la dependencia, en la carpeta 99-anexos/ o actas/.
4
Registra los compromisos en el tablero Kanban o en el sistema de radicación de la alcaldía para hacer seguimiento.
Scroll to Top