Audios sin transcribir 24-sep: whisper local se ahoga y no hay respaldo
Pedido: audio 3ACB92234823F8FF1D87 (grupo 120363415411540260@g.us, 11:41) llegó al asistente como «[Audio adjunto]» sin texto.
El error exacto
- asistente-baileys.log 11:43:34:
Error transcribing audio 3ACB92234823F8FF1D87: GEMINI_API_KEY is not configured in .env. - Ese es el SEGUNDO error. El primero es 11:43:33 y 11:43:34:
[Transcripción] Falló el transcriptor local: Command failed: transcribir-local nota-1790260892900.ogg. Como el local no devolvió texto, cae a Gemini, y Gemini no tiene clave (GEMINI_API_KEYvacío en baileys-mcp/.env): no hay red de seguridad. - No es permisos ni API key del transcriptor local. Whisper SÍ transcribió («La reunión se llamaba Gaby Max…», se ve en el log): lo mató el timeout de 120 s de
transcribeLocal(transcription.service.ts). La nota se creó 11:41:32 y falló 11:43:33 = 2:01. - notas-audio.log no tiene este ID: es otro servicio (grabaciones de iCloud). Ahí la falla es otra, ya conocida: macOS le niega leer «Notas Rápidas» a python3 (falta Acceso total al disco).
Por qué whisper tardó más de 120 s si solo tarda 10
- Probado a mano en esta Mac: un audio de ~27 s tarda 10 s solo; dos en paralelo, 26-29 s cada uno.
- El servicio transcribe CADA audio dos veces a la vez:
bridge.service.ts:282(el lote) ybridge.service.ts:1632(handleSubscriptionsNotification), los dos conclient.transcribeAudio(), sin compartir resultado. Entre 11:41 y 11:45 llegaron 7 audios seguidos: hasta 8-12 whisper-large-v3-turbo en paralelo en un M1 de 8 GB. Todos pasaron los 120 s. - 13 fallas hoy, 7 audios perdidos (3ACB9223…, 3AF08CEC…, 3ACE4BC7…, 3AF948EF…, 3A095223…, 3AAC0A2A…, y uno de 11:44:01). Los últimos cuatro los mató además el reinicio del servicio (SIGTERM 11:47:26); el servicio volvió 11:50:26.
Arreglo propuesto (no aplicado; toca el puente, que es de otra sesión)
- Una sola transcripción por messageId: memoizar la promesa en
TranscriptionService(Map id→Promise) para que 282 y 1632 compartan el resultado. Baja la carga a la mitad. - Cola de a uno para whisper (semáforo de concurrencia 1): en serie, 7 audios salen en ~70 s en vez de morir todos.
- Si el local falla o no hay clave de Gemini, reintentar local una vez más en vez de devolver vacío.
- Opcional: cargar GEMINI_API_KEY como respaldo (decisión de Gabriel: el local existe para que los audios no salgan a la nube).
Resolución (24-sep 16:53)
Los 6 audios (3ACB9223, 3AF08CEC, 3ACE4BC7, 3AF948EF, 3A095223, 3AAC0A2A) fueron retranscriptos en serie con transcribir-local y guardados en transcripciones-audios-gabriel-24-sep-11-41-a-11-45. El arreglo propuesto (semáforo, memoización) sigue pendiente de aplicar en el puente.
Datos/audios-sin-transcribir-24-sep-whisper-local-se-ahoga-y-no-ha