VeriSpoof
Collection
Beyond real or fake: one unified audio LLM for speech deepfake forensics. โข 5 items โข Updated
How to use AustinXiao/VeriSpoof-Plus-MLX-8bit with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] hf download AustinXiao/VeriSpoof-Plus-MLX-8bit --local-dir VeriSpoof-Plus-MLX-8bit
Beyond real or fake: one unified audio LLM for speech deepfake forensics.
VeriSpoof-Plus in MLX for Apple silicon Macs, with an 8-bit language model and audio encoder. Same prompts, scores and API as the PyTorch release: detection, generator identification, source verification, recording condition and grounded reasoning.
| Size | In-the-Wild EER | Same generator (ASVspoof 5) | Same acoustic model (SpoofCeleb) | |
|---|---|---|---|---|
| VeriSpoof-Plus (PyTorch, bf16) | 6.0 GB | 1.00% | 19.50% | 18.67% |
| VeriSpoof-Plus-MLX-8bit (this model) | 2.9 GB | 1.00% | 20.00% | 18.50% |
600 recordings or pairs per set from VeriSpoof-Bench.
hf download AustinXiao/VeriSpoof-Plus-MLX-8bit --include "code/*" --local-dir verispoof-mlx
pip install ./verispoof-mlx/code
from verispoof_mlx import VeriSpoofMLX
model = VeriSpoofMLX.from_pretrained("AustinXiao/VeriSpoof-Plus-MLX-8bit")
model.detect("sample.wav") # {'label': 'spoof', 'score': ...}, score > 0 means spoof
r = model.explain("sample.wav") # grounded reasoning + per-token synthetic-speech probability
print(r["text"])
model.same_source("a.wav", "b.wav", level="generator")
model.condition("sample.wav", attr="codec")
model.generator("sample.wav", ["XTTS-v2", "Bark", "VITS"])
CC BY-NC 4.0 (non-commercial use), as VeriSpoof-Plus. The base
models keep their Apache-2.0 licences (LICENSE-Apache-2.0.txt, NOTICE).
@misc{verispoof2026,
title = {{VeriSpoof}: Beyond Real or Fake with One Audio {LLM}},
author = {Xiao, Yang and Dang, Ting},
year = {2026},
eprint = {2611.04634},
archivePrefix = {arXiv},
primaryClass = {eess.AS},
url = {https://arxiv.org/abs/2611.04634}
}
Quantized