Ed McCormic Source on GitHub
All specs

Interview prep and study

Voice enrollment and verification

Enroll a speaker, store a voiceprint, and verify new samples, with spoof detection, ASR challenge phrases, and FAR/FRR measurement.

Pipeline

upload WAV ─► AudioDecoder (16 kHz mono)
POST /challenges ─► random 8-digit phrase (single use, 60 s)
upload WAV + challengeId
  ─► SampleProcessor (duration, loudness, replay fingerprint)
  ─► SpoofDetector (replay, band-limit, clipping, silence, AASIST)
  ─► ECAPA-TDNN embedding (192-d, ONNX)
  ─► wav2vec2 ASR ─► does the audio contain the phrase?
  ─► cosine(embedding, template) ≥ threshold ?

Decisions made along the way

  • Added an AASIST countermeasure model to the spoof detector
  • Switched score aggregation from mean to min, so one bad sample can’t hide behind good ones
  • Set the threshold to -3.0
  • Reject only the flagged enrollment sample, not the whole enrollment
  • Challenge-response phrases with ASR, plus digit phrases at enrollment
  • Rate limiting on the challenges endpoint

Changelog

  • 2026-09-29: Built
  • 2026-10-01: Anti-spoofing and challenge phrases