feat(diarization): добавлено разделение транскрипта по говорящим
Зачем: - локальным транскриптам нужна структура реплик для конспектов и протоколов. Что: - добавлены пословные таймкоды для всех ASR-бэкендов и сведение с Sherpa-ONNX. - реализованы CLI-флаги, деградация без потери ASR и speaker Markdown. - добавлены проверяемый кеш моделей, тесты и документация. Проверка: - `pytest` — 283 passed, 1 skipped. - `pyright` — 0 errors. - Ruff и `git diff --check` — без ошибок. - выполнены три контрольных прогона на реальных записях.
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# Приёмка 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-запуска.
|
||||
Reference in New Issue
Block a user