/ Модель

Характеристики

Лицензия
Apache 2.0
Библиотека
pytorch
Опубликована
18 апр 2026

Spectra-AASIST

Классификация аудиоАудио → label3 профессии

Предварительная аудиомодель на основе Wav2Vec2 и AASIST для классификации речи как подлинной или поддельной.

114скачиваний за 30 дней5лайковвеса обновлены25 июн 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Spectra-AASIST — модель для выявления поддельной или синтетически изменённой речи, разработчик в карточке не указан. Она классифицирует аудиоволны по двум классам: spoof и bonafide. Архитектура объединяет SSL-энкодер Wav2Vec2, MLP-проекцию и двухклассовый классификатор AASIST; входом служит аудиоволна в формате float32, обычно с частотой 16 кГц, а выходом — оценки двух классов. При первом запуске загружается энкодер facebook/wav2vec2-xls-r-300m.

Модель предназначена для проверки подлинности речи в аудиозаписях и антиспуфинг-сценариев. В README приведены результаты на нескольких наборах для оценки защиты речи, однако таблица неполная, а модель обозначена как предварительная, неопубликованная и не имеющая рейтинга в Speech Anti-Spoofing Arena. Порог классификации рекомендуется настраивать на размеченных данных под целевой сценарий. Репозиторий распространяется по лицензии Apache-2.0.

Сценарии применения

  • выявление синтетической речи в аудиозаписях
  • проверка аудио на подмену или спуфинг
  • классификация речи на подлинную и поддельную
  • оценка антиспуфинг-систем на размеченных аудиоданных

Ограничения

Модель является предварительной и пока не имеет рейтинга в Speech Anti-Spoofing Arena; приведённая таблица результатов неполная. Порог классификации следует настраивать для целевых данных, а энкодер Wav2Vec2 загружается при первом запуске.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

🏆 Speech Anti-Spoofing Arena

EER% 0.00 on LibriSeVoc EER% 0.03 on CD-ADD EER% 0.26 on CVoiceFake_small EER% 0.38 on ASVspoof2019_LA EER% 0.48 on CFAD EER% 0.48 on SONAR EER% 1.46 on InTheWild EER% 2.52 on ASVspoof2021_DF EER% 5.25 on ASVspoof2021_LA EER% 14.22 on ASVspoof5 EER% 3.98 on DeepVoice EER% 0 on ArAD EER% 0.17 on DECRO EER% 0 on J-SPAW_LA EER% 0.2 on ODSS EER% 0.01 on HABLA EER% 0 on DFADD EER% 0.02 on PyAra EER% 0.01 on XMAD 1-SRR% 2.94 on LRLspoof EER% 0.94 on ADD22_eval_31 EER% 6.53 on ADD2023_track12_test_r1 EER% 0.4 on EmoFake_test 1-SRR% 0.04 on EmoSpoofTTS arena tier arena rank

Live on the reproducible Speech Anti-Spoofing Arena — 🔓 Unpublished / Proprietary tier (listed but unranked, no paper). Every score is sha-pinned and reproducible via speech-spoof-bench reproduce --scoring.

Model Card: Spectra-AASIST (anti-spoofing / bonafide vs spoof)

Spectra-AASIST is a model for speech spoofing detection (binary classification: bonafide vs spoof) from raw audio waveforms. Architecture: SSL encoder (Wav2Vec2) → MLP projection → AASIST 2-class classifier.

  • Input: waveform (float32), shape (batch, num_samples) (typically 16 kHz).
  • Output: logits of shape (batch, 2), where index 0 = spoof, index 1 = bonafide.

On first run, the model will automatically download the SSL encoder facebook/wav2vec2-xls-r-300m via transformers.

Evaluation Results

ModelASVspoof19 LAASVspoof21 LAASVspoof21 DFASVspoof5ADD2022In-the-WildAD2R1AD2R2AD3R1AD2R2
Res2TCNGuard7.48719.13019.88337.62049.53849.24634.68335.34348.05139.558
AASIST327.58537.40733.09941.00147.19239.62636.58137.35141.33344.278
XSLS0.2317.7144.22017.68833.9517.45314.38615.74319.36821.095
TCM-ADD0.1526.6553.44419.50535.2527.76716.95117.68821.91318.627
DF Arena 1B43.79340.13742.99435.33342.13917.59812.44213.29233.38143.42
Spectra-00.1816.4755.41014.42614.7161.0261.5782.3726.53515.154
Spectra-AASIST0.1595.1642.56814.05615.2051.4610.9391.8026.42712.968
Spectra-AASIST30.7234.5061.99813.8215.1870.9610.7271.8066.50214.481

Quickstart

Clone from Hugging Face

This repository is hosted on Hugging Face Hub: https://huggingface.co/lab260/spectra_aasist.

git lfs install
git clone https://huggingface.co/lab260/spectra_aasist
cd spectra_aasist

Install dependencies

pip install -U torch torchaudio transformers huggingface_hub safetensors soundfile

Single-file inference (example preprocessing)

import random
import torch
import torchaudio
import soundfile as sf

from model import spectra_aasist


def pad_random(x: torch.Tensor, max_len: int = 64600) -> torch.Tensor:
    # x: (num_samples,) or (1, num_samples)
    if x.ndim > 1:
        x = x.squeeze()
    x_len = x.shape[0]
    if x_len >= max_len:
        start = random.randint(0, x_len - max_len)
        return x[start:start + max_len]
    num_repeats = int(max_len / x_len) + 1
    return x.repeat(num_repeats)[:max_len]


def load_audio_mono(path: str) -> torch.Tensor:
    audio, sr = sf.read(path, dtype="float32")
    audio = torch.from_numpy(audio)
    if audio.ndim > 1:
        # (num_samples, channels) -> mono
        audio = audio.mean(dim=1)
    if sr != 16000:
        audio = torchaudio.functional.resample(audio, sr, 16000)
    return audio


device = "cuda" if torch.cuda.is_available() else "cpu"
model = spectra_aasist.from_pretrained(pretrained_model_name_or_path=".").eval().to(device)

audio = load_audio_mono("path/to/audio.wav")
audio = torchaudio.functional.preemphasis(audio.unsqueeze(0))  # (1, T)
audio = pad_random(audio.squeeze(0), 64600).unsqueeze(0)       # (1, 64600)

with torch.inference_mode():
    logits = model(audio.to(device))  # (1, 2)
    score_spoof = logits[0, 0].item()
    score_bonafide = logits[0, 1].item()

print({"score_bonafide": score_bonafide, "score_spoof": score_spoof})

Threshold-based classification (and how to tune it)

In model.py, the SpectraAASIST class provides classify() with a default threshold chosen as an “optimal” value for the original setting:

  • Default threshold: -1.140625 (it thresholds logit_bonafide = logits[:, 1])
  • Note: this threshold may not be optimal on a different dataset/domain. It’s recommended to tune the threshold on your dataset using EER (Equal Error Rate) or a target FAR/FRR.

Example:

with torch.inference_mode():
    pred = model.classify(audio.to(device), threshold=-1.140625)  # 1=bonafide, 0=spoof

Tuning the threshold via EER (typical workflow)

  1. Run the model on a labeled set and collect scores for both classes.

  2. Compute EER and the threshold

Limitations and notes

  • This is a pre-release model.
  • Significantly stronger models are planned for Q3–Q4 2026 — stay tuned.

License

MIT (see the license field in the model repo header).

Contacts

TG channel: https://t.me/korallll_ai email: k.n.borodin@mtuci.ru (deprecated — use kborodin.research@gmail.com) website: https://lab260.ru/

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · pytorch · audio-classification

Нельзя запустить

В репозитории нет config.json: не понять архитектуру модели.

Ревизия весов
eb65c26

0 моделей