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

49 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Приёмка 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](2026-08-14-diarization-intel-i7.md).
Диаризация остаётся опциональной: на контрольных записях полное время выросло
примерно в 2,2–2,6 раза. При этом сбой диаризации не удаляет готовый ASR-текст и
не останавливает обработку остальных файлов batch-запуска.