Verificar una salida del estudio
La regla de oro del proyecto: nunca digas «listo» sin haber visto el resultado. Las pruebas automáticas dicen si funciona; solo mirar dice si se ve bien
(en este proyecto, hyperframes check pasó con un arco cruzando el texto, y las pruebas del visor no habrían detectado ninguno de sus cuatro fallos visuales).
Pasos
- Video o escena con
seek(t): toma 6–8 fotogramas distribuidos (no solo el primero) en una hoja de contactos y míralos con Read:node scripts/capture.mjs <scene.html> 1,4,7,10,13,16,19 out/frames/sheet.png 4Para un MP4 ya renderizado:ffmpeg -i out/x.mp4 -vf "fps=1/3,scale=640:-1,tile=3x3" -frames:v 1 out/frames/sheet.png. Busca: texto recortado o superpuesto, elementos fuera de cuadro, mal contraste, fotogramas vacíos o congelados. - Formato:
ffprobe -v error -show_streams -show_format -of json <archivo>→ 1920×1080, 30 fps, H.264yuv420p, duración esperada, pista de audio AAC 48 kHz. - Audio:
ffmpeg -i <archivo> -vn -af ebur128=peak=true -f null -→ integrada −16 LUFS (±1), pico real ≤ −1 dBFS. No puedes escuchar: usa un espectrograma (showspectrumpic), mediciones y la transcripción con Whisper large-v3 (audio/verify_voice.py). NUNCA con Whisper small: inventa texto en silencios y da un falso error del 49–160 %. - Todo junto:
make verify(oaudio/.venv/bin/python scripts/verify_output.py). Debe terminar enALL CORRECT. - Informa honestamente: qué revisaste, qué mediste, qué NO PUEDES juzgar (naturalidad de la voz, gusto del diseño) y qué fallos aparecieron aunque los hayas corregido.
Trampas conocidas
- Un resultado «idéntico» debe demostrarse (
cmp, hashes de fotogramas conffmpeg -f framemd5), no asumirse. Kokoro no es determinista sin una semilla. - Las mediciones de sonoridad con ventanas < 0,4 s dan −65 LUFS (basura): se omiten.
- Un PNG puede ser 10 veces más lento que JPEG en escenas complejas (210 s frente a 20 s) y más rápido en escenas planas.