Диаризация (speaker diarization) — это задача определения того, кто и когда говорил в аудиозаписи. В отличие от распознавания речи (ASR), которое транскрибирует текст, диаризация создает временные метки для каждого спикера. Это критически важно для анализа встреч, колл-центров и подкастов, где нужно связать высказывание с конкретным участником.
NVIDIA представила Nemotron 3 Diarization — open-weight модель с 100 млн параметров, которая заняла 1-е место в VoiceArena Diarization-Bench. Модель обрабатывает до 8 спикеров, поддерживает перекрывающуюся речь и работает в реальном времени с настраиваемой задержкой.
01Почему Nemotron 3 лучше предыдущих решений
Ранее NVIDIA использовала модель diar_streaming_sortformer_4spk-v2.1, поддерживавшую только 4 спикера. Nemotron 3 расширяет лимит до 8 каналов и улучшает точность. Ключевое преимущество — архитектура Sortformer, которая упорядочивает спикеров по времени их первого появления. Это устраняет проблему «перемешивания» идентификаторов спикеров при обработке чанков (chunked processing) в стриминговом режиме.
Модель обучена на данных David AI, что снизило ошибку диаризации (DER) с 11.19% до 10.42% на тестовых наборах. Поддерживается мультиязычность (21 язык в симуляциях), но основной фокус — английский язык.
02Технические характеристики и архитектура
Модель легкая (100M параметров), что позволяет запускать её на потребительских GPU. Входной сигнал: 16 kHz, моно. Внутренняя обработка использует Mel-спектрограммы с шагом 10 мс, которые стекируются в фреймы 80 мс. Трансформер с 31 слоем и позиционными эмбеддингами RoPE обрабатывает эти фреймы.
Выход модели — тензор вероятностей активности спикеров размером [T, 8], где T — количество временных шагов. Если два человека говорят одновременно, активными будут два канала. Постобработка конвертирует эти вероятности в временные метки.
03Баланс между задержкой и точностью
Одна из главных фишек Nemotron 3 — гибкая настройка задержки (latency) через размер входного буфера. Модель использует два механизма памяти для стриминга:
- AOSC (Arrival-Order Speaker Cache): хранит информацию о спикерах из предыдущих чанков.
- FIFO Queue: очередь последних кадров для контекста.
Вы можете выбрать один из рекомендованных режимов буферизации. Меньший буфер = быстрее ответ, но потенциально ниже точность. Больший буфер = выше точность, но больше задержка.
04Бенчмарки: Лидер VoiceArena
В тестировании VoiceArena Diarization-Bench (139 английских разговоров, ~22 часов) Nemotron 3 показала результат 14.72% DER (Diarization Error Rate). Для сравнения, следующий по точности результат составил 19.3%. Это снижение ошибки на ~24% относительно конкурентов.
| Метрика / Режим | Nemotron 3 | Следующий лидер | Примечание |
|---|---|---|---|
| DER (0 ms collar) | 14.72% | 19.3% | Без допусков по границам |
| DER (100 ms collar) | Лидер | - | С допуском 100 мс |
| DER (250 ms collar) | Лидер | - | С допуском 250 мс |
| Поддержка спикеров | До 8 | Обычно 4 | Базовая модель Sortformer |
DER складывается из трех ошибок: пропущенная речь (missed speech), ложные срабатывания (false alarm) и путаница спикеров (speaker confusion). Nemotron 3 особенно хорошо справляется с перекрывающейся речью.
05Как запустить локально
Модель доступна в формате Hugging Face. Для инференса рекомендуется использовать библиотеки, поддерживающие PyTorch и ONNX. Ниже пример базовой загрузки модели и подготовки аудио.
Установка зависимостей:
pip install torch torchaudio transformersПример кода для загрузки модели и предобработки аудио (псевдокод логики):
from transformers import AutoModel, AutoFeatureExtractor
import torch
# Загрузка модели и экстрактора
model = AutoModel.from_pretrained("nvidia/Nemotron-3-8x7B-Diarization") # Проверьте актуальный ID модели
feature_extractor = AutoFeatureExtractor.from_pretrained("nvidia/Nemotron-3-8x7B-Diarization")
# Предобработка аудио (16kHz, моно)
# audio_input - ваш тензор аудио
inputs = feature_extractor(audio, sampling_rate=16000, return_tensors="pt")
# Инференс
with torch.no_grad():
outputs = model(**inputs)
# outputs содержит вероятности активности спикеров
# Требуется постобработка для получения временных метокДля стриминга необходимо реализовать логику чанкинга аудио и управления AOSC/FIFO буферами. NVIDIA предоставляет примеры кода в репозитории, где показано, как настроить размер окна (window size) и шаг (stride) для достижения нужной задержки.
06Кому подойдёт / что запустится
- Локальные серверы: Модель весит мало, но для обработки 8 спикеров в реальном времени с низкой задержкой потребуется GPU с достаточной памятью (VRAM). RTX 3090/4090 (24GB) справятся с батчевой обработкой, но для высоконагруженного стриминга лучше смотреть на A100/H100 или оптимизировать через TensorRT/ONNX Runtime.
- Разработчики голосовых ассистентов: Идеально для интеграции в пайплайн «ASR + Diarization» для создания атрибутированных транскриптов.
- Аналитика колл-центров: Позволяет автоматически размечать разговоры по операторам и клиентам, выявлять перебивания и конфликты.
- Железо: Поддерживается CUDA. Для CPU инференса модель будет работать крайне медленно из-за архитектуры Transformer, поэтому GPU обязателен для практического применения.
Модель бесплатна для коммерческого использования (open-weight), что делает её привлекательной альтернативой облачным API от Google, Amazon или Azure, где стоимость обработки часов аудио может быстро вырасти.
Источник: Hugging Face ↗
