Prompt: Transcripción Whisper de alta fidelidad para audio M4A de 4 horas
Caso de uso
Transcripción precisa de un archivo .m4a de larga duración (~4h) usando el modelo Whisper de OpenAI (o compatible).
Prompt
Escribe un script en Python que transcriba un archivo de audio en formato .m4a de aproximadamente 4 horas de duración con la máxima fidelidad posible usando el modelo Whisper.
Requisitos:
Modelo: usa large-v3 (mayor precisión multilingüe) cargado localmente.
Dispositivo: detecta automáticamente GPU (CUDA/MPS) o CPU con fp16 solo en CUDA.
VAD (Voice Activity Detection): actívalo para omitir silencios y mejorar precisión — vad_filter=True con parámetros min_silence_duration_ms=500, speech_pad_ms=200.
Idioma: si es conocido, pásalo en language= para evitar detección errónea; si es mixto ES/EN, usa detección automática pero con initial_prompt de contexto.
Fragmentación: el audio de 4h debe trocearse en segmentos de ~30 min usando pydub o ffmpeg para evitar OOM, y transcribir cada chunk por separado.
Condicionamiento: incluye un initial_prompt con nombres propios, jerga técnica y signos de puntuación esperados para guiar la decodificación.
Beam search: usa beam_size=5, best_of=5, temperature con fallback [0.0, 0.2, 0.4, 0.6, 0.8] (muestreo múltiple como respaldo).
Salida: guarda tres archivos — .txt (texto plano), .srt (subtítulos con timestamps), .json (segmentos con confianza media).
Reanudable: cada chunk se guarda a disco antes de continuar; si el script se interrumpe, retoma desde el último chunk completado (checkpoint en progreso.json).
Log por chunk: imprime tiempo transcurrido, duración del chunk y confianza media por segmento.
Estructura del script:
transcribe_chunk(path, out_dir, idx)
split_audio(path, chunk_minutes=30)
resume_or_start(audio_path)
main() con CLI (argparse): --input, --model, --language, --initial-prompt, --output-dir
Incluye también el comando ffmpeg para convertir el .m4a a WAV 16kHz mono si la GPU/CPU lo requiere antes de transcribir.
Notas de fidelidad alta
large-v3 > large-v2 > medium para calidad.
VAD reduce alucinaciones en silencios largos.
initial_prompt con vocabulario específico del dominio sube mucho la precisión de nombres propios.
pip install openai-whisper faster-whisper pydub# ffmpeg debe estar instalado en el sistema
IMPORTANTE — Python 3.12 obligatorio. faster-whisper necesita onnxruntime
(para el VAD silero anti-alucinación), y onnxruntime no tiene wheel para
Python 3.14 en macOS arm64 (ni para el build free-threaded 3.14t).
Recrear el venv con Python 3.12: