Голосове введення

Статус: працює з 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. Розпізнаний текст зʼявиться в композері — відредагуй за потреби і натисни Send.

Безперервний режим: 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 дозволено, а крос-доменні вбудовування заблоковано.

Обмеження:


L2 — Self-hosted whisper.cpp

Arc OS тримає постійний arc-whisper.service на Contabo з попередньо завантаженою моделлю ggml-base (142 MB). Коли браузер не підтримує Web Speech API, композер автоматично переходить на цей рівень:

  1. Браузер записує WebM-кліп через MediaRecorder.
  2. На зупинці кліп POST-иться на /api/crm/voice/transcribe (multipart, макс. 25 MB).
  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 композера

Посилання