/ Модель

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

Лицензия
CC BY-NC-SA 4.0
Библиотека
mect
Опубликована
14 сен 2026

AntSpeaker

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

MECT — компактная модель на CNN-Transformer с механизмом смеси экспертов для проверки личности говорящего по голосу, включая потоковый вариант.

1 026скачиваний за 30 дней17лайковвеса обновлены29 сен 2026

Бенчмарки

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

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

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

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

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

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

AntResearch публикует в этом репозитории контрольные точки MECT — модели проверки личности говорящего по голосу. MECT сочетает свёрточную сеть и Transformer с механизмом смеси экспертов (MoE); представлены варианты с маршрутизацией на уровне высказывания или аудиокадров, плотной или разреженной маршрутизацией. Размеры моделей в карточке составляют от 3,78 до 9,57 млн параметров.

Модели предназначены для сравнения голосовых записей и проверки, принадлежат ли они одному человеку. Вариант MECT-B2-Causal поддерживает потоковую проверку с низкой задержкой, например для онлайн-встреч, голосовых помощников и устройств. В README приведены результаты на тестовых наборах VoxCeleb1; библиотека репозитория — mect, формат весов — PyTorch. Лицензия CC BY-NC-SA 4.0 разрешает использование на условиях указания авторства и распространения производных работ на тех же условиях, но запрещает коммерческое использование.

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

  • проверка, принадлежат ли две голосовые записи одному человеку
  • верификация говорящего при входе по голосу
  • извлечение голосовых эмбеддингов для сравнения дикторов
  • потоковая проверка говорящего в онлайн-встречах
  • верификация говорящего в голосовом помощнике или на устройстве

Ограничения

Показатели в README приведены для VoxCeleb1 и не гарантируют качество на других наборах данных или в условиях шума. Лицензия CC BY-NC-SA 4.0 запрещает коммерческое использование.

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

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

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

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

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

Открыть на Hugging Face

MECT

Official model checkpoints for the paper: MECT: Mixture of Experts with CNN-Transformer Network for Speaker verification.

MECT is a speaker verification model that integrates the Mixture-of-Experts (MoE) mechanism into a CNN-Transformer backbone with optimized block structure and stacking scheme. The model explores four MoE variants spanning utterance-level and frame-level granularity with dense and sparse routing strategies, proving that the MoE mechanism is effective over the baseline with only a small increase in parameters.

✨ Key Features

  • Mixture of Experts — integrates the MoE mechanism into a CNN-Transformer backbone with optimized block structure and stacking scheme, exploring four MoE variants that span utterance-level and frame-level granularity with dense and sparse routing strategies
  • Lightweight and scalable — four model sizes ranging from 3.78M to 9.57M parameters
  • Strong performance — competitive EER on VoxCeleb1 benchmarks
  • Streaming support — a streaming speaker verification model is also provided for real-time, low-latency scenarios such as live meetings, voice assistants, and on-device applications

📦 Model Variants

This repository provides 4 model sizes with 6 checkpoints in total:

ModelParametersTraining DataCheckpoint File
MECT-A13.78Mvc2mect_a1_vc2.pt
MECT-A24.12Mvc2mect_a2_vc2.pt
MECT-B18.26Mvc2mect_b1_vc2.pt
MECT-B29.57Mvc2mect_b2_vc2.pt
MECT-B29.57Mvc2+vb2mect_b2_vb2.pt
MECT-B2-Causal9.57Mvc2mect_b2_vc2_streaming.pt

MECT-B2-Causal is a streaming variant of MECT-B2 to support streaming speaker verification.

📊 Performance

VoxCeleb1 Test Sets (EER % / minDCF)

ModelTraining DataCalibrationVox1-OVox1-EVox1-H
MECT-A1VoxCeleb2No0.44 / 0.0380.60 / 0.0601.05 / 0.108
MECT-A2VoxCeleb2No0.37 / 0.0320.54 / 0.0560.97 / 0.096
MECT-B1VoxCeleb2No0.37 / 0.0290.50 / 0.0510.94 / 0.092
MECT-B2VoxCeleb2No0.27 / 0.0240.46 / 0.0480.85 / 0.082
MECT-B2VoxCeleb2 + VoxBlink2No0.23 / 0.0130.29 / 0.0280.54 / 0.052
MECT-B2VoxCeleb2 + VoxBlink2Yes0.22 / 0.0120.28 / 0.0260.52 / 0.048

🚀 Quick Start

1. Download Model Checkpoints

From HuggingFace:

# Clone the HuggingFace repo (requires Git LFS)
git lfs install
git clone https://huggingface.co/AntResearch/AntSpeaker

# Or download a single checkpoint
hf download AntResearch/AntSpeaker mect_b2_vc2.pt --local-dir ./

From GitHub:

Model checkpoints are available on HuggingFace. Source code is hosted on GitHub.

2. Installation

pip install torch torchaudio soundfile

3. Extract Speaker Embeddings

import torch
import torchaudio
import soundfile as sf
import torchaudio.compliance.kaldi as kaldi
import antspeaker.models
from antspeaker.utils.registry import create_model

# 1. Load model
ckpt = torch.load("mect_b2_vc2.pt", map_location="cpu")
model = create_model(ckpt["config"]["model"])
model, _ = model.load_model("mect_b2_vc2.pt")
feat_config = ckpt["config"]["feature"]

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

# 2. Load audio (resample to model's sampling rate if needed)
waveform, sr = sf.read("example.wav", dtype="float32")
waveform = torch.from_numpy(waveform.T).unsqueeze(0) 
if sr != feat_config["sampling_rate"]:
    waveform = torchaudio.transforms.Resample(
        orig_freq=sr, new_freq=feat_config["sampling_rate"])(waveform)

# 3. Extract 80-dim Mel filterbank features
fbank = kaldi.fbank(
    waveform * (1 << 15),
    num_mel_bins=feat_config["num_mel_bins"],
    frame_length=feat_config["frame_length"],
    frame_shift=feat_config["frame_shift"],
    dither=feat_config["dither"],
    energy_floor=0.0,
    window_type="hamming",
    sample_frequency=feat_config["sampling_rate"],
)
fbank = fbank.unsqueeze(0).transpose(-1, -2)

# 4. Extract embedding
with torch.no_grad():
    embedding = model(fbank.to(device)).cpu()

4. Speaker Verification

import torch.nn.functional as F

# Extract embeddings for two utterances
emb1 = model(fbank1.to(device)).cpu()
emb2 = model(fbank2.to(device)).cpu()

# Cosine similarity
cosine_sim = F.cosine_similarity(emb1, emb2)
print(f"Cosine similarity: {cosine_sim.item():.4f}")

📝 Citation

If you use MECT in your research, please cite:

@article{zheng2026mect,
    title={MECT: Mixture of Experts with CNN-Transformer Network for Speaker verification}, 
    author={Yu Zheng and Jinghan Peng and ChangHao Zhang and Jian Liu and Weiqiang Wang},
    journal={arXiv preprint arXiv:2609.24061},
    year={2026},
}

📜 License

This model is released under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC-BY-NC-SA 4.0).

  • Non-Commercial — you may not use this model for commercial purposes
  • Attribution — you must give appropriate credit
  • ShareAlike — derivatives must be licensed under the same terms

See the LICENSE for full details.

🔗 Links

🙏 Acknowledgements

We thank the authors of VoxCeleb2 and VoxBlink2 for providing the training corpora.

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

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

GPU в ailist

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

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

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

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

0 моделей