Голосовой ввод

Статус: работает с Phase 62 (2026-06-05). Self-hosted whisper.cpp на Contabo — без зависимости от OpenAI, аудио не покидает твой сервер.

Arc OS поддерживает два слоя голосового ввода в композере чата:

Слой Требует Работает на
L1 — Web Speech API Chrome или Edge (Chromium) Все тарифы Arc
L2 — Self-hosted whisper Любой браузер (WebM/WAV MediaRecorder) Arc Standard Cloud, On-premise

Оба слоя пишут текст в одно и то же поле композера и прозрачны для AI-воркера.


Использование голоса в чате

  1. Открой воркспейс любого проекта и поставь фокус в композер чата.
  2. Нажми кнопку микрофона (слева внизу композера) или Ctrl+Shift+V (работает на любой раскладке — шорткат привязан к физической клавише V, а не к символу раскладки).
  3. Говори. Анимация волны + оранжевая рамка показывают, что идёт запись.
  4. Нажми кнопку микрофона ещё раз (или шорткат), чтобы остановить.
  5. Расшифрованный текст появится в композере — при необходимости отредактируй и отправь.

Непрерывный режим: L1 слушает, пока ты не остановишь; L2 записывает один клип и отправляет его на транскрипцию.


L1 — Web Speech API (Chrome/Edge)

Использует встроенный API распознавания речи браузера. Работает мгновенно, без обращения к серверу.

Локаль: автоматически берётся из языковых настроек Arc. Поддерживаемые BCP-47-коды: uk-UA, en-US, de-DE, es-ES, fr-FR, pl-PL, ru-RU, pt-BR.

Разрешения: при первом использовании браузер запросит доступ к микрофону. Если ты случайно его заблокировал, открой Site settings → Microphone → Allow для arc-os.co. Заголовок Permissions-Policy на arc-os.co использует microphone=(self) — доступ с того же origin разрешён, а cross-origin-встраивания заблокированы.

Ограничения:


L2 — Self-hosted whisper.cpp

Arc OS держит постоянный сервис arc-whisper.service на Contabo с предзагруженной моделью ggml-base (142 МБ). Когда браузер не поддерживает Web Speech API, композер автоматически переключается на этот слой:

  1. Браузер записывает WebM-клип через MediaRecorder.
  2. По остановке клип отправляется POST-ом на /api/crm/voice/transcribe (multipart, максимум 25 МБ).
  3. Сервер пересылает его локальному whisper-server на 127.0.0.1:19214 — байты аудио никогда не покидают Contabo.
  4. Расшифрованный текст возвращается и вставляется в композер.

Задержка: ~3.4 с для 11-секундного клипа (прогретая модель, 3.1× realtime на текущей 6-vCPU EPYC-машине).

Конкурентность: у whisper-server семафор на 2 слота. Если оба заняты, API возвращает 429 ("server busy"), и UI показывает тост — попробуй снова через несколько секунд.


Дневная квота

У каждого пользователя есть мягкий лимит 60 мин/день на L2-транскрипции. Сервер оценивает длительность клипа по размеру загрузки (предположение ~32 kbps голосового кодека, точность ±30%). При достижении лимита:

L1 (Web Speech API) под этот лимит не подпадает — он использует собственный сервис браузера.


Устранение неполадок

Симптом Вероятная причина Решение
Кнопка микрофона серая Дневная квота исчерпана Подожди до полуночи UTC
"Microphone access blocked" Браузер заблокировал микрофон Site settings → Microphone → Allow для arc-os.co
L1 не работает в Firefox Firefox не поддерживает Web Speech API Автоматически переключается на L2
429 "server busy" Два других пользователя транскрибируют Повтори через ~5 с
Плохое качество транскрипта Фоновый шум / базовая модель L2 Говори чётко; Pro-транскрипция (модель крупнее) — в будущей фазе
Ctrl+Shift+V не реагирует Фокус не в композере Сначала кликни внутрь textarea композера

Ссылки