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