fix(plip): handset mic capture — ES8388 DLL + STT high-pass #164
Reference in New Issue
Block a user
Delete Branch "fix/plip-mic-stt-highpass"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Deux bugs résolus dans la chaîne micro PLIP
1. ES8388 : registres DLL non documentés (sous-module ESP32_ZACUS)
Sans les registres 0x35/0x37/0x39, la DLL interne du codec ES8388 est instable à 16 kHz : l'ADC sort une valeur DC figée (capture muette, max=0). Le DAC tolère l'instabilité (lecture OK, micro mort). Ces registres sont repris du driver A252 prouvé (Es8388Driver.cpp). Avec eux, boot sanity passe de max=0 à max=178.
2. Gateway : passe-haut STT pour supprimer le rumble SLIC
Le combiné injecte du drift basse fréquence via le SLIC qui submerge la parole et fait sortir Kyutai STT à vide. _normalize_wav_for_stt applique une soustraction de moyenne glissante (~110 Hz) avant normalisation. Gain max x40, target_peak 0.7.
Validation bout en bout
Même capture : STT vide SANS passe-haut, français propre AVEC. Vérifié au banc sur SLIC réel.
The Lm holds a persistent rotating transformer_cache shared by every LmGen. LmGen only resets its own gen_sequence/step_idx, so across requests the cache kept accumulating stream positions until it saturated and the model emitted only padding tokens, returning empty transcriptions ('') for every request. Reset transformer_cache (and depformer_cache) per request, mirroring Lm.warmup(). Validated: 40 consecutive requests of a known-good sample, 0 empty.