Зачем: - локальным транскриптам нужна структура реплик для конспектов и протоколов. Что: - добавлены пословные таймкоды для всех ASR-бэкендов и сведение с Sherpa-ONNX. - реализованы CLI-флаги, деградация без потери ASR и speaker Markdown. - добавлены проверяемый кеш моделей, тесты и документация. Проверка: - `pytest` — 283 passed, 1 skipped. - `pyright` — 0 errors. - Ruff и `git diff --check` — без ошибок. - выполнены три контрольных прогона на реальных записях.
49 lines
3.1 KiB
Markdown
49 lines
3.1 KiB
Markdown
# Приёмка 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-запуска.
|