Saisie vocale

Statut : En production depuis la Phase 62 (2026-06-05). whisper.cpp auto-hébergé sur Contabo — aucune dépendance à OpenAI, aucun audio ne quitte votre serveur.

Arc OS prend en charge deux couches de saisie vocale dans le composer de chat :

Couche Nécessite Fonctionne sur
L1 — Web Speech API Chrome ou Edge (Chromium) Tous les plans Arc
L2 — whisper auto-hébergé Tout navigateur (MediaRecorder WebM/WAV) Arc Standard Cloud, On-premise

Les deux couches alimentent la même zone de texte du composer et sont transparentes pour le worker IA.


Utiliser la voix dans le chat

  1. Ouvrez le workspace de n'importe quel projet et placez le focus dans le composer de chat.
  2. Cliquez sur le bouton microphone (en bas à gauche du composer) ou appuyez sur Ctrl+Shift+V (fonctionne sur toute disposition de clavier — le raccourci correspond à la touche physique V, pas au caractère de la disposition).
  3. Parlez. Une animation de forme d'onde + une bordure orange indiquent l'enregistrement.
  4. Cliquez à nouveau sur le bouton micro (ou appuyez sur le raccourci) pour arrêter.
  5. Le texte transcrit apparaît dans le composer — modifiez-le si nécessaire, puis envoyez.

Mode continu : L1 continue d'écouter jusqu'à ce que vous arrêtiez ; L2 enregistre un seul clip et l'envoie pour transcription.


L1 — Web Speech API (Chrome/Edge)

Utilise l'API de reconnaissance vocale intégrée au navigateur. Fonctionne instantanément, sans aller-retour serveur.

Locale : définie automatiquement depuis votre préférence de langue Arc. Codes BCP-47 pris en charge : uk-UA, en-US, de-DE, es-ES, fr-FR, pl-PL, ru-RU, pt-BR.

Permissions : le navigateur demande l'accès au microphone à la première utilisation. Si vous l'avez bloqué par accident, allez dans Site settings → Microphone → Allow pour arc-os.co. L'en-tête Permissions-Policy sur arc-os.co utilise microphone=(self) — l'accès same-origin est autorisé tandis que les intégrations cross-origin sont verrouillées.

Limitations :


L2 — whisper.cpp auto-hébergé

Arc OS exécute un service persistant arc-whisper.service sur Contabo avec le modèle ggml-base (142 Mo) préchargé. Quand le navigateur ne prend pas en charge la Web Speech API, le composer bascule automatiquement vers cette couche :

  1. Le navigateur enregistre un clip WebM via MediaRecorder.
  2. À l'arrêt, le clip est envoyé en POST à /api/crm/voice/transcribe (multipart, max 25 Mo).
  3. Le serveur le transmet au whisper-server local sur 127.0.0.1:19214 — les octets audio ne quittent jamais Contabo.
  4. Le texte transcrit revient et est inséré dans le composer.

Latence : ~3,4 s pour un clip de 11 secondes (modèle chaud, 3,1× temps réel sur la machine EPYC 6 vCPU actuelle).

Concurrence : le whisper-server dispose d'un sémaphore à 2 slots. Si les deux slots sont occupés, l'API renvoie 429 (« server busy ») et l'UI affiche un toast — réessayez dans quelques secondes.


Quota journalier

Chaque utilisateur dispose d'une limite souple de 60 min/jour pour les transcriptions L2. Le serveur estime la durée du clip à partir de la taille de l'upload (hypothèse codec voix ~32 kbps, précision ±30 %). Quand la limite est atteinte :

L1 (Web Speech API) n'est pas soumis à cette limite — il utilise le service propre au navigateur.


Dépannage

Symptôme Cause probable Solution
Bouton micro grisé Quota journalier atteint Attendez minuit UTC
« Microphone access blocked » Le navigateur a bloqué le micro Site settings → Microphone → Allow pour arc-os.co
L1 ne fonctionne pas dans Firefox Firefox ne prend pas en charge la Web Speech API Bascule automatiquement vers L2
429 « server busy » Deux autres utilisateurs transcrivent Réessayez après ~5 s
Qualité de transcription médiocre Bruit de fond / modèle base L2 Parlez distinctement ; la transcription Pro (modèle plus grand) est prévue pour une phase future
Ctrl+Shift+V ne fait rien Le focus n'est pas dans le composer Cliquez d'abord dans la zone de texte du composer

Références