Выбрать способ оценки числа говорящих для быстрых эмбеддингов #33

Closed
opened 2026-08-30 13:28:48 +03:00 by ddmitry · 2 comments
Owner

Часть карты: Спроектировать следующее ускорение CPU-диаризации (#31)

Question

Как отделить оценку числа говорящих от текущего порога FastClustering, чтобы повторно использовать быстрые CAMPPlus или TitaNet без нового инференса моделей? Нужно проверить публичный доступ к промежуточным эмбеддингам в sherpa-onnx, сопоставить модельный порог, spectral clustering с eigengap/NME и двухшаговый вариант оценить N -> передать известное число кластеров, учесть зависимости и лицензии и выбрать минимальную границу будущего прототипа. Только первичные источники и существующие публичные артефакты.

Часть карты: [Спроектировать следующее ускорение CPU-диаризации](https://git.dementev.space/ddmitry/local-transcriber/issues/31) (#31) ## Question Как отделить оценку числа говорящих от текущего порога FastClustering, чтобы повторно использовать быстрые CAMPPlus или TitaNet без нового инференса моделей? Нужно проверить публичный доступ к промежуточным эмбеддингам в sherpa-onnx, сопоставить модельный порог, spectral clustering с eigengap/NME и двухшаговый вариант оценить N -> передать известное число кластеров, учесть зависимости и лицензии и выбрать минимальную границу будущего прототипа. Только первичные источники и существующие публичные артефакты.
ddmitry added the wayfinder:research label 2026-08-30 13:28:49 +03:00
Author
Owner

Исследовательский контекст: ветка research/issue-33-speaker-count. Итоговый артефакт: docs/research/2026-08-30-diarization-speaker-count.md. Ветка временная; решение будет зафиксировано в тикете после отдельной сессии.

Исследовательский контекст: [ветка `research/issue-33-speaker-count`](https://git.dementev.space/ddmitry/local-transcriber/src/branch/research/issue-33-speaker-count). Итоговый артефакт: `docs/research/2026-08-30-diarization-speaker-count.md`. Ветка временная; решение будет зафиксировано в тикете после отдельной сессии.
ddmitry self-assigned this 2026-08-30 13:30:50 +03:00
Author
Owner

Резолюция

Выбрана двухшаговая схема: один раз подготовить внутреннюю матрицу эмбеддингов sherpa-onnx, оценить по ней N, затем передать его штатному FastClustering(num_clusters=N).

  • Публичный API sherpa-onnx 1.13.5 не отдает матрицу вместе с соответствием строк локальным говорящим. Для стенда нужен внутренний интерфейс Prepare/Finalize после синхронной фильтрации строк и пар, без повторной сегментации и без сериализации материала.
  • Первым кандидатом выбран счетчик NME на NumPy. Счетчик eigengap остается дешевым контрольным вариантом, а пороги FastClustering служат только диагностикой. Полная спектральная кластеризация NeMo и 3D-Speaker в прототип не входят.
  • Критерий качества: точные 3 / 2 / 2 на трех контрольных записях для CAMPPlus и TitaNet отдельно, совпадение со штатной финализацией при известном N и воспроизводимость на одной матрице.
  • Числовые гейты времени и памяти определят Зафиксировать аппаратную матрицу и бюджет памяти и Собрать минимальную матрицу следующего CPU-эксперимента.

Артефакт: исследовательская записка на коммите 66fc264. Реализация решения: PR 38.

## Резолюция Выбрана двухшаговая схема: один раз подготовить внутреннюю матрицу эмбеддингов sherpa-onnx, оценить по ней `N`, затем передать его штатному `FastClustering(num_clusters=N)`. - Публичный API sherpa-onnx 1.13.5 не отдает матрицу вместе с соответствием строк локальным говорящим. Для стенда нужен внутренний интерфейс `Prepare/Finalize` после синхронной фильтрации строк и пар, без повторной сегментации и без сериализации материала. - Первым кандидатом выбран счетчик NME на NumPy. Счетчик eigengap остается дешевым контрольным вариантом, а пороги `FastClustering` служат только диагностикой. Полная спектральная кластеризация NeMo и 3D-Speaker в прототип не входят. - Критерий качества: точные `3 / 2 / 2` на трех контрольных записях для CAMPPlus и TitaNet отдельно, совпадение со штатной финализацией при известном `N` и воспроизводимость на одной матрице. - Числовые гейты времени и памяти определят [Зафиксировать аппаратную матрицу и бюджет памяти](https://git.dementev.space/ddmitry/local-transcriber/issues/35) и [Собрать минимальную матрицу следующего CPU-эксперимента](https://git.dementev.space/ddmitry/local-transcriber/issues/34). Артефакт: [исследовательская записка на коммите 66fc264](https://git.dementev.space/ddmitry/local-transcriber/src/commit/66fc264/docs/research/2026-08-30-diarization-speaker-count.md). Реализация решения: [PR 38](https://git.dementev.space/ddmitry/local-transcriber/pulls/38).
Sign in to join this conversation.