На 15 учебных диалогах врач-пациент из набора PriMock57 общей длительностью около 2,4 часа лучший результат по метрике DER с допуском границ ±250 мс показала Pyannote Precision-3 - 2,891%. Второе место занял Nemotron 3 с 4,803%, и он же стал самым быстрым среди локальных моделей: 0,688 секунды на запись при запуске на одной GPU NVIDIA L4. Число говорящих модели определяли сами, без подсказки о двух участниках.
В потоковом режиме расклад другой: впереди Pyannote live API с 3,959%, а VibeVoice 1.5B и 7B дают 17,210% и 18,032%. Для клинических разговоров такие значения означают, что модель путает спикеров слишком часто, чтобы опираться на неё в разметке реплик.
Читать эти цифры стоит с оговорками. Выборка небольшая, эталонные разметки уточнены через VAD, а настройки проприетарного рантайма подбирались на том же наборе, где измерялся выигрыш. Полный отчёт с таблицами и артефактами опубликован в разборе сравнения диаризации на клинических диалогах.
Как сравнивали модели диаризации: данные, метрика и условия
Тест построен на 15 учебных консультациях врач-пациент из набора PriMock57, суммарно около 2,4 часа аудио. Каждая запись подавалась целиком, без разбиения на короткие окна. Локальные модели работали на одной GPU NVIDIA L4.
Число говорящих модели определяли сами: подсказки о том, что в диалоге два участника, не было. Замеры через API включают сетевые задержки, поэтому время отклика у внешних сервисов не равно времени вычислений на железе.
Из общего правила есть исключение. Meta Muse Voice Transcribe получила вместо полных записей 20 отдельных клипов, потому что у её API лимит запроса в 10 минут. Её результат несопоставим с остальными напрямую, и автор сравнения оговаривает это отдельно.
Что такое DER и почему допуск ±250 мс меняет картину
DER (Diarization Error Rate) - доля времени записи, размеченного неверно. В ошибку попадают четыре вещи: пропущенная речь, которую система отнесла к тишине; речь, приписанная несуществующему говорящему; перепутанные метки спикеров; сдвинутые границы сегментов. Чем ниже значение, тем лучше.
Допуск границ ±250 мс означает, что расхождение с эталоном в пределах четверти секунды за ошибку не считается. Для диаризации это решающая деталь: модель может верно определить, кто говорит, но ошибиться на 100-300 мс в момент смены реплики. Немного другой допуск полностью переписывает таблицу. Nemotron 3 при ±250 мс получает DER 4,803%, при нулевом допуске границ - 12,720%. Рост почти втрое идёт за счёт точности границ, а не путаницы между спикерами.
Отдельный слой погрешности: эталонные разметки уточнены с помощью VAD. Границы речи в референсах расставлены автоматически, и это влияет на итоговые проценты у всех моделей сразу.
Почему в тесте не подсказывали число говорящих
Задача без подсказки сложнее обычного бенчмарка: система делит поток речи на сегменты и параллельно решает, сколько человек в записи. Ошибка в количестве говорящих ломает разметку целиком, и DER растёт сразу по всем составляющим.
В консультации врач-пациент участников обычно двое, но в реальных клинических записях рядом звучит третий голос: медсестра, родственник, шум из коридора. Сценарий без априорного знания о числе спикеров ближе к продакшену, чем тесты с фиксированными двумя дорожками.
Результаты диаризации на полных записях: Pyannote Precision-3 лидирует, Nemotron 3 быстрее всех
Сводка по пакетному режиму на полных записях. Для локальных моделей указано медианное время обработки одной записи на NVIDIA L4.
| Модель | DER, % (допуск ±250 мс) | Медианное время на запись, с | Примечание |
|---|---|---|---|
| Pyannote Precision-3 | 2,891 | API, с сетевыми задержками | Лучший DER в пакетном режиме |
| Nemotron 3 | 4,803 | 0,688 | Самый быстрый среди локальных |
| Pyannote Community-1 | 6,620 | 18,691 | Локальный запуск |
| Sortformer v1 | 6,778 | 3,869 | Локальный запуск |
| Sortformer v2.1 | 7,974 | 1,077 | Локальный запуск, есть потоковый пресет |
| VibeVoice-ASR | 8,233 | 123 | Также выполняет транскрипцию |
| Meta Muse Voice Transcribe | 13,042 | 92 на запрос | API, 20 клипов вместо полных записей |
Pyannote Precision-3: минимальный DER, но какая цена по скорости
2,891% - лучший результат в сравнении, отрыв от Nemotron 3 около 1,9 процентного пункта. Модель работает через API, поэтому в её время попадают сетевые задержки, и напрямую сравнивать его с локальными замерами на NVIDIA L4 нельзя. Для клинических записей здесь добавляется второй вопрос помимо качества: голоса пациентов уходят на внешний сервис, а это уже про политику обработки данных, а не про метрики.
Если ошибка критичнее скорости, Precision-3 выглядит разумным выбором по умолчанию. Если записей сотни и они уходят в пакетную обработку ночью, разница в 1,9 п.п. отходит на второй план по сравнению с ожиданием ответа API.
Nemotron 3: второе место по DER и лучшая скорость среди локальных
DER 4,803% и 0,688 с на запись. Это почти в 27 раз быстрее Pyannote Community-1 с её 18,691 с и в 5,6 раза быстрее Sortformer v1. Для пакетной обработки консультаций врач-пациент, где длина одного файла измеряется минутами, такая скорость меняет схему работы: диаризацию можно ставить в конвейер сразу после записи, не выделяя отдельную очередь.
Плата за скорость - 1,9 п.п. DER относительно Precision-3. Выбор зависит от того, что дороже в конкретном процессе: минуты на обработку или ручной разбор ошибок в стенограмме.
Sortformer v1 и v2.1: компромисс между качеством и скоростью
Две версии одной модели разошлись в разные стороны. Sortformer v1 даёт DER 6,778% за 3,869 с на запись, Sortformer v2.1 - 7,974% за 1,077 с. Вторая версия быстрее примерно в 3,6 раза, но ошибается на 1,2 п.п. чаще. При этом у v2.1 есть нативный потоковый пресет, которого у v1 в отчёте нет.
Практический смысл в том, что версии закрывают разные задачи. Для офлайн-обработки, где минута процессора дешевле ручной правки, подойдёт v1, а для сценариев с жёстким лимитом по времени - v2.1 с оговоркой про более высокий DER.
VibeVoice-ASR и Meta Muse: когда диаризация идёт в комплекте с транскрипцией
VibeVoice-ASR совмещает диаризацию и распознавание речи: DER 8,233%, медианное время 123 с на запись. Одна модель вместо двух в конвейере экономит интеграцию, но 123 секунды против 0,688 у Nemotron 3 - разница почти в 180 раз. Для длинных записей такая цена заметна сразу.
Meta Muse Voice Transcribe показывает DER 13,042% при 92 с на запрос через API. Оговорка важнее самой цифры: 20 отдельных клипов вместо полных записей из-за лимита запроса в 10 минут. Сравнивать этот результат с моделями, которые видели запись целиком, некорректно.
Если собираете локальный стек, где распознавание и разметка спикеров работают рядом, стоит смотреть, какие семейства моделей поддерживаются в актуальных сборках: в audio.cpp 0.6 добавили 49 семейств моделей, WebUI и практические примеры конфигураций.
Потоковый режим: Pyannote live API впереди, VibeVoice заметно отстаёт
| Модель | DER, % в потоковом режиме |
|---|---|
| Pyannote live API | 3,959 |
| Nemotron 3 | 4,971 |
| Sortformer v2.1 | 6,958 |
| VibeVoice 1.5B | 17,210 |
| VibeVoice 7B | 18,032 |
Meta Muse в потоковом режиме не оценивалась.
Почему замеры потокового режима не равны реальной латентности
Для Nemotron 3 и Sortformer v2.1 в потоковом режиме использовались нативные потоковые пресеты, а оценка шла через неразмеренный повтор завершённых файлов. Проще говоря, запись подавалась в модель быстрее реального времени, поэтому по этим цифрам нельзя судить о задержке в живом разговоре. DER здесь отражает качество разметки, а не скорость реакции системы.
Отсюда практическое следствие: для стриминга эти числа годятся как отправная точка для сравнения качества, а замеры задержки придётся делать самому на своём аудиопотоке и своём железе.
VibeVoice 1.5B и 7B: почему ошибка выше 17%
17,210% у версии 1.5B и 18,032% у 7B - это больше чем в четыре раза хуже, чем у Pyannote live API. Более крупная версия показала результат чуть хуже меньшей, что снимает вопрос о том, чтобы брать 7B ради точности.
Причин в отчёте нет, поэтому вывод опирается на сам результат: для клинической диаризации, где ошибка в атрибуции реплики врача или пациента ломает смысл стенограммы, такие значения неприемлемы. Разница между 3,959% и 18,032% - это не нюанс настройки, а разный класс инструментов.
Оптимизация через проприетарный рантайм: минус 34% ошибок у Nemotron, но есть нюанс
Отдельная часть сравнения - запуск Nemotron и Community-1 через проприетарный рантайм. Веса моделей не менялись, менялась обвязка. Результаты: Nemotron - DER с 4,803% до 3,174%, то есть на 34% меньше ошибок и в 2,13 раза быстрее; Community-1 - с 6,620% до 5,435%, на 18% меньше ошибок и в 24 раза быстрее.
Абсолютного времени после ускорения отчёт не приводит, только множители, поэтому для своего пайплайна замеры придётся повторить. Множитель 24 у Community-1 впечатляет сильнее, но стартовая точка у неё была 18,691 с на запись.
Что значит «без изменения весов» и почему это важно
Веса не менялись, значит это не файнтюнинг и не дообучение на клинических данных. Прирост даёт рантайм: управление ресурсами, порядок вычислений, организация инференса. Практический вывод простой - такое улучшение можно получить на уже скачанной модели, без сбора разметки и обучения. Похожая логика работает и в LLM-инференсе, где патчи рантайма ускоряют модель без единой правки в весах: эксперимент по ускорению MoE-инференса в llama.cpp на RTX 4080 показывает, где прирост реальный, а где всё упирается в железо.
Риск переобучения на тестовом наборе
Настройки рантайма разрабатывались на том же наборе PriMock57, на котором потом измерялся выигрыш. Это классическая ловушка: часть улучшения может объясняться подгонкой под конкретные 15 диалогов, а не общей работой рантайма. На других записях, с другим микрофоном, другим темпом речи и другим уровнем шума, выигрыш может оказаться меньше.
Ещё один аргумент против слишком оптимистичных выводов: при нулевом допуске границ результат Nemotron после работы с рантаймом немного ухудшился, с 12,720% до 13,203%. Улучшение при ±250 мс вместе с просадкой при строгой оценке означает, что рантайм точнее попадает в допуск, но не идеально расставляет сами границы сегментов.
Код рантайма закрыт, его выходы опубликованы, так что пересчитать метрики можно, а повторить внутреннюю логику - нет.
Ограничения сравнения: малая выборка, VAD-референсы и закрытый код
Ограничения стоит держать в голове до того, как переносить цифры на свой проект. Основные:
- Выборка маленькая: 15 диалогов, около 2,4 часа аудио. Этого мало для устойчивых выводов там, где разница между моделями меньше процентного пункта.
- Референсы уточнены через VAD, то есть эталонная разметка не ручная.
- Настройки проприетарного рантайма подбирались на том же наборе, где измерялся результат.
- Замеры через API включают сетевые задержки, а потоковые оценки сделаны через неразмеренный повтор завершённых файлов и не показывают реальную латентность.
- Локальные модели тестировались на одной NVIDIA L4; на другом железе порядок по скорости может измениться.
- Muse обработала 20 клипов вместо целых записей, поэтому её DER 13,042% не сравним с остальными напрямую.
Что можно воспроизвести самостоятельно
Аудио, референсы, скорер, сохранённые выходы моделей и baseline-раннеры NVIDIA опубликованы. Код проприетарного рантайма остаётся закрытым, но его выходы включены в набор, поэтому метрики можно пересчитать самому и проверить, сходятся ли цифры. Для практики это лучший вариант: подставить свои записи и увидеть, как модели ведут себя на вашем микрофоне и вашем шуме. Отправная точка - отчёт с артефактами и baseline-раннерами.
Почему VAD-уточнённые референсы это компромисс
VAD-уточнение решает одну проблему и создаёт другую. Автоматический детектор речи подчищает границы сегментов и убирает длинные паузы, где человек-разметчик мог ошибиться. Взамен он приносит собственные ошибки: обрезает тихие начала фраз, склеивает короткие реплики, чувствителен к фоновому шуму. Эти расхождения попадают в референс, а значит, влияют на DER всех моделей сразу.
Для клинических диалогов такой компромисс часто приемлем: там важнее, кто именно говорил, а не миллисекунда начала реплики. Если ваша задача - точная синхронизация текста с аудио, VAD-референсы как эталон уже не подходят, и разметку придётся делать вручную.
Что выбрать под клинические диалоги: практические выводы
Сценарий 1: пакетная обработка записей врач-пациент
Если качество важнее времени, ставьте Pyannote Precision-3: 2,891%. Если записей много и вы упираетесь в часы обработки, Nemotron 3 разбирает запись за 0,688 с на NVIDIA L4 при DER 4,803%, и разница в скорости обычно перевешивает 1,9 п.п. ошибки. Промежуточный вариант - Sortformer v1 с DER 6,778% и 3,869 с, если нужен локальный запуск без API и без экстремальной скорости.
Сценарий 2: потоковая диаризация в реальном времени
Формальный лидер - Pyannote live API с 3,959%, за ним Nemotron 3 с 4,971%, дальше Sortformer v2.1 с 6,958%. Все эти замеры не отражают реальную задержку: их снимали через неразмеренный повтор готовых файлов. Перед выбором прогоните свои 20-30 минут аудиопотока и замерьте время до первого и до стабильного результата. VibeVoice 1.5B и 7B с 17,210% и 18,032% для точной атрибуции реплик не годятся.
Сценарий 3: ограниченные ресурсы и локальный запуск
Самый быстрый локальный вариант - Nemotron 3, 0,688 с на запись. Sortformer v2.1 обрабатывает запись за 1,077 с, но ошибается чаще: 7,974% DER. Pyannote Community-1 с 18,691 с на запись станет узким местом конвейера, если только её не запускать через проприетарный рантайм с ускорением в 24 раза. Все локальные замеры из отчёта сделаны на одной NVIDIA L4, так что на CPU или на другой GPU цифры будут другими и их нужно проверять отдельно.
Начните с двух-трёх моделей из таблицы, прогоните их на своих записях с тем же допуском границ ±250 мс и сравните не только DER, но и время обработки. Референсы, скорер и сохранённые выходы для такого прогона уже опубликованы вместе с отчётом, так что собственный замер займёт меньше времени, чем выбор по чужой таблице.