Голосовые системы

Monitor: сессии и живое аудио

Реализация и адресная поставка завершены 20 октября 2026 года. Живой сигнал, ASR final и ответ в нужной панели проверены. Пользователь подтвердил «выключил. появился»; после отключения список потоков пуст, все четыре графика удалены, показано «Поток завершён. Измерения освобождены».

Что изменилось

Верхняя навигация: «Сессии · Аудио · Все таблицы». Переключатель «Дорожки сервисов / Список событий» находится внутри выбранной сессии, под UUID и User-Agent. Смена представления сохраняет выбранную сессию и границы окна. Сохранены модалки JSON, ссылки на код, таблицы и фильтры.

Аудиомонитор показывает активные потоки отдельно от выбранной чат-сессии. Есть waveform ingress, RMS dBFS, входящий и исходящий PCM, очередь в миллисекундах, раскрываемый спектр до 8 kHz, таблица и временное представление фактических каналов. JSON-модалки содержат последнее наблюдение и ссылки на исходники. Для PCM сохраняются только заголовок, размер и последовательность пакета.

Наблюдение запускается автоматически при открытии «Аудио», получает приращения не чаще раза в секунду, приостанавливается в скрытой вкладке и возобновляется при возвращении. Его можно остановить кнопкой. Новые потоки подхватываются автоматически; после завершения потока графики очищаются. Ошибка диагностического чтения останавливает наблюдение без повторов истёкшего доступа. Итоговая Frontend-ревизия — 095dc1a1fff1e1213d3d1fe702b79b08e310cd4d, pipeline 5286; все пять обязательных checks и адресные jobs успешны. Измерения ограничены 15 минутами в памяти существующего активного владельца и освобождаются при завершении. Отсутствующие измерения показываются как отсутствие данных.

Новых сервисов, подключений к брокеру, таблиц и микрофонных захватов нет. Расширение остаётся 1.1.4. PostgreSQL, NATS, Agent, LLM, ASR-модели и GPU-сервисы не обновлялись.

Код и CI

  • Первоначальная поставка Gateway/Core/ingress и Frontend: 66476241d92d79b212b28bd6ac5ab65a1f8cf0ab; pipeline 5285.
  • live bridge: 71c9b087799c73e07c1a7c30372b1b6498ea29b7; pipeline 5282.
  • Пять обязательных checks chat-agent успешны. Успешны streaming и release checks bridge.
  • Адресные jobs chat-agent: сборка 18517, свежий preflight 18537, backend 18533, Frontend 18534.
  • Адресные jobs bridge: preflight 18402, сборка 18396, refresh 18403, verify 18404.
  • Выполнен штатный drain; после обновления backend admission оставался закрытым, после проверки bridge и поставки Frontend открыт. В фактическом Core CHAT_AGENT_INITIAL_DRAIN=false.
  • Неиспользованные ручные jobs не запускались. Полный stack deploy и prune не выполнялись.

Автоматическое живое наблюдение: итоговая правка Frontend

По замечанию пользователя наблюдение включено по умолчанию. Pipeline 5286, commit 095dc1a1fff1e1213d3d1fe702b79b08e310cd4d: пять обязательных checks успешны, preflight 18589, build Frontend refresh 18603 и chat NATS refresh Frontend 18604 успешны. Локально прошли 243 frontend-теста, TypeScript и Vite build.

На deployed странице без нажатия «Наблюдать» зафиксировано 19 последовательных запросов списка потоков с интервалами 1,095–1,126 с. Кнопка «Остановить» имеет aria-pressed=true сразу после открытия. При паузе запросов 0; после перехода в «Сессии» аудиоопросов 0, новых WebSocket-подключений 0. При повторном открытии «Аудио» наблюдение включается само. Пауза при скрытии и возобновление при возвращении проверены тестом. Ошибок консоли нет.

Повторно проверенный Core сохранил прежние revision/digest и время старта 2026-10-20T10:27:54.941353125Z, admission открыт. В корректирующей поставке обновлён только Frontend; runtime revision 095dc1a1fff1e1213d3d1fe702b79b08e310cd4d, старт 2026-10-20T10:58:14.563544622Z.

Фактический runtime

Сопоставлено через Insight после адресной поставки. Проверены revision, RepoDigest, состояние контейнера и завершение обновления сервиса. Docker Healthcheck присутствует у Core и ingress; у остальных трёх приведено фактическое running и 1/1.

Сервис Revision RepoDigest Состояние
chat-agent_src_api_gateway 66476241d92d79b212b28bd6ac5ab65a1f8cf0ab sha256:399490452bbd2811b4323b6771856e487c05698be20a2d18a1de7f3016463619 1/1, running, completed
chat-agent_audio_ws_ingress 66476241d92d79b212b28bd6ac5ab65a1f8cf0ab sha256:ec44eeb0650a89d6740f7ed3b610a617d1a1e03c9815d3c6cfca5908b12db085 1/1, running, completed, healthy
chat-agent_src_core 66476241d92d79b212b28bd6ac5ab65a1f8cf0ab sha256:1b7acd0971ed5d3349d442666bc7b298dc81bcac4d48ca2447f0bce17c7e6937 1/1, running, completed, healthy
chat-agent_src_front 095dc1a1fff1e1213d3d1fe702b79b08e310cd4d sha256:83599a6a4d13149b29115430fb920ae0c90072848fdcc08859f0e5f87ea3ea44 1/1, running, completed
py_faster_whisper_stt_whisper_to_nats 71c9b087799c73e07c1a7c30372b1b6498ea29b7 sha256:8b6360fbdc97df8e98bf60016788a1378333eb64d385421a858cbd54005a496e 1/1, running, completed

Проверки

Локально: 191 Python-тест и 242 frontend-теста, сборка и TypeScript; 122 streaming-проверки в Docker. Адресные Ruby-проверки релиза, runtime-settings и реальные Nginx-маршруты прошли. 52 интеграционных Python-теста локально пропущены; обязательный интеграционный CI gate прошёл.

В deployed Monitor проверена историческая сессия из 49 событий: локальный переключатель, сохранение UUID и конца окна, оба представления. Каталог содержит 12 таблиц. /monitor/audio открывается напрямую. Консоль проверочной страницы без ошибок.

Живая голосовая попытка

Пользователь подключил исправный микрофон, произнёс согласованную фразу и оставил захват включённым.

  • Поток: 713a1635-6452-4380-9833-839d92cf7ec6.
  • Сессия: 5a2be86c-9322-4246-8d9b-58727a63568c.
  • Backend: streaming_worker, вход 48 kHz, выход после ресемплинга 16 kHz.
  • Показаны waveform и речевой пик RMS; после речи получена тишина, RMS −100 dBFS.
  • Пример снимка: вход 786,4 кбит/с, выход 266,2 кбит/с, очередь 0 мс. Эти значения относятся к разным переходам и формату PCM; напрямую равными быть не должны.
  • Наблюдаются 7 каналов/наблюдений. На одном переходе ingress → bridge отправлено и получено по 9451 пакету. Номера пакетов разных переходов не сравнивались.
  • В Core получен result_type: final, текст «сколько полез в сохраненном списке.». Ошибка распознавания слова зафиксирована; точное совпадение с заданной фразой не подтверждается.
  • Из final: decode 607,3 мс, от конца речи до final 635,6 мс.
  • Проверена PCM-модалка: PCM16LE, 48 kHz, mono, 2048 байт; аудиобайтов в JSON нет. Ссылки ведут к NatsAudio.pcm и AudioSession._packet в текущем main.
  • Спектр: 64 полосы, максимум 8 kHz; показан отдельной раскрываемой областью.

Пользователь подтвердил один распознанный вопрос с ответом в панели. После выключения микрофона и аудио выполнен свежий запрос Monitor: активных потоков 0, графиков 0, ошибок консоли нет.

Скриншоты и данные

  • Графики реального потока.
  • ASR final в JSON-модалке.
  • Состояние без активного потока до теста.
  • Очистка после выключения пользователем.
  • Автоматическое наблюдение после открытия.
  • Машинные данные поставки.
  • Проверенный PCM JSON и метаданные.

Снимки viewport сохранены. Полностраничный снимок не получен: браузерный инструмент вернул timeout; проверка DOM, графиков, каналов и модалок выполнена отдельно.

Исходник

Скачать Markdown · К материалам исследования