Sakhanda Wire
NVDA $230.86 +1.09% MSFT $512.80 -0.02% GOOGL $338.24 -1.70% META $725.93 +0.10% AMZN $248.23 -0.37%
← К новостям

Знайте, кто и когда говорил: создавайте многоговорящий ИИ в реальном времени с NVIDIA Nemotron 3 Diarization

Знайте, кто и когда говорил: создавайте ИИ в реальном времени с несколькими говорящими на базе NVIDIA Nemotron 3 Diarization
Для предприятий + Статья
Опубликовано 23 сентября 2026 года

Превращайте перекрывающиеся разговоры в данные с информацией о говорящих с помощью одной модели со 100 млн параметров и открытыми весами — №1 в рейтинге диаризации VoiceArena с показателем ошибки диаризации (DER) 14,72%.

Почему диаризация говорящих важна

Каждый разговор содержит два уровня информации: что было сказано и кто это сказал. Распознавание речи фиксирует и транскрибирует слова. Диаризация говорящих определяет, кто и когда говорил, помогая приложениям связать сказанное с нужным участником.

Представьте расшифровку совещания, разговора с клиентом или подкаста, в которой каждое предложение верно, но ни одно не связано с конкретным говорящим. Вы можете прочитать слова, но не можете надёжно определить, кто взял на себя обязательство, кто высказал возражение или какой участник перебил другого. Поиск, сводки, задачи, аналитика разговоров и память голосового агента становятся менее полезными.

Диаризация говорящих определяет временные интервалы, в течение которых активен каждый говорящий, включая интервалы, когда люди говорят одновременно. Затем эти временные метки говорящих можно объединить с автоматическим распознаванием речи (ASR), чтобы создать расшифровку с указанием говорящих.

NVIDIA Nemotron 3 Diarization — модель со 100 млн параметров и открытыми весами, занимающая первое место в рейтинге Diarization-Bench от VoiceArena с показателем ошибки диаризации (DER) 14,72%. Поддерживая до восьми говорящих в живых и записанных разговорах, она обрабатывает перекрывающуюся речь, поддерживает обработку фрагментами для записи произвольной длины и позволяет настраивать задержку потоковой обработки.

Screenshot 2026-09-23 at 6.47.17 AM

Более ранние модели, такие как NVIDIA Streaming Sortformer, реализовали этот подход для диаризации четырёх говорящих, включая использованную ниже в качестве базовой контрольную точку streaming diar_streaming_sortformer_4spk-v2.1. Nemotron 3 Diarization расширяет поддержку до восьми говорящих и повышает точность и пропускную способность, измеренные в следующих оценках.

Как работает Nemotron 3 Diarization

Одна модель для офлайн- и потоковых разговоров

Системы диаризации должны решать две связанные задачи. Во-первых, они должны обнаруживать речь и назначать её правильному говорящему. Во-вторых, они должны сохранять это соответствие на протяжении всего разговора, даже после пауз, перебиваний или длительных промежутков между репликами говорящего.

Потоковая обработка усложняет вторую задачу. Офлайн-модель может одновременно анализировать всю запись. Потоковая система получает лишь небольшой фрагмент нового аудио и ограниченный контекст. Без эффективного механизма памяти говорящий, назначенный одному выходному каналу в текущем фрагменте, может быть назначен другому каналу в следующем.

Nemotron 3 Diarization использует подход Sortformer, упорядочивая выходных говорящих по времени их первого появления. Первый новый голос становится первым каналом говорящего, следующий новый голос — вторым и так далее. Такое упорядочивание по времени появления делает универсальные метки говорящих стабильными и устраняет необходимость заново решать задачу перестановки говорящих для каждого фрагмента.

Nemotron 3 Diarization обучалась на общедоступных и лицензированных речевых данных, включая размеченные для нескольких говорящих реальные разговоры, лицензированные у David AI. Дополнительные лицензированные аудиоданные David AI использовались как исходный материал для крупномасштабных симулированных англоязычных и многоязычных смесей на 21 языке. Добавление данных David AI в обучающую выборку снизило совокупную ошибку диаризации (DER) на 0,77 процентного пункта — с 11,19% до 10,42% — как в режиме, близком к офлайн-обработке, так и в режиме со сверхнизкой задержкой.

Модель поддерживает до восьми каналов говорящих. Это анонимные метки, а не реальные личности: модель может сообщить, что speaker_2 говорил с одной временной отметки до другой, но не определяет, что speaker_2 — конкретный человек. Последующие приложения могут сопоставлять эти анонимные идентификаторы каналов с явными личностями говорящих, объединяя временные метки с метаданными совещания, профилями пользователей или действующими моделями верификации говорящего.

От аудио к активности говорящих

Модель принимает одноканальное аудио с частотой 16 кГц и преобразует его в признаки мел-спектрограммы с шагом кадра 10 мс. Она объединяет эти признаки с коэффициентом восемь, формируя кадры длительностью 80 мс для 31-слойного кодировщика Transformer с вращательными позиционными эмбеддингами (RoPE).

01_Nemotron_3_Diarization_Architecture_Flow

Рисунок 1. Nemotron 3 Diarization преобразует аудио в вероятности активности говорящих, упорядоченных по времени появления. Контекст AOSC и FIFO поддерживает потоковый вывод.

Над Transformer расположен слой Conv1D, повышающий дискретизацию предсказаний до разрешения входных признаков. По умолчанию выход представляет собой тензор с плавающей точкой [T, 8]: T временных шагов и восемь возможных каналов говорящих. Каждое значение — вероятность активности говорящего в данный момент времени. Шаг по умолчанию составляет 10 мс и может быть настроен на другое значение, кратное 10 мс.

Такая форма представления естественным образом обрабатывает перекрытия. Если два человека говорят одновременно, два канала могут быть активны в одном кадре. Постобработка преобразует эти вероятности в универсальные метки говорящих с временными метками начала и конца.

Во время потокового вывода контекст обеспечивают два вида памяти:

  • Кэш говорящих в порядке появления (Arrival-Order Speaker Cache, AOSC) сохраняет полезную информацию о говорящих, наблюдавшихся в предыдущих фрагментах, организуя её в соответствии с каналами, упорядоченными по времени появления.
  • Очередь «первым вошёл — первым вышел» (FIFO) предоставляет контекст недавних кадров перед текущим фрагментом.

Входной буфер также включает правый контекст — аудио, расположенное сразу после текущего фрагмента. Больший правый контекст может помочь модели интерпретировать переходы между говорящими, тогда как меньший правый контекст сокращает время ожидания результата. Вместе текущий фрагмент, правый контекст, очередь FIFO и кэш говорящих позволяют одной модели работать при нескольких уровнях задержки.

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

Диаризация и ASR с атрибуцией говорящих (ASR для нескольких говорящих) — разные задачи

Автономная диаризация выдаёт активность говорящих и временные метки, но не слова. ASR выдаёт текст, но не обязательно сохраняет атрибуцию говорящих. Конвейер транскрибации с атрибуцией говорящих объединяет оба результата:

02_Diarization_and_Speaker_Attributed_ASR_Pipeline

Рисунок 2. Сквозной конвейер транскрибации с атрибуцией говорящих, объединяющий временные метки диаризации аудио с автоматическим распознаванием речи (ASR) для сопоставления произнесённых слов с конкретными говорящими.

Это разделение важно при проектировании системы. Ошибки диаризации включают пропущенную речь, ложные обнаружения речи, неверное назначение говорящих и ошибки границ. Ошибки ASR влияют на слова. Приложениям следует оценивать оба компонента и объединённый конвейер на аудио, соответствующем предполагаемому сценарию использования.

Балансируйте задержку и точность

Одна и та же модель поддерживает рекомендуемые задержки входного буфера 30,4, 1,04, 0,64 и 0,32 секунды. Более короткие буферы позволяют системе быстрее реагировать, а больший контекст обычно повышает точность и пропускную способность. Эти значения измеряют аудио, буферизованное до вывода; вычисления, сеть, ASR и обработка приложением добавляют задержку сквозного цикла. Хотя технически модель может использовать входной буфер длительностью 80 мс, минимальной рекомендуемой конфигурацией является 0,32 секунды. В таблице конфигураций в разделе «Начало работы» показано, как выбрать рабочую точку.

Результаты тестирования: №1 в первом рейтинге Diarization-Bench от VoiceArena

В первых результатах Diarization-Bench от VoiceArena NVIDIA Nemotron 3 Diarization заняла первое место среди 12 систем и 17 конфигураций, протестированных на 139 англоязычных разговорах общей продолжительностью около 22 часов. При учёте перекрывающейся речи, обнаружении активности речи самой системой и отсутствии допуска по границам Nemotron 3 Diarization достигла показателя ошибки диаризации (DER) 14,72% по сравнению с 19,3% у следующей системы — относительное снижение примерно на 24%. Она также заняла первое место при допусках 100 и 250 мс, а также для очных и онлайн-записей. Эти первоначальные результаты могут измениться после завершения Voice Arena оценки версии 1 и парного статистического анализа.

Рисунок 3. Результаты Voice Arena Diarization-Bench v1 (английский язык, допуск 0 мс, меньшее значение DER лучше), показывающие первое место NVIDIA Nemotron 3 Diarization с DER 14,72%.

На рисунке ниже использованы результаты оценки Nemotron 3 Diarization. Они сравнивают модель с предыдущей четырёхканальной Streaming Sortformer от NVIDIA при опубликованных настройках оценки и пропускной способности.

04_Nemotron_3_Diarization_Public_Benchmark_Summary

Рисунок 4. Показатели ошибки диаризации (DER) на восьми общедоступных тестах при задержке вывода 1,04 секунды, демонстрирующие результаты Nemotron 3 Diarization уровня state of the art по сравнению с предыдущей базовой моделью NVIDIA Sortformer.

Измерение точности диаризации

Основная метрика оценки модели — показатель ошибки диаризации (DER). Он объединяет три вида ошибок:

  • Пропущенная речь: эталонный говорящий был активен, но система не обнаружила соответствующую речь.
  • Ложное срабатывание: система отметила говорящего как активного, хотя в эталоне соответствующая речь отсутствовала.
  • Смешение говорящих: система обнаружила речь в правильный момент, но присвоила её неправильному говорящему.

05_Diarization_Error_Rate_Error_Types

Рисунок 5. DER складывается из пропущенной речи, ложных срабатываний и смешения говорящих, а затем делится на общее эталонное время говорящих. Каждый перекрывающийся эталонный говорящий учитывается в знаменателе.

Настройки тестирования могут существенно изменить DER, поэтому протокол оценки является частью результата. Оценка Nemotron 3 включает 901 запись с различными условиями: многоязычная телефонная речь, совещания, микрофоны ближнего и дальнего поля, запись несколькими микрофонами и сложные акустические среды. Перекрывающаяся речь учитывается во всех оценках.

В DIHARD III, AliMeeting, AMI и NOTSOFAR1 используется допуск 0 секунд, то есть никакая погрешность границ не исключается из оценки. В CALLHOME-Part2 используется допуск 0,25 секунды. Результаты получены с помощью скрипта оценки NeMo e2e_diarize_speech.py.

В приведённом ниже сравнении в качестве базовой модели используется diar_streaming_sortformer_4spk-v2.1 — предыдущая потоковая Sortformer NVIDIA для четырёх говорящих. Использованы итоговые значения Nemotron-3-Diarization, а не результаты предварительной модели.

В среднем на 40% меньше DER при задержке 1,04 секунды

06_DER_Comparison_at_1_04_Second_Latency

Рисунок 6. DER на полном наборе для итоговой модели и предыдущей базовой модели NVIDIA при задержке входного буфера 1,04 секунды. Меньшее значение лучше.

При задержке входного буфера 1,04 секунды Nemotron 3 Diarization снижает DER во всех восьми перечисленных условиях оценки. Относительное снижение составляет от 9,0% для CALLHOME-Part2 до 65,2% для NOTSOFAR1 MHM.

Невзвешенное среднее восьми относительных снижений по наборам данных составляет 41,0%. Иными словами, это среднее относительное улучшение по условиям оценки; это не объединённый DER, рассчитанный объединением всех записей в одну оценку.

Улучшение также сохраняется при разных рабочих точках. При каждой задержке, общей для двух моделей (30,4, 1,04 и 0,32 секунды), итоговая модель имеет меньший DER на полном наборе для каждого оцениваемого набора данных.

07_DER_Across_Input_Buffer_Latency_Settings

Рисунок 7. DER на полном наборе при различных настройках задержки входного буфера. Предыдущая базовая модель не имеет конфигурации 0,64 секунды.

Улучшения растут в условиях с большим числом говорящих

Поддержка восьми говорящих позволяет обрабатывать совещания и групповые разговоры более чем с четырьмя участниками. Преимущество в тестах также увеличивается в подмножествах DIHARD III, CALLHOME-Part2 и NOTSOFAR1 с большим числом говорящих.

08_DER_by_Speaker_Count_Group

Рисунок 8. DER при задержке входного буфера 30,4 секунды в разбивке по числу говорящих. Заштрихованные области содержат более четырёх говорящих.

Рисунок также сохраняет важную деталь: в подмножестве CALLHOME с двумя говорящими итоговая модель показывает DER 5,98% по сравнению с 5,68% у предыдущей базовой модели. Однако во всей оценке CALLHOME-Part2 DER улучшается с 10,32% до 9,10%, причём наибольший выигрыш наблюдается в подмножествах с большим числом говорящих.

В DIHARD III записи с пятью — девятью говорящими объединяются в один результат. Девять говорящих превышают поддерживаемый Nemotron 3 Diarization максимум в восемь, поэтому этот агрегированный результат включает аудио за пределами заданного ограничения по числу говорящих.

Точность и пропускная способность

Готовая к развёртыванию система диаризации должна обеспечивать баланс точности и пропускной способности. В карточке модели указано ускорение относительно реального времени (RTFx), рассчитанное как общая продолжительность аудио, делённая на общее время обработки. Чем выше RTFx, тем больше аудио система обрабатывает за единицу вычислительного времени.

09_DIHARD_III_DER_vs_Compiled_Throughput

Рисунок 9. DER на полном наборе DIHARD III в зависимости от пропускной способности компилированной модели при размере пакета 32. Результаты получены в BF16 с бэкендом NeMo PyTorch на NVIDIA RTX PRO 5000.

В конфигурации 30,4 секунды Nemotron 3 Diarization достигает 15 113× RTFx при размере пакета 32 с torch.compile(), по сравнению с 2 619× у предыдущей базовой модели, одновременно снижая DER DIHARD III с 19,09% до 12,73%. В конфигурации 1,04 секунды она достигает 865× против 136×, снижая DER с 19,60% до 13,18%.

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

Посмотрите Nemotron 3 Diarization в действии

Изучите живую демонстрацию модели Nemotron Diarization, чтобы связать временные метки говорящих модели с разговором, за которым можно следить. Приложение предлагает синтетические разговоры, режим с восемью говорящими, ввод с микрофона в реальном времени и сценарии стресс-тестирования. Мы также добавили живой микрофон для многоязычных моделей ASR, чтобы вы могли выполнять потоковую диаризацию в реальном времени для говорящих на разных языках.

Начните с раздела Conversation с предварительно загруженной темой, затем следите за активностью говорящих и живой расшифровкой во время разговора. Обращайте внимание на перебивания и сравнивайте время звучания голосов с отображаемой активностью говорящих. Для собственного разговора используйте Live Mic или Multilingual Live Mic. Наконец, вы можете загрузить заранее записанный аудиофайл во вкладке Audio File.

Следующий вымышленный диалог иллюстрирует разницу, которую даёт атрибуция говорящих; это не измеренный результат демонстрации:

Без атрибуции говорящих С атрибуцией говорящих
«Я отправлю отчёт». «Можете включить цифры?» «Да, к пятнице». speaker_0: «Я отправлю отчёт». speaker_1: «Можете включить цифры?» speaker_0: «Да, к пятнице».

С метками говорящих приложение может связать обязательство с тем же участником, который отвечает на уточняющий вопрос. Временная шкала добавляет информацию, которую обычный текст показать не может: два говорящих могут быть активны одновременно. Последующий суммаризатор может использовать транскрипцию с атрибуцией для извлечения задач, сохраняя исходного говорящего и временные метки.

Подготовленные сценарии используют синтетическое аудио. В некоторых сценариях с восемью говорящими перед слышимым разговором предоставляется короткая подсказка с контекстом говорящих; они демонстрируют поведение с этим контекстом и не являются тестом без предварительного контекста. Имена и роли участников относятся к логике сценария приложения. Nemotron 3 Diarization предоставляет универсальные каналы говорящих и временные метки, а не верификацию личности.

Перенесите транскрибацию с учётом говорящих в реальном времени на устройство

Argmax добавила поддержку NVIDIA Nemotron 3 Diarization в Argmax Pro SDK 3, обеспечив атрибуцию говорящих в реальном времени для разговоров с числом участников до восьми, а также представила API предварительно диаризованной транскрибации, который разделяет говорящих до распознавания речи и призван улучшить транскрибацию сложных разговоров с перекрывающейся речью.

Посмотрите демонстрацию, чтобы увидеть работу Nemotron 3 Diarization с Argmax Pro SDK 3.

Начало работы с NVIDIA NeMo Speech

Ниже мы покажем несколько кратких руководств по объединению диаризации с моделями ASR: потоковый ASR, только диаризация и офлайн-ASR.

Установите зависимости

Установите системные пакеты и зависимости NVIDIA NeMo для речи после настройки Python 3.12 или более поздней версии, Cython и актуальной версии PyTorch.

apt-get update && apt-get install -y libsndfile1 ffmpeg
uv pip install Cython packaging
uv pip install 'nemo-toolkit[asr]'

Реализуйте потоковую диаризацию с потоковым ASR (ASR для нескольких говорящих) в реальных сценариях

Для оценки производительности ASR и диаризации (ASR для нескольких говорящих) обратитесь к краткому руководству по диаризации с потоковым ASR.

Запустите офлайн-диаризацию записи

Используйте монозапись с частотой 16 кГц, содержащую двух или более говорящих, и замените /path/to/conversation.wav её путём. Следующий пример загружает контрольную точку и использует рекомендуемую конфигурацию 30,4 секунды, близкую к офлайн-режиму.

from nemo.collections.asr.models import SortformerEncLabelModel

diar_model = SortformerEncLabelModel.from_pretrained(
    "nvidia/Nemotron-3-Diarization"
)
diar_model.eval()


diar_model.sortformer_modules.spkcache_len = 264
diar_model.sortformer_modules.fifo_len = 40
diar_model.sortformer_modules.chunk_len = 340
diar_model.sortformer_modules.chunk_right_context = 40
diar_model.sortformer_modules.spkcache_update_period = 300
diar_model._check_streaming_parameters()

predicted_segments = diar_model.diarize(
    audio=["/path/to/conversation.wav"],
    batch_size=1,
)

for segment in predicted_segments[0]:
    print(segment)

Метод diarize() возвращает сегменты с метками говорящих в виде строк формата start_seconds end_seconds speaker_id. Например, структура вывода может выглядеть так (иллюстративные временные метки, а не измеренный результат модели):

0.400 2.100 speaker_0
1.800 3.250 speaker_1
3.600 4.700 speaker_0

Здесь оба говорящих активны между 1,800 и 2,100 секунды. Один говорящий может появляться в нескольких сегментах, а интервалы не обязаны быть взаимоисключающими. Чтобы также получить исходные тензоры активности говорящих, установите include_tensor_outputs=True.

API принимает путь к аудио, список путей, массивы NumPy или JSON-манифест с разделителями строк. При передаче массивов NumPy укажите правильный целочисленный sample_rate; частота дискретизации аудиофайлов по умолчанию составляет 16 кГц. Nemotron 3 Diarization поддерживает одноканальное аудио 16 кГц в форматах .wav, .flac, .opus и .mp3. Модель предназначена для систем Linux с поддерживаемыми графическими процессорами NVIDIA Ampere, Hopper или Blackwell.

Выберите рабочую точку по соотношению задержки и качества

Nemotron 3 Diarization предоставляет параметры потоковой обработки в единицах 80-мс кадров кодировщика. Рекомендуемые конфигурации охватывают диапазон от обработки в стиле офлайн до потоковой обработки со сверхнизкой задержкой.

Конфигурация Задержка входного буфера Кэш говорящих FIFO Фрагмент Правый контекст Период обновления кэша
В стиле офлайн 30.4 s 264 40 340 40 300
Низкая задержка 1.04 s 264 264 9 4 222
Очень низкая задержка 0.64 s 264 264 6 2 222
Сверхнизкая задержка 0.32 s 264 264 3 1 222

Значения задержки в этой таблице — это задержка входного буфера, рассчитанная как: (CHUNK_LEN + RIGHT_CONTEXT) × 80 мс

Они не включают вычисления модели, передачу по сети, ASR или обработку приложением. Хотя технически модель может использовать входной буфер всего 80 мс, минимальной рекомендуемой конфигурацией является 0,32 секунды. Уменьшение задержки обычно снижает и точность, и пропускную способность, поэтому разработчикам следует выбирать рабочую точку с учётом требований продукта к сквозному циклу, а не только длительности буфера.

Используйте все пять значений параметров из одной строки в примере вывода, затем вызовите _check_streaming_parameters() перед запуском диаризации. Кэш говорящих сохраняет контекст предыдущих говорящих; FIFO управляет недавней историей; фрагмент и правый контекст задают задержку входного буфера; период обновления кэша определяет, какой объём контекста FIFO используется для обновления кэша.

Объедините диаризацию с офлайн-ASR

Запустите ASR и диаризацию для одной и той же записи и временной шкалы. Например, можно использовать Nemotron ASR 3.5 или Parakeet TDT 0.6B v3, которые могут возвращать временные метки слов. Следующий минимальный офлайн-пример повторно использует predicted_segments из предыдущего примера и связывает каждое слово с говорящим, активным в его середине:

from nemo.collections.asr.models import ASRModel

asr_model = ASRModel.from_pretrained(
    model_name="nvidia/parakeet-tdt-0.6b-v3"
)
words = asr_model.transcribe(
    ["/path/to/conversation.wav"], timestamps=True
)[0].timestamp["word"]

turns = []
for segment in predicted_segments[0]:
    start, end, speaker = segment.split()
    turns.append((float(start), float(end), speaker))

def speaker_at(midpoint):
    active = sorted({
        speaker for start, end, speaker in turns if start <= midpoint < end
    })
    if len(active) == 1:
        return active[0]
    return "overlap/ambiguous" if active else "unassigned"

for word in words:
    midpoint = (word["start"] + word["end"]) / 2
    label = speaker_at(midpoint)
    print(f"{word['start']:.2f}-{word['end']:.2f} {label}: {word['word']}")

Это правило средней точки представляет собой простую эвристику выравнивания. Оно помечает одновременную активность говорящих как неоднозначную и оставляет слова за пределами обнаруженной речи неназначенными. Оно не разделяет перекрывающиеся голоса и не определяет, какой из активных говорящих произнёс слово, распознанное ASR. Для производственной транскрипции оцените выравнивание границ слов, обработку перекрытий и ошибки обеих моделей на репрезентативном аудио, прежде чем объединять соседние слова в реплики говорящих.

Особенности развёртывания

Модель поддерживает максимум восемь говорящих. Если в записи их больше, речь может быть пропущена или назначена неправильному каналу. Шум, сильная реверберация, запись из дальней зоны, сдвиг домена и длинные разговоры также могут увеличить число пропусков речи, ложных срабатываний, ошибок границ или случаев смешения говорящих.

Последующим приложениям следует сохранять полезную информацию о неопределённости, а не считать каждое назначение говорящего безошибочным. Оценивайте полную систему на аудио, репрезентативном для предполагаемой среды, особенно перед использованием атрибуции говорящих в регулируемых, критически важных для безопасности или значимых рабочих процессах.

Использование модели регулируется лицензионным соглашением OpenMDW, версия 1.1.

Ресурсы и следующие шаги

Создавайте решения с партнёрами экосистемы NVIDIA

Модели, упомянутые в этой статье 3

Сообщество

Загружайте изображения, аудио и видео, перетаскивая их в поле ввода текста, вставляя или нажимая здесь.
Нажмите или вставьте сюда, чтобы загрузить изображения

· Зарегистрируйтесь или войдите, чтобы оставить комментарий

Поддержать
4
← К новостям

Ещё новости

Все последние новости