Models
Jabberjay bundles ten model families. Each is downloaded from Hugging Face Hub on first use and cached locally, then kept in memory for the lifetime of the process so repeated detect() calls for the same model skip both the download and the reload.
Choosing a model
| Model | Type | Datasets | Requires |
|---|---|---|---|
| VIT | Vision Transformer | ASVspoof2019, ASVspoof5, VoxCelebSpoof | dataset, visualisation |
| AST | Audio Spectrogram Transformer | ASVspoof2019, ASVspoof5, VoxCelebSpoof | dataset |
| Spectra0 | Wav2Vec2 + ECAPA-TDNN | ASVspoof19/21, ASVspoof5, In-the-Wild | — |
| SpectraAASIST | Wav2Vec2 + AASIST | ASVspoof19/21, ASVspoof5, In-the-Wild | — |
| SpectraAASIST3 | Wav2Vec2 + KAN-AASIST | ASVspoof19/21, ASVspoof5, In-the-Wild | — |
| Wav2Vec2 | Self-supervised transformer | ASVspoof2019 | — |
| HuBERT | Self-supervised transformer | In-The-Wild | — |
| WavLM | Self-supervised transformer | Mixed deepfake | — |
| RawNet2 | End-to-end CNN | ASVspoof 2021 | — |
| Classical | KNN classifier | ASVspoof2019 | — |
Simple rule of thumb:
- For the lowest error rate on In-the-Wild audio — use SpectraAASIST3 (EER 0.961%)
- For a quick, general-purpose result — use WavLM or HuBERT
- For a lightweight baseline with no deep learning — use Classical
- To sweep all models and compare — use
jj.load()once, then calljj.detect()for each
VIT
Vision Transformer classifiers that convert the audio to a 2D image (spectrogram) and classify it visually.
Nine variants, covering three visualisation types × three training datasets:
| Visualisation | ASVspoof2019 | ASVspoof5 | VoxCelebSpoof |
|---|---|---|---|
| ConstantQ | ✓ | ✓ | ✓ |
| MelSpectrogram | ✓ | ✓ | ✓ |
| MFCC | ✓ | ✓ | ✓ |
jj.detect("audio.wav", model="VIT", dataset="VoxCelebSpoof", visualisation="ConstantQ")
jj.detect("audio.wav", model="VIT", dataset="ASVspoof2019", visualisation="MFCC")
jj.detect("audio.wav", model="VIT", dataset="ASVspoof5", visualisation="MelSpectrogram")
Visualisations:
ConstantQ— Constant-Q transform; good frequency resolution across the full spectrumMelSpectrogram— Mel-scaled spectrogram; perceptually motivated, widely used in speechMFCC— Mel-frequency cepstral coefficients; compact and speech-focused
AST
Audio Spectrogram Transformer. Applies a transformer directly to a patch-based spectrogram without a CNN backbone.
Available for ASVspoof2019, ASVspoof5, and VoxCelebSpoof datasets.
jj.detect("audio.wav", model="AST") # defaults to VoxCelebSpoof
jj.detect("audio.wav", model="AST", dataset="VoxCelebSpoof")
jj.detect("audio.wav", model="AST", dataset="ASVspoof2019")
Note
dataset is optional for AST and defaults to VoxCelebSpoof if not specified.
Spectra0
lab260/spectra_0
SSL encoder (Wav2Vec2-XLS-R-300M) → MLP projection → ECAPA-TDNN binary classifier, trained across multiple anti-spoofing benchmarks.
| Benchmark | EER (%) |
|---|---|
| ASVspoof19 LA | 0.181 |
| ASVspoof21 LA | 6.475 |
| ASVspoof21 DF | 5.410 |
| ASVspoof5 | 14.426 |
| ADD2022 | 14.716 |
| In-the-Wild | 1.026 |
Note
On first run, Spectra0 downloads both its own weights and the facebook/wav2vec2-xls-r-300m SSL encoder (~1.2 GB total). Both are cached by HuggingFace Hub after the first download.
SpectraAASIST
lab260/Spectra-AASIST
SSL encoder (Wav2Vec2-XLS-R-300M) → MLP projection → AASIST graph attention network with standard linear layers.
| Benchmark | EER (%) |
|---|---|
| ASVspoof19 LA | 0.159 |
| ASVspoof21 LA | 5.164 |
| ASVspoof21 DF | 2.568 |
| ASVspoof5 | 14.056 |
| ADD2022 | 15.205 |
| In-the-Wild | 1.461 |
Note
Downloads facebook/wav2vec2-xls-r-300m on first run (~1.2 GB total, cached by HuggingFace Hub).
SpectraAASIST3
lab260/Spectra-AASIST3
SSL encoder (Wav2Vec2-XLS-R-300M) → MLP projection → AASIST graph attention network with KAN (Kolmogorov-Arnold Network) linear layers — the strongest model in the Spectra family on In-the-Wild audio.
| Benchmark | EER (%) |
|---|---|
| ASVspoof19 LA | 0.723 |
| ASVspoof21 LA | 4.506 |
| ASVspoof21 DF | 1.998 |
| ASVspoof5 | 13.820 |
| ADD2022 | 15.187 |
| In-the-Wild | 0.961 |
Note
Downloads facebook/wav2vec2-xls-r-300m on first run (~1.2 GB total, cached by HuggingFace Hub).
Wav2Vec2
Gustking/wav2vec2-large-xlsr-deepfake-audio-classification
Wav2Vec2-XLSR-300M fine-tuned on ASVspoof2019. EER 4.01%.
HuBERT
abhishtagatya/hubert-base-960h-itw-deepfake
HuBERT-base fine-tuned on the In-The-Wild dataset. EER 1.43%.
WavLM
DavidCombei/wavLM-base-Deepfake_V2
WavLM-base fine-tuned on a mixed deepfake dataset.
RawNet2
End-to-end anti-spoofing network via rawnet2-antispoofing, with weights from ASVspoof 2021. Operates directly on raw waveforms — no feature extraction step.
Note
scores is None for RawNet2 — only label, is_bonafide, and confidence are populated.
Classical
Feature-based KNN classifier trained on ASVspoof2019. Extracts hand-crafted audio features (MFCCs, spectral features) and classifies with k-nearest neighbours. Fast and dependency-light compared to the transformer models.
Note
scores is None for Classical — only label, is_bonafide, and confidence are populated.