AASIST3: KAN-Enhanced AASIST Speech Deepfake Detection
3
52 commits
1 linked in READMEs
updated Jun 25, 2026
⚠️ Deprecation Notice: This model is outdated and no longer maintained.
Please use the updated version: lab260/Spectra-AASIST3 for improved performance and support.
Independently re-scored on the reproducible Speech Anti-Spoofing Arena (EER %, lower is better; the model returns a score where higher = more bona fide):
| Dataset | EER % | Trials |
|---|---|---|
| ASVspoof2019_LA | 9.44 | 71,237 |
| ASVspoof2021_DF | 28.73 | 611,829 |
| InTheWild | 29.72 | 31,779 |
| CD-ADD | 30.73 | 20,786 |
| ASVspoof2021_LA | 32.06 | 181,566 |
Scores produced with the
speech-spoof-benchwrapper: preemphasis (0.97) + a deterministic first-64,600-sample window; score = output logit for class 1 (bona fide). Pinned score files live under.eval_results/.
This repository contains the original implementation of AASIST3: KAN-Enhanced AASIST Speech Deepfake Detection using SSL Features and Additional Regularization for the ASVspoof 2024 Challenge.
AASIST3: KAN-Enhanced AASIST Speech Deepfake Detection using SSL Features and Additional Regularization for the ASVspoof 2024 Challenge
This is the original implementation of the paper. The model weights provided here are NOT the same weights used in the paper results.
AASIST3 is an enhanced version of the AASIST (Anti-spoofing with Adaptive Softmax and Instance-wise Temperature) architecture that incorporates Kolmogorov-Arnold Networks (KAN) for improved speech deepfake detection. The model leverages:
The AASIST3 model consists of several key components:
git clone https://github.com/mtuciru/AASIST3.git
cd AASIST3
pip install -r requirements.txt
from model import aasist3
# Load the model from Hugging Face Hub
model = aasist3.from_pretrained("MTUCI/AASIST3")
model.eval()
import torch
import torchaudio
# Load and preprocess audio
audio, sr = torchaudio.load("audio_file.wav")
# Ensure audio is 16kHz and mono
if sr != 16000:
audio = torchaudio.transforms.Resample(sr, 16000)(audio)
if audio.shape[0] > 1:
audio = torch.mean(audio, dim=0, keepdim=True)
# Prepare input (model expects ~4 seconds of audio at 16kHz)
# Pad or truncate to 64600 samples
if audio.shape[1] < 64600:
audio = torch.nn.functional.pad(audio, (0, 64600 - audio.shape[1]))
else:
audio = audio[:, :64600]
# Run inference
with torch.no_grad():
output = model(audio)
probabilities = torch.softmax(output, dim=1)
prediction = torch.argmax(probabilities, dim=1)
# prediction: 0 = bonafide, 1 = spoof
print(f"Prediction: {'Bonafide' if prediction.item() == 0 else 'Spoof'}")
print(f"Confidence: {probabilities.max().item():.3f}")
The model was trained on a combination of multiple datasets:
# Train the model
bash train.sh
# Run validation on test sets
bash validate.sh
The model can be configured through the configs/train.yaml file:
# Key parameters
num_epochs: 20
train_batch_size: 12
val_batch_size: 24
learning_rate: 1e-4
gradient_accumulation_steps: 2
If you use this implementation in your research, please cite the original paper:
@inproceedings{borodin24_asvspoof,
title = {AASIST3: KAN-enhanced AASIST speech deepfake detection using SSL features and additional regularization for the ASVspoof 2024 Challenge},
author = {Kirill Borodin and Vasiliy Kudryavtsev and Dmitrii Korzh and Alexey Efimenko and Grach Mkrtchian and Mikhail Gorodnichev and Oleg Y. Rogov},
year = {2024},
booktitle = {The Automatic Speaker Verification Spoofing Countermeasures Workshop (ASVspoof 2024)},
pages = {48--55},
doi = {10.21437/ASVspoof.2024-8},
}
This project is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0) - see the LICENSE file for details.
This license allows you to:
But does NOT allow:
For more information, visit: https://creativecommons.org/licenses/by-nc-nd/4.0/
Disclaimer: This is a research implementation. The model weights provided are for demonstration purposes and may not match the exact performance reported in the paper.
AASIST3: KAN-Enhanced AASIST Speech Deepfake Detection
3
52 commits
1 linked in READMEs
updated Jun 25, 2026
⚠️ Deprecation Notice: This model is outdated and no longer maintained.
Please use the updated version: lab260/Spectra-AASIST3 for improved performance and support.
Independently re-scored on the reproducible Speech Anti-Spoofing Arena (EER %, lower is better; the model returns a score where higher = more bona fide):
| Dataset | EER % | Trials |
|---|---|---|
| ASVspoof2019_LA | 9.44 | 71,237 |
| ASVspoof2021_DF | 28.73 | 611,829 |
| InTheWild | 29.72 | 31,779 |
| CD-ADD | 30.73 | 20,786 |
| ASVspoof2021_LA | 32.06 | 181,566 |
Scores produced with the
speech-spoof-benchwrapper: preemphasis (0.97) + a deterministic first-64,600-sample window; score = output logit for class 1 (bona fide). Pinned score files live under.eval_results/.
This repository contains the original implementation of AASIST3: KAN-Enhanced AASIST Speech Deepfake Detection using SSL Features and Additional Regularization for the ASVspoof 2024 Challenge.
AASIST3: KAN-Enhanced AASIST Speech Deepfake Detection using SSL Features and Additional Regularization for the ASVspoof 2024 Challenge
This is the original implementation of the paper. The model weights provided here are NOT the same weights used in the paper results.
AASIST3 is an enhanced version of the AASIST (Anti-spoofing with Adaptive Softmax and Instance-wise Temperature) architecture that incorporates Kolmogorov-Arnold Networks (KAN) for improved speech deepfake detection. The model leverages:
The AASIST3 model consists of several key components:
git clone https://github.com/mtuciru/AASIST3.git
cd AASIST3
pip install -r requirements.txt
from model import aasist3
# Load the model from Hugging Face Hub
model = aasist3.from_pretrained("MTUCI/AASIST3")
model.eval()
import torch
import torchaudio
# Load and preprocess audio
audio, sr = torchaudio.load("audio_file.wav")
# Ensure audio is 16kHz and mono
if sr != 16000:
audio = torchaudio.transforms.Resample(sr, 16000)(audio)
if audio.shape[0] > 1:
audio = torch.mean(audio, dim=0, keepdim=True)
# Prepare input (model expects ~4 seconds of audio at 16kHz)
# Pad or truncate to 64600 samples
if audio.shape[1] < 64600:
audio = torch.nn.functional.pad(audio, (0, 64600 - audio.shape[1]))
else:
audio = audio[:, :64600]
# Run inference
with torch.no_grad():
output = model(audio)
probabilities = torch.softmax(output, dim=1)
prediction = torch.argmax(probabilities, dim=1)
# prediction: 0 = bonafide, 1 = spoof
print(f"Prediction: {'Bonafide' if prediction.item() == 0 else 'Spoof'}")
print(f"Confidence: {probabilities.max().item():.3f}")
The model was trained on a combination of multiple datasets:
# Train the model
bash train.sh
# Run validation on test sets
bash validate.sh
The model can be configured through the configs/train.yaml file:
# Key parameters
num_epochs: 20
train_batch_size: 12
val_batch_size: 24
learning_rate: 1e-4
gradient_accumulation_steps: 2
If you use this implementation in your research, please cite the original paper:
@inproceedings{borodin24_asvspoof,
title = {AASIST3: KAN-enhanced AASIST speech deepfake detection using SSL features and additional regularization for the ASVspoof 2024 Challenge},
author = {Kirill Borodin and Vasiliy Kudryavtsev and Dmitrii Korzh and Alexey Efimenko and Grach Mkrtchian and Mikhail Gorodnichev and Oleg Y. Rogov},
year = {2024},
booktitle = {The Automatic Speaker Verification Spoofing Countermeasures Workshop (ASVspoof 2024)},
pages = {48--55},
doi = {10.21437/ASVspoof.2024-8},
}
This project is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0) - see the LICENSE file for details.
This license allows you to:
But does NOT allow:
For more information, visit: https://creativecommons.org/licenses/by-nc-nd/4.0/
Disclaimer: This is a research implementation. The model weights provided are for demonstration purposes and may not match the exact performance reported in the paper.