* feat: voix JARVIS, Parakeet v3 pour le français, worklets audio sous CSP stricte (v2.4.1)
Voix
- Timbre « JARVIS » (Web Audio) : hauteur légèrement abaissée, chaleur dans
les basses, présence, compression douce, courte réverbération d'intercom.
Activé par défaut, réglable dans Paramètres → Voix.
- Préréglage « Voix JARVIS » en un clic : moteur local, voix masculine
française (Piper Tom téléchargé automatiquement, Kokoro n'ayant pas de voix
française masculine), débit calme. Affichage de la voix active.
- Boutons Masculine / Féminine désormais lisibles (style du sélecteur ajouté).
Reconnaissance
- Parakeet TDT 0.6B v3 (NVIDIA NeMo, int8, 25 langues européennes dont le
français) ajouté au catalogue et recommandé : plus précis et plus rapide que
Whisper sur processeur, ponctuation incluse.
- 0,4 s de silence ajoutées avant et après chaque énoncé avant la
reconnaissance (syllabes coupées, hallucinations de Whisper sur les clips
courts).
Écoute permanente
- Les modules AudioWorklet sont livrés en fichiers statiques (public/worklets)
chargés depuis l'application : en version installée, la CSP stricte
(script-src 'self') refusait les URL blob et l'écoute permanente échouait
avec « Unable to load a worklet's module ». Repli blob conservé pour le dev.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Wn5VX9HNbJ7N54hR24u9Y
* docs: mesures Parakeet vs Whisper et worklets dans la feuille de route
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Wn5VX9HNbJ7N54hR24u9Y
---------
Co-authored-by: Claude <noreply@anthropic.com>
Complete rewrite of the application:
- Toolchain: Electron 44, Vite 8, React 19, TypeScript 5.9, Zustand, Vitest;
main process rewritten in TypeScript (electron/), typed IPC contract (shared/),
sandboxed renderer with webSecurity on and an HTTP/SSE proxy in the main process.
- Voice: AudioWorklet microphone capture at 16 kHz with adaptive energy VAD and
auto-stop, WAV encoder, OpenAI-compatible STT, TTS queue with sentence-level
streaming, prefetch and Web Audio playback feeding an analyser; hands-free mode,
global push-to-talk hotkey, system-voice fallback.
- Hermes: full API client (capabilities, health, models, skills, toolsets,
sessions, jobs) with automatic transport selection: runs API (SSE lifecycle,
approvals, steer, stop) > sessions stream > chat completions with local tools;
tolerant event normalisation; webhook receiver hardened (secret, size limit).
- UI: JARVIS arc-reactor core on Canvas 2D reacting to the real audio signal,
holographic HUD layout (transcript, core, Hermes ops panel with tools/crons/
skills/sessions/link tabs, telemetry), settings drawer, approval modals,
compact floating widget, four themes, tray icon and global shortcuts.
- Removed the 3D Eve robot, three.js and legacy assets; migrated 1.x settings.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Wn5VX9HNbJ7N54hR24u9Y
- Fusion de vertices plus agressive (corps 0.08, bras 0.07, tête 0.08)
- Matériau laque blanche unifié : emissiveIntensity 0.16, clearcoat 1.0
- Matériau tête dédié : emissiveIntensity 0.28 pour effacer les ombres aux seams
- Collar élargi (tube 0.14), cylindre de cou ajouté, épaulières agrandies (scale Z 0.56)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>