The story

Credits and AI use

We used AI coding assistants heavily, and we say so plainly. The team decided what to build and why; Claude Code built it under our direction; Codex reviewed plans and audited finished rungs; two strategy questions went to an outside multi-model review. Nothing on the scoring path calls a hosted model.

AI use, in short

  • Claude Code (Anthropic) wrote most of the code and documents under our direction, in parallel sessions per rung: loader, metrics, fold file, the M1 probe, the engineered detectors, M3 scoring, the M5 cloud pipeline, the fusion sweep, the runner, the API, the Docker image, the documentation, and this site and its generator. We chose the approach, set the gates and selection rules, reviewed results and made every ship decision.
  • OpenAI Codex (Codex CLI) reviewed plans and audited finished rungs through our plan-review workflow.
  • Outside consults. Two strategy questions, one on M5's extra data and one on fusion, went to an outside multi-model review (VeriLM; the fusion memo was answered by Claude and Gemini with a synthesis). The prompts and answers are saved in the repository, and we record which advice we adopted and which we ignored: see the consult records.
  • No AI on the scoring path. No LLM or hosted API runs at inference; the runner loads every model from local files, and the Docker image runs with networking off.

The full disclosure, including which components each tool touched and what we built versus what the AI wrote, component by component, is kept current in CLAUDE.md, "AI use disclosure"; the README's summary is at "AI use and credits".

Pretrained models

ModelSourceLicenceHow we used it
XLS-R 300M, facebook/wav2vec2-xls-r-300mHugging Face (Meta)Apache-2.0Frozen backbone for M1/M1b (layer 7) and M5 (first 12 layers); both are fused
Spectra-AASIST, lab260/Spectra-AASISTHugging Faceunclear: repo header says Apache-2.0, model card says MITM3, scored off the shelf, false-alarm suppression only
ECAPA-TDNN, speechbrain/spkrec-ecapa-voxcelebHugging Face (SpeechBrain)Apache-2.0Speaker-drift evidence
WavLM Large / Base, microsoft/wavlm-large, microsoft/wavlm-baseHugging Face (Microsoft)no licence on the card; released through Microsoft's unilm repo (MIT)Downloaded as bake-off challengers; never run

Datasets

DatasetSourceLicenceHow we used it
NSA HEARSAY data: test set, resampled LJ subset, DiffSSD, ASVspoof5 scoring codeNSA, provided during the eventevent termsTest set; training sample and fold file; metric reference
LJ Speech 1.1source: README.md, section datasetskeithito.compublic domainReal speech (one speaker); training
LibriSpeech dev-clean / test-cleanopenslr.org/12CC BY 4.0source: README.md, section datasetsReal speech (multi-speaker); training
ASVspoof 2019 LAUniversity of Edinburgh DataShareODC AttributionPublic shakedown of M1; 40 VCTK real speakers and an A01–A06 anchor as training-only rows for M1b and M5
In-the-Wild (Müller et al. 2022), mueller91/In-The-WildHugging FaceCC-BY-SA-4.0 on Hugging Face; Apache-2.0 on deepfake-total.comStress test only; never trained on
MLAAD, mueller91/MLAADHugging Face (gated)non-commercial notice6,180source: README.md, section datasets fake clips from 143source: README.md, section datasets TTS models, training-only for M5

Source: the README's models table and datasets table.

Frameworks and tools

PyTorch and torchaudio (BSD), Hugging Face transformers and huggingface_hub (Apache-2.0), SpeechBrain (Apache-2.0), librosa (ISC), soundfile (BSD-3-Clause), NumPy, SciPy, scikit-learn and pandas (BSD-3-Clause), LightGBM (MIT, training only), pydub (MIT), ffmpeg-python (Apache-2.0), FFmpeg (LGPL/GPL), FastAPI (MIT) and uvicorn (BSD-3-Clause) for the local API, pytest and ruff for tests and lint, uv for environments, Docker with Colima for the image, vast.ai A100s and Cloudflare R2 for the M5 runs. This site: a standard-library Python generator, Mermaid (MIT) rendered once to SVG, and no runtime dependency. Source: the README.

The team

Created by Nathan, Hrushi & Tharakesh. Team Cross Exam at HackGT 13. Nathan (@nrstough) owned the deep detectors, the fold file, fusion, the orchestrator and the TSV; teammates owned the engineered detectors and the Docker image; Hrushi built the demo frontend against the pipeline's JSON contract. The component-by-component table of who decided what and what the AI wrote is in CLAUDE.md.