Aller au contenu

Reconnaissance vocale

Guida inclut un moteur Speech-to-Text (STT) entièrement local et performant, basé sur les modèles Whisper d’OpenAI. En intégrant whisper.cpp directement dans l’application, Guida passe d’un moteur d’affichage web passif à un écouteur actif.

Combiné à vos LLM locaux, Whisper agit comme un pont vocal vers le système : vous pouvez commander le navigateur, extraire des données et déclencher des flux de travail en langage naturel plutôt qu’en cliquant sur des boutons.

Votre voix et vos commandes ne quittent jamais votre machine. La transcription via Whisper et le raisonnement via Ollama ou LlamaSharp s’exécutent entièrement sur votre matériel local. Il n’y a pas d’API cloud, pas d’abonnement et pas de télémétrie enregistrant votre audio.

Le moteur vocal de Guida est volontairement optimisé pour votre CPU, avec les instructions AVX2/AVX-512. Ce choix architectural garde le moteur STT hors de votre GPU et réserve toute votre VRAM aux grands LLM à nombreux paramètres qui peuvent tourner en parallèle.

La limitation des ressources garantit que le moteur utilise uniquement les cœurs CPU physiques, évitant le surcoût de l’hyperthreading et gardant l’interface du navigateur réactive pendant la transcription.

Pour commencer avec les flux vocaux, configurez le moteur dans Settings > Speech Recognition :

  1. Model Path : indiquez le chemin de votre modèle Whisper GGML préféré. Les modèles quantifiés base.en ou small.en sont fortement recommandés pour le meilleur équilibre entre vitesse et précision.
  2. Load model on startup : activez cette option pour choisir entre consommation de RAM et disponibilité immédiate. Si elle est désactivée, le modèle est chargé à la demande la première fois qu’un script ou l’interface demande une transcription.
  3. Microphone Sovereignty : vous n’êtes plus obligé d’utiliser le périphérique audio Windows « Default ». Choisissez explicitement votre matériel d’entrée dans la liste, par exemple pour séparer un casque de qualité du micro intégré de l’ordinateur portable.

Guida inclut des contrôles matériels de niveau professionnel et un retour visuel en temps réel pour éviter d’avoir à deviner si le navigateur vous écoute :

  • Bouton Voice dynamique : le bouton « 🎙 Voice » de la barre principale tient compte de l’état. Il affiche « Loading… » quand le modèle IA passe en RAM, « Load Voice » quand il dort, et devient rouge très contrasté lorsque le microphone enregistre.
  • Pulsation visuelle : le bouton vocal contient un VU-mètre intégré, une barre verte discrète qui réagit à votre voix en temps réel et confirme immédiatement que le matériel fonctionne.
  • Détection intelligente du silence : Guida surveille proactivement les niveaux audio. Si vous enregistrez accidentellement une session vide, par exemple avec un micro physiquement coupé, Guida le détecte avant d’envoyer des données vides à l’IA et affiche une notification utile.
  • Bac à sable de test micro : un bouton « Test » dans la fenêtre Settings vous permet de vérifier les niveaux du microphone sans déclencher de flux IA.

L’espace de noms g.stt permet aux développeurs de construire des flux pilotés par la voix.

Enregistre l’audio depuis le microphone sélectionné pendant une durée donnée et le transcrit directement dans une variable de script.

async function main() {
g.log("Listening for 5 seconds...");
try {
// Record for 5000 milliseconds
const transcript = await g.stt.listen(5000);
g.log("You said: " + transcript);
if (transcript.toLowerCase().includes("summarize")) {
// Trigger a local LLM to summarize the page
const content = await g.dom.extractContent("body");
const summary = await g.llm.promptLocalLlm("llama3.2", "Summarize: " + content);
g.log("Summary: " + summary);
}
} catch (e) {
g.log("STT Error: " + e.message);
}
}

Traite des fichiers audio .wav existants sur votre disque pour l’extraction de données.

async function main() {
try {
const transcript = await g.stt.transcribeFile("C:\\temp\\meeting_notes.wav");
g.log("Transcription complete. Length: " + transcript.length);
} catch (e) {
g.log("Failed to transcribe file: " + e.message);
}
}
  • Référence API — signatures complètes des méthodes g.stt.*
  • Configuration LLM — connecter le « cerveau » Ollama/LlamaSharp à vos nouvelles « oreilles »