Speech Recognition
Guida features a high-performance, completely local Speech-to-Text (STT) engine powered by OpenAI’s Whisper models. By integrating whisper.cpp directly into the application, Guida transforms from a passive web renderer into an active listener.
When combined with your local LLMs, Whisper acts as a “Vocal OS Bridge”—allowing you to command your browser, extract data, and trigger workflows using natural language rather than clicking buttons.
Local-First Privacy
Section titled “Local-First Privacy”Your voice and commands never leave your machine. Both transcription (via Whisper) and reasoning (via Ollama or LlamaSharp) happen entirely on your local hardware. There are no cloud APIs, no subscriptions, and no telemetry recording your audio.
Performance & Hardware
Section titled “Performance & Hardware”Guida’s speech engine is deliberately optimized to run on your CPU (utilizing AVX2/AVX-512 instructions). This architectural choice keeps the STT engine entirely off your GPU, preserving 100% of your precious VRAM for running large, high-parameter LLMs simultaneously.
Resource throttling ensures the engine only uses physical CPU cores, preventing hyperthreading overhead and keeping the browser UI responsive during transcription.
Setup & Configuration
Section titled “Setup & Configuration”To get started with voice workflows, configure the engine in Settings > Speech Recognition:
- Model Path: Configure your preferred Whisper GGML model path. (The
base.enorsmall.enquantized models are highly recommended for the best balance of speed and accuracy). - Load model on startup: Toggle this to balance between RAM usage and instant availability. If disabled, the model will lazy-load the first time a script or the UI requests transcription.
- Microphone Sovereignty: You are no longer forced to use the Windows “Default” audio device. Explicitly choose your input hardware from the dropdown menu (e.g., separating your high-quality headset from your laptop’s built-in mic).
Robust Audio UX
Section titled “Robust Audio UX”Guida includes professional-grade hardware controls and real-time visual feedback to ensure you never have to guess if the browser is listening to you:
- Dynamic Voice Button: The main toolbar ”🎙 Voice” button is state-aware. It shows “Loading…” when the AI model is moving into RAM, “Load Voice” when sleeping, and turns high-contrast red when the microphone is actively recording.
- Visual Pulse: The voice button features an integrated VU meter (a subtle green bar) that reacts to your voice in real-time, providing instant confirmation that your hardware is working.
- Smart Silence Detection: Guida proactively monitors audio levels. If you accidentally record a blank session (e.g., your mic is physically muted), Guida catches this before sending empty data to the AI and issues a helpful Toast Notification.
- Mic Test Sandbox: A “Test” button in the Settings window allows you to safely verify your microphone levels without triggering an AI workflow.
Scripting API (g.stt.*)
Section titled “Scripting API (g.stt.*)”The g.stt namespace allows developers to build voice-driven workflows programmatically.
g.stt.listen(ms)
Section titled “g.stt.listen(ms)”Record audio from the selected microphone for a specified duration and transcribe it directly into a script variable.
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); }}g.stt.transcribeFile(path)
Section titled “g.stt.transcribeFile(path)”Process existing .wav audio files on your disk for data extraction.
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); }}Next Steps
Section titled “Next Steps”- API Reference — Full
g.stt.*method signatures. - LLM Setup — Connect the “Brain” (Ollama/LlamaSharp) to your new “Ears”.