A spoken count up and back down, looped — clean syllable pulses make the band response easy to read. Browsers start an AudioContext suspended, so playback has to begin from a user gesture; that is what Play is for.
Read from the analyser every frame. Feed these to any component that takes a 0..1 value.
The same rms run through lipsync — smoothing, then a
clamped 0..1 target, then per-frame approach.
a looped voice clip drives the analyser · cyan marks the peak band · the component never opens a microphone