Entrada por Voz

Status: No ar desde a Phase 62 (2026-06-05). whisper.cpp auto-hospedado na Contabo — sem dependência da OpenAI, nenhum áudio sai do seu servidor.

O Arc OS suporta duas camadas de entrada por voz no compositor do chat:

Camada Requer Funciona em
L1 — Web Speech API Chrome ou Edge (Chromium) Todos os planos Arc
L2 — whisper auto-hospedado Qualquer navegador (MediaRecorder WebM/WAV) Arc Standard Cloud, On-premise

Ambas as camadas alimentam a mesma caixa de texto do compositor e são transparentes para o worker de IA.


Usando Voz no Chat

  1. Abra o workspace de qualquer projeto e foque o compositor do chat.
  2. Clique no botão de microfone (canto inferior esquerdo do compositor) ou pressione Ctrl+Shift+V (funciona em qualquer layout de teclado — o atalho corresponde à tecla física V, não ao caractere do layout).
  3. Fale. Uma animação de forma de onda + borda laranja indicam a gravação.
  4. Clique no botão do microfone novamente (ou pressione o atalho) para parar.
  5. O texto transcrito aparece no compositor — edite se necessário e depois envie.

Modo contínuo: L1 continua escutando até você parar; L2 grava um único clipe e o envia para transcrição.


L1 — Web Speech API (Chrome/Edge)

Usa a API de reconhecimento de fala integrada do navegador. Funciona instantaneamente, sem ida e volta ao servidor.

Localidade: definida automaticamente a partir da sua preferência de idioma no Arc. Códigos BCP-47 suportados: uk-UA, en-US, de-DE, es-ES, fr-FR, pl-PL, ru-RU, pt-BR.

Permissões: o navegador solicita acesso ao microfone no primeiro uso. Se você bloqueou por acidente, vá em Site settings → Microphone → Allow para arc-os.co. O cabeçalho Permissions-Policy em arc-os.co usa microphone=(self) — o acesso same-origin é permitido enquanto embeds cross-origin são bloqueados.

Limitações:


L2 — whisper.cpp auto-hospedado

O Arc OS roda um arc-whisper.service persistente na Contabo com o modelo ggml-base (142 MB) pré-carregado. Quando o navegador não suporta a Web Speech API, o compositor recorre automaticamente a esta camada:

  1. O navegador grava um clipe WebM via MediaRecorder.
  2. Ao parar, o clipe é enviado via POST para /api/crm/voice/transcribe (multipart, máx. 25 MB).
  3. O servidor o encaminha ao whisper-server local em 127.0.0.1:19214 — os bytes de áudio nunca saem da Contabo.
  4. O texto transcrito retorna e é inserido no compositor.

Latência: ~3,4 s para um clipe de 11 segundos (modelo aquecido, 3,1× tempo real na máquina atual EPYC de 6 vCPU).

Concorrência: o whisper-server tem um semáforo de 2 slots. Se ambos os slots estiverem ocupados, a API retorna 429 ("server busy") e a UI mostra um toast — tente novamente em alguns segundos.


Cota Diária

Cada usuário tem um limite flexível de 60 min/dia para transcrições L2. O servidor estima a duração do clipe a partir do tamanho do upload (assumindo codec de voz de ~32 kbps, precisão de ±30%). Quando o limite é atingido:

A L1 (Web Speech API) não está sujeita a esse limite — ela usa o serviço do próprio navegador.


Solução de Problemas

Sintoma Causa provável Correção
Botão do microfone acinzentado Cota diária atingida Aguarde até a meia-noite UTC
"Microphone access blocked" Navegador bloqueou o microfone Site settings → Microphone → Allow para arc-os.co
L1 não funciona no Firefox O Firefox não suporta a Web Speech API Cai para a L2 automaticamente
429 "server busy" Dois outros usuários transcrevendo Tente novamente após ~5 s
Qualidade da transcrição ruim Ruído de fundo / modelo base da L2 Fale com clareza; transcrição Pro (modelo maior) é uma fase futura
Ctrl+Shift+V não faz nada Foco fora do compositor Clique dentro da textarea do compositor primeiro

Referências