ESP32-S3 Siren Detection Logger

Job ID: 39882842

Budget: $250 – $750 USD

I have an ESP32-S3 module with an electret mic wired to a single GPIO pin. I need firmware that continuously listens for the three common emergency-vehicle siren patterns—WAIL, YELP and HI-LO—and then writes a clear, human-readable message to the serial console whenever one of them is recognised.

Behaviour details
• At the moment a valid pattern is identified, print the detected type (e.g. “WAIL detected”) plus a timestamp to Serial.
• If no recognised pattern is present the firmware must simply remain idle; no status text, no blinking LEDs, no watchdog resets—just keep listening.

Implementation guidance
I am comfortable flashing with either the Arduino framework or native ESP-IDF, so choose whichever makes the DSP work easiest. You are free to use FFT, Goertzel, CNN-based audio classification, or any other lightweight technique that runs reliably on the S3 and fits in on-chip RAM. Please note the mic provides raw analogue audio via ADC, not I²S.

Deliverables
1. Well-commented source code.
2. A short read-me explaining the build environment, library dependencies and how to calibrate the threshold levels with my microphone.
3. Demonstration of console output in a sample log showing each siren type being recognised.

Acceptance criteria
The firmware must detect the three specified siren patterns with a false-positive rate low enough that ordinary traffic noise doesn’t trigger a log entry during a five-minute urban street recording.

If you have prior experience with embedded audio or similar ESP32 sound-classification work, that’s a plus—please mention it when you respond.