El contenedor ahora es una opción (Ajustes) con defaults por modo:
- vigilia nocturna → AAC crudo (ADTS .aac): a prueba de cortes, si el
proceso muere a media noche el archivo se reproduce hasta donde llegó
(no depende de un índice final).
- grabar / reunión → .m4a (MP4): mejor búsqueda; son sesiones atendidas.
Refactor del codificador: interfaz Codificador + base común (posee el
MediaCodec AAC-LC) + dos contenedores (CodificadorM4a con MediaMuxer,
CodificadorAac que escribe frames ADTS con su cabecera de 7 bytes a un
flujo plano). Factoría crearCodificador(formato, ...).
Sesion/Repositorio guardan "fmt" (sesiones viejas = .m4a); el nombre de
archivo usa la extensión del formato. Ajustes: formatoVigilia (def AAC) y
formatoDia (def M4A) con selector en la pantalla de ajustes.
NO compilado aquí (sin SDK en este equipo).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Nuevo Modo.REUNION que transcribe lo hablado sin tocar la liviandad de la
noche: vigilia y grabación normal no ejecutan nada de STT (transcriptor
solo se crea en reunión).
- audio/Transcriptor: Vosk offline en hilo propio (cola productor/
consumidor) alimentado del mismo PCM que ya captura la Grabadora, así el
reconocimiento pesado no retrasa el hilo de audio ni ensucia el .m4a. El
reconocedor se reinicia por fragmento → cada fila del log lleva su texto.
- modelo (~45 MB) no va en el APK: se descarga y descomprime la 1ª vez
(ModeloScreen con progreso); luego todo offline. Reunión fuerza 16 kHz.
- Segmento gana texto (persistido en log.json como "txt"); mutaciones de
segmentos sincronizadas entre el hilo de captura y el de Vosk.
- UI: 3ª acción "reunión", texto en vivo en GrabandoScreen, texto por
fragmento en el log, distinción de color (rosa) en las listas.
- dep nueva libs.vosk.android (solo :vela); permiso INTERNET para bajar
el modelo.
Formato de audio se queda en .m4a (AAC) por decisión del usuario.
NO compilado aquí (sin SDK en este equipo).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Nueva app del rizoma :vela (com.rizoma.vela). Graba con AudioRecord (PCM
16 kHz mono), pasa cada cuadro por una puerta de voz adaptativa con
histéresis, pre-roll y cola, y solo codifica lo que suena → AAC/.m4a
(MediaCodec+MediaMuxer, sin deps ni LAME). Los silencios no se guardan:
el audio queda contiguo y compacto, y el log de diálogo registra los
tiempos reales.
- log de diálogo: línea de tiempo de fragmentos (hora, duración, nivel)
con silencios colapsados; persistido en log.json (atómico) por sesión.
- vigilia nocturna: foreground service tipo micrófono + wakelock parcial;
en silencio solo calcula RMS (barato) → ahorra batería con pantalla
apagada.
- UI Compose rizoma: medidor de onda en vivo, reproducción del audio
compactado con salto por fragmento, y ajustes (sensibilidad, pre-roll,
cola, calidad, mantener pantalla).
NO compilado aquí (sin SDK en este equipo).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>