RTP DesportoLiga Nações. Sudakov dispensado da seleção ucraniana devido a lesãoESPNInactives watch: DeVonta, Price out; McConkey, Coker questionableESPN DeportesDuelo de desesperados entre Cowboys y TexansThe Jerusalem PostOver 25 NYC Jewish groups oppose Mamdani antisemitism plan, demand new onePunchOsun moves to vacate court order freezing govt accountsZDF heuteAktuelle Pressemitteilungen des ZDFVanguardNavy disrupts 2 illegal refineries, recovers 58,000 litresVariety‘Spotlight’ Director Says The Catholic Church Hasn’t Done ‘Enough’ To Protect Children From Sexual Assault 10 Years After Film’s Best Picture Win: ‘Not Until Every Child Is Safe’n-tvAuthentisch vs. professionell: Bühne oder unverstellt: Wie viel Ich verträgt der Job?Seeking AlphaUlta Beauty tops consumer discretionary gainers in Q3; MGM Resorts declinesynet ספורטחי, מחצית: מכבי ת"א - הפועל ירושלים 32:31The South AfricanLive score: Egypt vs Bafana Bafana
The Daily Newsstand · Free, Always
Sunday, October 4, 2026

Локальный ассистент для зумов, часть 9: Nemotron от NVIDIA — почему взял и что получил

Translate

В четверг был звонок на 57 минут, восемь человек. Голоса собеседников Nemotron разметил за 7 секунд. Мой микрофон тогда ещё размечал sherpa. Потом я прогнал эту дорожку тем же кодом ещё раз и засёк время: восемнадцать с половиной минут.

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

Микрофон

В микрофон на звонке попадаю я и эхо из динамиков. Эхо режет фильтр, про него было в прошлый раз. После фильтра sherpa нашёл там четыре голоса, съел 2,1 ГБ памяти, а в логе осталось владелец: не назначен.

Nemotron тот же микрофон разметил за 8 секунд. Но различать там голоса я в итоге перестал. На звонке всё, что осталось после фильтра эха, теперь моё, если речи набралось хотя бы 15 секунд. Модель просто режет её на куски. Цену я принял: сядет рядом коллега — его реплики уйдут под моим именем.

Весь разбор того звонка — стенограмма, минутки, граф — шёл 29 минут. В пятницу микрофон переехал на Nemotron, и звонок на 37 минут разобрался за восемь. Он короче, но не в три с половиной раза.

Откатов на sherpa из-за сбоя за неделю ни одного. Канал собеседников обычно размечается за 3–5 секунд. Один раз вышло 10 секунд, на 26-минутном звонке. Почему — не разбирался.

Лента

Во время звонка идёт живая лента: реплики с метками Собеседник 1, Собеседник 2 и дальше. По ней строятся подсказки. Метки ставил трекер на эмбеддингах голоса, восемь мест на встречу.

Пока мерил потоковый Nemotron против трекера, вылезло неприятное. Когда все восемь мест заняты, трекер выкидывал окна нового голоса, и до распознавания они не доходили. Во вторник на большом звонке в ленту попало 584 слова. В стенограмме того же звонка — 3795. Её после встречи собирает другой проход, с ней всё было в порядке, поэтому я ничего и не замечал. А подсказки на том звонке видели процентов пятнадцать того, что говорили собеседники.

Дыру закрыл отдельно, а в ленту потом поставил сам поток.

Включил в четверг в 12:35. В 12:46 выключил.

Перед этим я сверял поток с трекером по сырым слотам модели, и там он выигрывал в разы. На экран шли другие метки. Слот, который молчал дольше минуты, получал новое имя: человек замолчал, вернулся в разговор — и он уже Собеседник 9. На записи в 69 минут с шестью голосами набралось 33 метки.

Сделал одну метку на человека, 33 стало 6. В 14:29 включил снова.

DER по меткам, которые видны на экране, на звонках четверга — от 0,11 до 0,18. У трекера было от 0,26 до 0,97 на записях вторника — записи другие, но разрыв видно и так.

Эталон тут — разметка после встречи, тем же Nemotron. Размеченного человеком русского у меня нет. Собрал второй, на sherpa, и на одних записях эти два разошлись между собой: 0,34 и 0,54. Так что всё это движок против движка.

Зелёные тесты

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

Код обращался к полю fc_encoder_config. Оно есть у sortformer, а у nemotron_diarization в mlx-audio 0.5.6 его нет. Единственный тест против настоящей библиотеки стоял за importorskip, а mlx-audio живёт только в отдельном окружении движка, так что тест пропускался везде, на CI тоже. Подделку модели для остальных тестов я писал по своему же допущению. С этим полем.

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

Ещё память. RSS у процесса тени 312 МБ, а физически он держал 8,6 ГБ, почти всё — кэш MLX. Поставил mx.set_cache_limit на 512 МБ, и процесс ужался до 808 МБ, метки те же.

Не сделал

С живым потоком подсказки медленнее: медиана 8,4 секунды против 5,9. Поток ли виноват, пока не доказал.

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

Код и релизы: github.com/charoiteai/Charoite_audio, Apache 2.0. Девлог по-английски: charoiteai.github.io/Charoite_audio. Первая часть — про устройство и запись, вторая — про граф встреч как память, третья — про диаризацию и три ложных диагноза, четвёртая — про ревизию после кнопки Стоп, пятая — про облако и что уходит наружу, шестая — про полчаса тишины, которых не было в протоколе, седьмая — про семь пакетов в плане и один в коде, восьмая — про модель, ради которой я поменял диаризацию за один вечер.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.