Skip to project
← Yameen Sekandari Source
Loading the actual CADFour printed parts + reference electronics

Demo

How it works

  1. Listen

    Two INMP441 microphones on the glasses capture synchronized stereo audio.

  2. Understand

    Zipformer scores the sound. Timing differences give a rough direction.

  3. Show

    The priority engine sends an icon and arrow to the 128 × 64 OLED.

The 3D print

Loading the actual CADFour printed parts + reference electronics
Drag to rotate · scroll to zoom

Four printed pieces.
One clip-on assembly.

The main body holds the Pi and optical guides. A stepped lid covers the wiring. One microphone carrier sits on each arm of the glasses.

Download the four STLsOpen full CAD & wiring explorer

CAD shown here is the actual local export. Printed fit, comfort, and optical focus still need physical checks.

Triangulation.
With TWO mics.

The same sound reaches one microphone a fraction of a second before the other.

GCC-PHAT estimates that delay. The original simulator below shows the two-mic headset swaying as it walks, with the head-yaw signal underneath.

Original simulator on GitHub

Original renderer and Python simulation output. Public playback uses generated signal replays.

Sound classification

A pretrained model.
Rules tuned for the build.

Every second, Zipformer analyzes the last two seconds of audio and scores 527 AudioSet categories. Thresholds, cooldowns, and priority rules turn those scores into alerts.

Inference runs on the laptop. The Pi streams the audio and receives the display frame. The model weights have not been fine-tuned.

527
model categories
2 sec
analysis window
1 sec
window step
Audio pipeline & model code

Recorded results

Held-out recordings

Clean audio
SoundHits / positives
Dog barking16/16
0 false alerts / 152 negative recordings
Door knock15/16
1 false alert / 152 negative recordings
Siren16/16
0 false alerts / 152 negative recordings
Smoke alarm7/7
0 false alerts / 161 negative recordings
Alarm clock15/16
1 false alert / 152 negative recordings
Bell / chime7/7
3 false alerts / 161 negative recordings

418 source recordings · 1,672 total cases. These are offline, per-recording results from the repo’s benchmark, not room accuracy. Model scores are not probabilities; small sample sizes limit the result.

Full report & methodology