lct-02: замер задержки голосового контура, make latency

Замер на машине разработки (Ryzen 7 8845HS, WSL2), не на демо-машине —
там make latency надо прогнать трижды, разброс между прогонами до 20%.

Распознавание — GigaAM v3 RNNT int8: фраза на 2 с за ~285 мс, WER 0%
на 99 словах живой речи Golos. CTC не быстрее ни в одном из двух прогонов
и ошибается чаще: время съедает общий энкодер, поэтому ступень деградации
«RNNT не успевает → CTC» по скорости ничего не даёт.

Синтез — Silero v5: в 10 раз быстрее реального времени, а не в 40, как
заложено в STACK.md; первая фраза 100–250 мс в зависимости от длины.
Частота синтеза на скорость не влияет, без профилирующего компилятора —
на 13% быстрее.

Сквозной бюджет: 600 мс endpointing + ~285 STT + ~150 TTS = ~1 с без LLM.
Цель ≤ 1.5 с держится, только если LLM отдаёт первое предложение быстрее
~465 мс. Вопрос, считается ли филлер «алло?..» первым звуком, записан
в LATENCY.md для людей.

make models качает GigaAM и Silero VAD с Hugging Face. Silero TTS лежит
на российском хосте, недоступном из-под VPN: скрипт не лезет на зеркала
(.pt грузится через pickle — это чужой код) и честно говорит, откуда
скачать вручную.
This commit is contained in:
Ivan Gerasimov 2026-09-17 14:44:02 +03:00
commit dcdec56779
5 changed files with 335 additions and 256 deletions

View file

@ -26,12 +26,24 @@ dependencies = [
voice = [
"onnx-asr>=0.6",
"torch>=2.2",
# Нужен пакету Silero TTS: импорт зашит внутри v5_ru.pt.
"scipy>=1.11",
]
dev = [
"pytest>=8.2",
"pytest-asyncio>=0.23",
]
# torch — только CPU-сборка. Из обычного PyPI он тянет CUDA-библиотеки
# на несколько гигабайт, а GPU на стенде нет (docs/arch/STACK.md).
[tool.uv.sources]
torch = { index = "pytorch-cpu" }
[[tool.uv.index]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
explicit = true
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"