Skip to content
Neuronavt
Go back

Nemotron ускорила диаризацию, но выявила компромиссы

Кейс8/10

Коротко

Автор заменил sherpa на потоковую Nemotron в приложении для встреч и резко сократил время разметки голосов. За неделю эксплуатации обнаружились проблемы атрибуции, пропущенные реплики в живой ленте, незамеченный сбой интеграции и чрезмерное потребление памяти.

Контекст

Автор проекта Charoite_audio описывает переход от sherpa к Nemotron для диаризации в приложении, которое записывает встречи, строит стенограммы и показывает живые подсказки. Исходная задача — ускорить обработку аудио и улучшить разметку говорящих; код опубликован под Apache 2.0 на github.com/charoiteai/Charoite_audio.

Главное

Как сделано

Автор заменил sherpa потоковым Nemotron из mlx-audio 0.5.6 и сравнивал его с прежним трекером голосовых эмбеддингов. Для микрофонного канала отказался от выделения отдельных голосов: после фильтра эха весь материал с речью длительностью не менее 15 секунд приписывается владельцу микрофона, а речь разбивается на фрагменты.

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

Ручная проверка выявила обращение к отсутствующему у nemotron_diarization полю fc_encoder_config. Тест с настоящей библиотекой пропускался через importorskip, поскольку mlx-audio устанавливался в отдельном окружении. Автор исправил обращение и ограничил кэш MLX через mx.set_cache_limit(512 МБ).

Результаты

На 57-минутной записи с восемью участниками Nemotron разметил каналы собеседников за 7 секунд против 18,5 минуты у sherpa. Микрофонный канал обработался за 8 секунд вместо прежней диаризации sherpa, которая занимала около 2,1 ГБ памяти. После перехода весь разбор 37-минутного звонка занял 8 минут; откатов на sherpa из-за сбоев за неделю не было. Обычно разметка канала собеседников занимала 3–5 секунд, однажды — 10 секунд на 26-минутном звонке.

Потоковые метки после исправлений дали DER 0,11–0,18 на записях четверга; у трекера на других записях вторника было 0,26–0,97. Это не строгий прямой тест: записи различались, а человеческой эталонной разметки русского аудио не было. Два движка Nemotron и sherpa на одних записях расходились с DER 0,34 и 0,54. После ограничения кэша процесс тени снизил потребление памяти с 8,6 ГБ до 808 МБ при неизменных метках. Медианное время появления подсказки с живым потоком составило 8,4 секунды против 5,9 секунды ранее.

Ограничения

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

Что взять себе

Читать оригинал, если…

Откройте оригинал, если нужны код, история изменений и подробности тестирования в проекте Charoite_audio.