Files
local-transcriber/docs/benchmarks/2026-08-14-speaker-diarization-acceptance.md
Dmitriy Dementiev 726718197f feat(diarization): добавлено разделение транскрипта по говорящим
Зачем:
- локальным транскриптам нужна структура реплик для конспектов и протоколов.

Что:
- добавлены пословные таймкоды для всех ASR-бэкендов и сведение с Sherpa-ONNX.
- реализованы CLI-флаги, деградация без потери ASR и speaker Markdown.
- добавлены проверяемый кеш моделей, тесты и документация.

Проверка:
- `pytest` — 283 passed, 1 skipped.
- `pyright` — 0 errors.
- Ruff и `git diff --check` — без ошибок.
- выполнены три контрольных прогона на реальных записях.
2026-08-14 18:55:42 +03:00

3.1 KiB
Raw Permalink Blame History

Приёмка speaker diarization в CLI

Дата: 2026-08-14

Статус: ручная приёмка реализации задачи #24 на трёх контрольных записях.

Профиль запуска

  • ASR: onnx, gigaam-v3-e2e-rnnt, русский язык;
  • диаризация: Pyannote segmentation 3.0 и WeSpeaker ResNet34 LM;
  • автоматическое число говорящих, порог кластеризации 0,89;
  • 8 потоков CPU, модели в локальном кеше;
  • обычный ASR и запуск с --diarize выполнялись последовательно.

Результаты

Запись Длительность Обычный ASR С диаризацией Кластеры Неназначенные слова
Data Test 26:00 137,5 с 326,2 с 4 (один малый, 19,1 с) 201
T2 BDMA 14:51 83,0 с 184,2 с 2 65
Yantar 20:22 100,1 с 259,7 с 2 43

Все три запуска завершились быстрее реального времени. Четвёртый прогон T2 BDMA после исправления склейки пунктуации повторно подтвердил два кластера и 65 неназначенных слов.

Инварианты

  • после удаления только форматных пробелов перед Unicode-пунктуацией и символами текст speaker-вывода на всех трёх записях в точности совпал с обычным ASR: 21 788, 10 520 и 12 055 символов соответственно;
  • повторный T2-прогон последней версии также дал точное совпадение 10 520 из 10 520 символов;
  • слова не потерялись и не поменяли порядок; неизвестный говорящий остаётся в выводе как Speaker ?;
  • CLI показал число кластеров, неназначенные слова и малый остаточный кластер, не скрывая диагностические данные.

Память и стоимость

Во время финального T2-прогона рабочий процесс наблюдался на уровне 905 МБ RSS. Это согласуется с отдельным замером последовательных проходов: 900–1035 МБ для ASR и 366–469 МБ для диаризации. Подробные условия и ограничения приведены в отчёте Intel i7.

Диаризация остаётся опциональной: на контрольных записях полное время выросло примерно в 2,2–2,6 раза. При этом сбой диаризации не удаляет готовый ASR-текст и не останавливает обработку остальных файлов batch-запуска.