Riconoscimento vocale
Guida include un motore Speech-to-Text (STT) ad alte prestazioni e completamente locale, basato sui modelli Whisper di OpenAI. Integrando whisper.cpp direttamente nell’applicazione, Guida passa da semplice renderer web passivo ad ascoltatore attivo.
Combinato con i tuoi LLM locali, Whisper agisce come un ponte vocale verso il sistema operativo: ti permette di dare comandi al browser, estrarre dati e avviare flussi di lavoro usando linguaggio naturale invece di fare clic sui pulsanti.
Privacy locale
Sezione intitolata “Privacy locale”La tua voce e i tuoi comandi non lasciano mai la tua macchina. Trascrizione tramite Whisper e ragionamento tramite Ollama o LlamaSharp avvengono interamente sul tuo hardware locale. Non ci sono API cloud, abbonamenti o telemetria che registri il tuo audio.
Prestazioni e hardware
Sezione intitolata “Prestazioni e hardware”Il motore vocale di Guida è ottimizzato deliberatamente per girare sulla CPU, usando istruzioni AVX2/AVX-512. Questa scelta architetturale tiene il motore STT completamente fuori dalla GPU, preservando il 100% della VRAM per eseguire contemporaneamente LLM grandi e con molti parametri.
La limitazione delle risorse fa sì che il motore usi solo core CPU fisici, evitando il sovraccarico dell’hyperthreading e mantenendo reattiva l’interfaccia del browser durante la trascrizione.
Configurazione
Sezione intitolata “Configurazione”Per iniziare con flussi di lavoro vocali, configura il motore in Impostazioni > Riconoscimento vocale (Settings > Speech Recognition):
- Percorso modello (
Model Path): configura il percorso del modello Whisper GGML che preferisci. I modelli quantizzatibase.enosmall.ensono fortemente consigliati per il miglior equilibrio tra velocità e accuratezza. - Carica il modello all’avvio (
Load model on startup): usa questo interruttore per bilanciare uso della RAM e disponibilità immediata. Se è disabilitato, il modello verrà caricato al primo uso da parte di uno script o dell’interfaccia. - Scelta esplicita del microfono: non sei più costretto a usare il dispositivo audio “Predefinito” (
Default) di Windows. Scegli esplicitamente l’hardware di input dal menu a discesa, per esempio separando un headset di qualità dal microfono integrato del laptop.
Esperienza audio robusta
Sezione intitolata “Esperienza audio robusta”Guida include controlli hardware di livello professionale e feedback visivo in tempo reale, così non devi mai indovinare se il browser ti sta ascoltando:
- Pulsante voce dinamico: il pulsante principale ”🎙 Voce” (
Voice) nella barra degli strumenti è sensibile allo stato. Mostra “Caricamento…” (Loading...) quando il modello IA viene caricato in RAM, “Carica voce” (Load Voice) quando è inattivo e diventa rosso ad alto contrasto quando il microfono sta registrando. - Impulso visivo: il pulsante voce include un indicatore VU integrato, una sottile barra verde che reagisce alla tua voce in tempo reale e conferma immediatamente che l’hardware funziona.
- Rilevamento intelligente del silenzio: Guida monitora attivamente i livelli audio. Se registri accidentalmente una sessione vuota, per esempio perché il microfono è fisicamente disattivato, Guida lo rileva prima di inviare dati vuoti all’IA e mostra una notifica utile.
- Sandbox di test microfono: un pulsante “Test” nella finestra Impostazioni permette di verificare in sicurezza i livelli del microfono senza avviare un flusso di lavoro IA.
API di scripting (g.stt.*)
Sezione intitolata “API di scripting (g.stt.*)”Lo spazio dei nomi g.stt permette agli sviluppatori di creare flussi di lavoro guidati dalla voce in modo programmatico.
g.stt.listen(ms)
Sezione intitolata “g.stt.listen(ms)”Registra audio dal microfono selezionato per una durata specificata e lo trascrive direttamente in una variabile dello script.
async function main() { g.log("Ascolto per 5 secondi...");
try { // Registra per 5000 millisecondi const transcript = await g.stt.listen(5000); g.log("Hai detto: " + transcript);
if (transcript.toLowerCase().includes("riassumi")) { // Avvia un LLM locale per riassumere la pagina const content = await g.dom.extractContent("body"); const summary = await g.llm.promptLocalLlm("llama3.2", "Riassumi: " + content); g.log("Riepilogo: " + summary); } } catch (e) { g.log("Errore STT: " + e.message); }}g.stt.transcribeFile(path)
Sezione intitolata “g.stt.transcribeFile(path)”Elabora file audio .wav esistenti sul disco per estrarre dati.
async function main() { try { const transcript = await g.stt.transcribeFile("C:\\temp\\meeting_notes.wav"); g.log("Trascrizione completata. Lunghezza: " + transcript.length); } catch (e) { g.log("Trascrizione del file fallita: " + e.message); }}Passi successivi
Sezione intitolata “Passi successivi”- Riferimento API — firme complete dei metodi
g.stt.*. - Configurazione LLM — collega il “cervello” (Ollama/LlamaSharp) alle tue nuove “orecchie”.