/ Модель

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

Лицензия
Apache 2.0
Архитектура
eres2netv2 · dense
Библиотека
onnx
Опубликована
26 сен 2026

eres2netv2-sv-zh-cn-16k-onnx

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

ERes2NetV2 преобразует речь на частоте 16 кГц в эмбеддинги для сравнения голосов и проверки личности говорящего.

29скачиваний за 30 дней0лайковвеса обновлены26 сен 2026

Бенчмарки

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

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

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

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

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

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

ERes2NetV2 — модель для проверки личности говорящего, разработанная Alibaba и представленная здесь в виде экспорта ONNX, преобразованного из iic/speech_eres2netv2_sv_zh-cn_16k-common. Архитектура ERes2NetV2 содержит около 17,8 млн параметров; файл весит примерно 71 МБ и хранит веса вместе с моделью. Репозиторий распространяет модель в формате ONNX Opset 18, float32, для запуска через ONNX Runtime.

Модель принимает логарифмические Mel-фильтры размерностью 80, рассчитанные для аудио с частотой 16 кГц, и выдаёт вектор эмбеддинга говорящего размерностью 192. Размеры пакета и временной последовательности динамические. Эмбеддинги предназначены для сравнения голосов по косинусному сходству и кластеризации говорящих; перед сравнением README предписывает нормировать векторы по L2. Карточка приводит ориентировочные пороги сходства и расстояния для проверки совпадения и кластеризации.

Модель подходит для голосовой верификации и как компонент диаризации, но сама не возвращает транскрипт или метки говорящих по временным отрезкам. Для работы требуется предварительно извлечь признаки log-Mel в заданном формате; пороги сходства являются ориентировочными. Лицензия — Apache-2.0.

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

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

Ограничения

Модель принимает готовые 80-мерные log-Mel признаки, а не исходную аудиозапись; перед сравнением эмбеддинги нужно нормировать по L2. Приведённые в README пороги сходства ориентировочны и могут быть неоднозначны для искажённой речи.

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

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

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

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

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

Открыть на Hugging Face

ERes2NetV2 Speaker Verification (ONNX)

This repository provides an optimized, single-file ONNX Opset 18 export of Alibaba's ERes2NetV2 speaker verification model, converted from iic/speech_eres2netv2_sv_zh-cn_16k-common.

All weights are consolidated directly into eres2netv2.onnx (~71 MB) for drop-in deployment without external data blobs.

Model Details

  • Architecture: ERes2NetV2
  • Parameters: ~17.8 Million
  • File: eres2netv2.onnx (single self-contained model, float32)
  • Input Feature: 80-dimensional log-Mel filterbanks (16 kHz, 25ms window, 10ms hop, Povey window, Cepstral Mean Normalization)
  • Input Tensor: feature with shape [batch_size, frame_num, 80] (dynamic time & batch)
  • Output Tensor: embedding with shape [batch_size, 192]
  • Normalization: The graph outputs raw embeddings ($L_2$ norm $\approx 126$). You must apply $L_2$ unit normalization (emb / ||emb||) before calculating cosine similarity.

Python Usage (ONNX Runtime)

import numpy as np
import onnxruntime as ort
import soundfile as sf
import torch
import torchaudio

# 1. Load audio and compute 80-dim Kaldi FBanks
audio, sr = sf.read("voice.wav", dtype="float32")
if audio.ndim > 1:
    audio = np.mean(audio, axis=-1)

waveform = torch.from_numpy(audio).unsqueeze(0)
if sr != 16000:
    waveform = torchaudio.transforms.Resample(sr, 16000)(waveform)

fbank = torchaudio.compliance.kaldi.fbank(
    waveform,
    num_mel_bins=80,
    frame_length=25.0,
    frame_shift=10.0,
    dither=0.0,
    sample_frequency=16000,
)
fbank = (fbank - fbank.mean(dim=0, keepdim=True)).unsqueeze(0).numpy().astype(np.float32)

# 2. Extract embedding
session = ort.InferenceSession("eres2netv2.onnx", providers=["CPUExecutionProvider"])
raw_embedding = session.run(["embedding"], {"feature": fbank})[0].squeeze()

# 3. Apply L2 normalization
embedding = raw_embedding / np.linalg.norm(raw_embedding)

Rust Usage (ort + kaldi-native-fbank)

use ndarray::Array3;
use ort::session::Session;

// Run session with shape [1, frame_num, 80]
let outputs = session.run(ort::inputs![
    "feature" => input_tensor.view()
]?)?;

let (_shape, raw_data) = outputs["embedding"]
    .try_extract_raw_tensor::<f32>()?;

let mut embedding = [0.0f32; 192];
embedding.copy_from_slice(raw_data);

// Normalize to unit sphere
let norm = embedding.iter().map(|&x| x * x).sum::<f32>().sqrt();
for x in embedding.iter_mut() {
    *x /= norm;
}

Operating Thresholds

For raw cosine similarity ($A \cdot B$ on unit vectors):

  • Same Speaker (Genuine Match): > 0.65
  • Ambiguous / Distorted: 0.55 – 0.65
  • Different Speaker (Impostor): < 0.55 (studio/gender matched pairs hover around ~0.48 – 0.52)

For Agglomerative Hierarchical Clustering (AHC) in diarization pipelines, use Average Linkage with a cosine distance threshold ($1.0 - \text{cosine}$) of 0.36 – 0.38.

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

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

GPU в ailist

Универсальный рантайм · onnx

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

В репозитории нет весов в формате PyTorch/safetensors.

Ревизия весов
45cd4c6

0 моделей