Добавлен воспроизводимый CPU-стенд для четырех сочетаний Pyannote FP32/INT8 с WeSpeaker/TitaNet: отдельный процесс на ячейку, замеры этапов, CPU, RSS и RTF, безопасное возобновление и атомарное сохранение результата.
Выполнены 108 ячеек на трех пятиминутных контрольных фрагментах: 96 с автоматическим и 12 с известным числом говорящих. Ошибок нет, инвариантность 1853 слов сохранена во всех ячейках.
Добавлены исследовательская записка, отчет об эксперименте и обновление ADR-007.
Конфигурация по умолчанию не изменена: Pyannote FP32 + WeSpeaker, порог 0,89.
Вывод
INT8 + WeSpeaker в среднем быстрее на 2,1%, но почти не экономит память и ухудшает прокси-метрики.
TitaNet в среднем быстрее на 24,3%, однако использует примерно на 147–149 МиБ больше RSS и не проходит приемку общего автоматического порога.
TitaNet остается кандидатом только для будущего режима с известным числом говорящих и отдельной слуховой проверкой.
## Что сделано
- Добавлен воспроизводимый CPU-стенд для четырех сочетаний Pyannote FP32/INT8 с WeSpeaker/TitaNet: отдельный процесс на ячейку, замеры этапов, CPU, RSS и RTF, безопасное возобновление и атомарное сохранение результата.
- Выполнены 108 ячеек на трех пятиминутных контрольных фрагментах: 96 с автоматическим и 12 с известным числом говорящих. Ошибок нет, инвариантность 1853 слов сохранена во всех ячейках.
- Добавлены исследовательская записка, отчет об эксперименте и обновление ADR-007.
- Конфигурация по умолчанию не изменена: Pyannote FP32 + WeSpeaker, порог 0,89.
## Вывод
- INT8 + WeSpeaker в среднем быстрее на 2,1%, но почти не экономит память и ухудшает прокси-метрики.
- TitaNet в среднем быстрее на 24,3%, однако использует примерно на 147–149 МиБ больше RSS и не проходит приемку общего автоматического порога.
- TitaNet остается кандидатом только для будущего режима с известным числом говорящих и отдельной слуховой проверкой.
## Проверка
- `.venv/bin/python -m pytest` — 322 passed, 2 skipped.
- `/tmp/local-transcriber-ruff-bin/ruff check scripts/benchmarks/diarization_calibration.py tests/test_diarization_calibration.py` — все проверки пройдены.
- `git diff --check` — без замечаний.
- Независимые task/taste и code review Opus после исправлений — APPROVED; code review проверил 9/9 мутаций.
- Документация подготовлена Sol-субагентом, вычитана через `ai-text-lint` и отдельно одобрена Opus.
Слуховая проверка в этом прогоне не проводилась; это ограничение зафиксировано в отчете и ADR.
Раздел AGENTS.md «Кому что» на этот прогон снят решением владельца; ревьюеры были предупреждены, находкой это не считалось.
Closes #25
- Зачем:
- требовалось сравнить облегченные модели диаризации на старом CPU без изменения рабочей конфигурации.
- Что:
- добавлен воспроизводимый и возобновляемый прогон матрицы Pyannote FP32/INT8 с WeSpeaker и TitaNet.
- зафиксированы измерения 108 ячеек, ограничения эксперимента и решение сохранить модель по умолчанию.
- локальные записи в каталоге tmp исключены из индекса Git.
- Проверка:
- .venv/bin/python -m pytest.
- /tmp/local-transcriber-ruff-bin/ruff check scripts/benchmarks/diarization_calibration.py tests/test_diarization_calibration.py.
у стенда появился безопасный --validate-only: он проверяет структуру manifest, хэши корпуса и моделей, фиксированный состав исходных записей, матрицу и совместимость зависимостей без декодирования и запуска моделей;
относительные пути считаются от каталога manifest, поэтому один и тот же приватный набор можно перенести на другую машину;
в отчёт добавлена точная команда повторного запуска и явно отделено продолжение на той же машине от нового измерения на другом CPU;
.scratch/handoffs/ исключён из Git; временный handoff не стал проектной документацией.
Текущая проверка: 334 passed, 2 skipped; Ruff для двух изменённых Python-файлов, format check и git diff --check прошли. Повторный Opus-ревью после исправлений: APPROVED, P1/P2 нет. Waiver владельца по разделу AGENTS.md «Кому что» передан ревьюеру и находкой не считался.
Приватные записи, опорные расшифровки, ASR-sidecar и полный результат собраны только в локальной gitignored-капсуле для последующего размещения в закрытой папке Яндекс Диска. В Git, Gitea и Claude они не передавались.
Дополнение после коммита `5b5fd53`:
- у стенда появился безопасный `--validate-only`: он проверяет структуру manifest, хэши корпуса и моделей, фиксированный состав исходных записей, матрицу и совместимость зависимостей без декодирования и запуска моделей;
- относительные пути считаются от каталога manifest, поэтому один и тот же приватный набор можно перенести на другую машину;
- в отчёт добавлена точная команда повторного запуска и явно отделено продолжение на той же машине от нового измерения на другом CPU;
- `.scratch/handoffs/` исключён из Git; временный handoff не стал проектной документацией.
Текущая проверка: `334 passed, 2 skipped`; Ruff для двух изменённых Python-файлов, format check и `git diff --check` прошли. Повторный Opus-ревью после исправлений: `APPROVED`, P1/P2 нет. Waiver владельца по разделу AGENTS.md «Кому что» передан ревьюеру и находкой не считался.
Приватные записи, опорные расшифровки, ASR-sidecar и полный результат собраны только в локальной gitignored-капсуле для последующего размещения в закрытой папке Яндекс Диска. В Git, Gitea и Claude они не передавались.
ddmitry
merged commit f5c1cb8090 into master2026-08-30 18:50:52 +03:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что сделано
Вывод
Проверка
.venv/bin/python -m pytest— 322 passed, 2 skipped./tmp/local-transcriber-ruff-bin/ruff check scripts/benchmarks/diarization_calibration.py tests/test_diarization_calibration.py— все проверки пройдены.git diff --check— без замечаний.ai-text-lintи отдельно одобрена Opus.Слуховая проверка в этом прогоне не проводилась; это ограничение зафиксировано в отчете и ADR.
Раздел AGENTS.md «Кому что» на этот прогон снят решением владельца; ревьюеры были предупреждены, находкой это не считалось.
Closes #25
Дополнение после коммита
5b5fd53:--validate-only: он проверяет структуру manifest, хэши корпуса и моделей, фиксированный состав исходных записей, матрицу и совместимость зависимостей без декодирования и запуска моделей;.scratch/handoffs/исключён из Git; временный handoff не стал проектной документацией.Текущая проверка:
334 passed, 2 skipped; Ruff для двух изменённых Python-файлов, format check иgit diff --checkпрошли. Повторный Opus-ревью после исправлений:APPROVED, P1/P2 нет. Waiver владельца по разделу AGENTS.md «Кому что» передан ревьюеру и находкой не считался.Приватные записи, опорные расшифровки, ASR-sidecar и полный результат собраны только в локальной gitignored-капсуле для последующего размещения в закрытой папке Яндекс Диска. В Git, Gitea и Claude они не передавались.