Guida di Configurazione: Local Sovereign AI (Livello 1) #
Questa guida documenta la configurazione dell’ambiente offline per la Refertazione Ambientale Vocale di Livello 1 dell’Agenda Aura, spiegando i requisiti hardware, l’architettura tecnica del localhost bridge e le istruzioni operative sia per l’attivazione automatica 1-click sia per la configurazione manuale sviluppatori.
1. Architettura del Sistema (Local Whisper + Ollama) #
Il Livello 1 è progettato per garantire il 100% della privacy del dato biologico (nessun dato sensibile lascia il computer dello specialista) sfruttando l’hardware locale per trascrivere e strutturare le note cliniche. Utilizziamo Whisper locale integrato (tramite Aura Desktop o model WASM locale in fallback, ~64MB, Web Workers, WebGPU) che garantisce accuratezza superiore al riconoscimento vocale nativo del browser, specialmente in italiano e terminologia clinica.
[Clinico parla in studio] ──(Registrazione Audio PCM)──> [Agenda Aura (Interfaccia Clinica)]
│
┌──────────────────────────────────────────────────────────┘
▼
[browser-whisper (tiny, Web Worker)] ──> [Trascrizione Testuale Accurate]
│
┌──────────────────────────────────────────────────────────┘
▼
[Testo Accumulato] ──(POST /api/chat - qwen2.5:1.5b)──> [Ollama Locale (127.0.0.1:11435)]
│
┌──────────────────────────────────────────────────────────┘
▼
[JSON Strutturato SOAP] ──(Popolamento Campi)──> [Diario Clinico (Scheda Clinica)]
Three-tier ASR Fallback (dal più accurato al più compatibile):
- Tauri Desktop + sherpa-onnx: Se l’utente ha installato Aura Desktop, il sidecar sherpa-onnx-vad-with-offline-asr (26MB) gestisce l’ASR via Rust invoke.
- browser-whisper (tiny): Modello ~64MB caricato via Web Worker. Download automatico al primo click con progress UI. Zero dipendenze server.
- Web Speech API (fallback nativo): Se nessuna delle precedenti è disponibile, usa il riconoscimento vocale del browser (accuratezza ridotta ma zero setup).
Endpoint di Connessione Standard:
- Whisper ASR: Elaborato interamente nel browser (Web Worker + WebGPU) — nessun server aggiuntivo richiesto
- Ollama API (Zero-Drafting SOAP):
http://127.0.0.1:11435/api/chat(Modello:qwen2.5:1.5b— ~986 MB download, ~1.8 GB su disco, strutturazione SOAP dei campi clinici)
2. Specifiche Hardware e Requisiti di Sistema #
| Componente | macOS (Apple Silicon – Raccomandato) | Windows PC / Linux |
|---|---|---|
| Processore (CPU/GPU) | Apple Silicon M1, M2, M3, M4 o versioni Pro, Max, Ultra. | Intel Core i7 / AMD Ryzen 7 di recente generazione. |
| Scheda Grafica | GPU integrata Apple Silicon (gestita via Metal). | Nvidia GeForce RTX 3060 / 4060 o superiore con almeno 6GB-8GB VRAM. |
| Memoria RAM | 16 GB di RAM unificata (Minimo: 8 GB con velocità ridotta).
AVVISO: 8 GB limitati per modelli LLM |
16 GB o 32 GB DDR4 / DDR5.
AVVISO: Modelli pesanti causano rallentamenti |
| Archiviazione | SSD ad alte prestazioni (Minimo 15 GB liberi). | SSD NVMe ad alte prestazioni (Minimo 15 GB liberi). |
3. Attivazione Automatica — Aura Desktop Installer (Per il Professionista) #
Per evitare la frizione d’uso, Dottori-Online ha sviluppato Aura Desktop, un’applicazione Tauri che automatizza completamente l’infrastruttura AI locale:
- Scarica l’Installer: Clicca sul pulsante “Scarica Aura Desktop” su dottori-online.com/agenda-clinica o dalle impostazioni dell’Agenda.
- Installa: Esegui il file .dmg (macOS) o .exe/.msi (Windows). L’app viene installata in
/Applications/Aura.app. Versione minima consigliata: v1.0.8+ (include la richiesta permessi microfono per macOS). - Nessuna configurazione: L’installer attiva automaticamente un LaunchAgent che avvia Ollama bundle (porta 11435) e il sidecar sherpa-onnx all’avvio del computer. Nessun terminale, nessun comando.
- Inizia a Dettare: Apri l’Agenda nel browser. L’AI locale è già attiva su
localhost:11435. Se hai già Ollama installato, non c’è conflitto — Aura usa la porta 11435, la tua installazione esistente resta su 11434.
Cosa include Aura Desktop:
- Ollama bundle (~64MB) con
qwen2.5:1.5bpre-configurato su porta 11435 - Sherpa-onnx sidecar (~26MB) per ASR offline via Rust invoke
- Modelli ONNX sherpa-onnx (~106MB) per trascrizione vocale offline
- LaunchAgent auto-avviante con
OLLAMA_ORIGINS=*eOLLAMA_HOST=127.0.0.1:11435 - App gestionale per monitorare stato Ollama, modelli e microfono
- Richiesta permesso microfono (
NSMicrophoneUsageDescription) integrata in Info.plist da v1.0.8
NSMicrophoneUsageDescription in Info.plist. Al primo avvio, macOS mostrerà un popup per autorizzare l’accesso al microfono. È necessario cliccare “Consenti” per abilitare la trascrizione vocale. Se clicchi “Non Consentire”, l’icona del microfono nell’app rimarrà su Accesso negato . Per riabilitarlo: vai in Impostazioni di Sistema → Privacy e Sicurezza → Microfono e attiva l’interruttore per Aura Desktop.4. Configurazione Manuale per Sviluppatori #
Se desideri configurare manualmente l’ambiente o effettuare dei test personalizzati, apri il Terminale del tuo computer ed esegui le seguenti istruzioni:
Step 1: Setup di Ollama e Gemma-4
- Scarica e installa Ollama da Ollama.com.
- Scarica il modello linguistico raccomandato per lo Zero-Drafting digitando nel terminale:
# Modello consigliato (massima precisione e contesto): ollama pull gemma4:e4b # In alternativa (Consigliato per connessioni lente o PC 8GB RAM): ollama pull qwen2.5:1.5b - Verifica che Ollama sia in esecuzione:
curl http://127.0.0.1:11435/api/tags
Step 2: Browser SpeechRecognition (Nativo — nessuna installazione)
La trascrizione vocale utilizza il riconoscimento vocale nativo del browser. Non è richiesta alcuna installazione. Assicurati solo di:
- Usare Google Chrome o Microsoft Edge (Safari ha supporto parziale, Firefox non è supportato).
- Concedere il permesso Microfono al sito (sia a livello browser che nelle Impostazioni di Sistema di macOS → Privacy → Microfono).
Step 3: Mock Mode (Test UI senza CPU)
Se non hai Ollama installato o vuoi testare l’interfaccia senza caricare la CPU:
- Apri il Setup Panel nell’Editor Note Cliniche (icona ingranaggio).
- Attiva il toggle Mock Mode (Simula AI).
- La refertazione ambientale ora userà dati simulati istantanei — nessuna chiamata a Ollama.
Lo stato persiste tra le sessioni (salvato automaticamente). Disattivalo quando Ollama è pronto per tornare alla modalità AI reale.
Una volta che Ollama è in esecuzione, l’interfaccia dell’Agenda lo rileverà all’avvio abilitando il servizio di Refertazione Ambientale vocale offline.
5. Risoluzione Errore “no-speech” del Browser #
[Musica] o non scrivendo alcun testo.L’errore no-speech fornito dal browser è una diagnosi cruciale durante la refertazione vocale. Significa che:
- Il browser ha inizializzato correttamente il motore SpeechRecognition.
- La pagina web ha i permessi per usare il microfono (altrimenti vedresti l’errore
not-allowed). - Il motore vocale del browser riceve silenzio assoluto dal sistema operativo, andando in timeout.
Su macOS questo comportamento è molto comune ed è legato ai permessi a livello di Sistema Operativo o alla selezione del dispositivo di input. Segui questa checklist:
Passo 1: Permessi Microfono di macOS
Su Mac, anche se dai il permesso al sito all’interno del browser, macOS potrebbe bloccare l’accesso al microfono per l’intera applicazione:
- Apri le Impostazioni di Sistema di macOS.
- Vai su Privacy e Sicurezza → Microfono.
- Assicurati che l’interruttore accanto a Google Chrome (o al browser in uso) sia abilitato (colore blu/verde). Se è disattivato, Chrome riceverà solo silenzio.
- Ricarica la pagina dopo aver attivato il permesso.
Passo 2: Dispositivo di Input predefinito
Se hai più microfoni collegati (es. monitor esterni, cuffie, microfoni virtuali come Camo/EpocCam/BlackHole):
- In Chrome, vai su
chrome://settings/content/microphone(copia e incolla nella barra degli indirizzi). - Controlla quale dispositivo è selezionato nel menu a tendina in alto.
- Assicurati che sia selezionato il microfono integrato del Mac (es. “Microfono integrato”) o le tue cuffie attive, e non un ingresso audio virtuale silente.
Passo 3: Volume del Microfono di macOS
- Vai in Impostazioni di Sistema → Suono → scheda Ingresso.
- Parla e verifica se la barra del volume di ingresso si muove.
- Se è a zero o molto bassa, il browser non rileverà la voce e andrà in
no-speech.
no-speech dovrebbe sparire non appena il browser rileva il primo segnale audio della tua voce. Se il permesso è negato a livello macOS (interruttore spento), vedrai l’errore not-allowed invece di no-speech.6. Raccomandazioni Modelli e Note Tecniche #
Modelli Ollama Raccomandati (in ordine di priorità):
| Modello | Parametri | Download | Spazio su Disco | Compatibilità |
|---|---|---|---|---|
| gemma4:e4b (Spunta Verde) | 2.5B (quant) | ~2.5 GB | ~5.0 GB | Priorità assoluta — Contesto 128K, alta precisione clinica |
| gemma4:e2b | 1.6B (quant) | ~1.6 GB | ~3.2 GB | Per hardware datato o Mac con 8GB RAM |
| qwen2.5:1.5b (Alternativa Leggera) | 1.5B (quant) | ~986 MB | ~1.8 GB | Consigliato per connessioni lente o PC con 8GB RAM |
| llama3.2 | 3B (quant) | ~2.0 GB | ~4.0 GB | Fallback automatico |
| llama3 (8B) (Croce Rossa) | 8B | ~4.8 GB | ~9.0 GB | NON raccomandato — Swap e freeze su Mac 16 GB |
Comandi rapidi per scaricare i modelli:
# Modello consigliato (Alta precisione e contesto 128K)
ollama pull gemma4:e4b
# Alternativa ultra-leggera (Consigliata per connessioni lente)
ollama pull qwen2.5:1.5b
# Altre alternative:
ollama pull gemma4:e2b
ollama pull llama3.2
# DA EVITARE su Mac con ≤16 GB RAM:
# ollama pull llama3 # 8B - causa freeze e swap intensivo
Variabili d’ambiente consigliate per Ollama:
# Limita l'utilizzo delle risorse (fondamentale su Mac 16 GB)
export OLLAMA_NUM_PARALLEL=1
export OLLAMA_MAX_LOADED_MODELS=1
export OLLAMA_KEEP_ALIVE=5m
export OLLAMA_NUM_THREAD=4
Nota su Whisper in-browser (browser-whisper):
L’architettura utilizza browser-whisper (modello tiny, 64MB) in esecuzione su Web Worker, che risolve i problemi della Web Speech API nativa (bassa accuratezza italiano, terminologia clinica non riconosciuta). Vantaggi rispetto a whisper.cpp nativo:
- Zero installazione: Il modello tiny (~64MB) viene scaricato automaticamente al primo click con progress UI.
- Web Worker: Esecuzione in thread separato, non blocca la UI né compete con Ollama.
- WebGPU opzionale: Se disponibile, accelera l’inferenza senza consumare CPU.
- Tre path ASR: Tauri (sherpa-onnx sidecar) → browser-whisper → Web Speech API (fallback).
Raccomandazione finale: Usare Aura Desktop (Ollama bundle su :11435 + sherpa-onnx) per la massima accuratezza. In assenza di Aura Desktop, il browser carica automaticamente whisper tiny. Mock Mode disponibile per test UI senza CPU.
7. Verifica e Test del Sistema Aura Desktop #
Dopo aver installato Aura Desktop v1.0.8+, segui questa procedura per verificare che ogni componente funzioni correttamente.
Prerequisiti
- Aura Desktop v1.0.8+ installato (da dottori-online.com/agenda-clinica)
- Ollama installato (automatico con Aura Desktop) — oppure Ollama configurato su porta bundle
127.0.0.1:11435 - Microfono funzionante e accessibile dal sistema operativo
Test 1: Avvio di Aura Desktop
- Apri Aura Desktop da
/Applications/Aura.app(macOS) o dal Menu Start (Windows). - Nella finestra principale, controlla la sezione “Stato Ollama”:
- Connesso — Ollama è in esecuzione e raggiungibile.
- Disconnesso — Ollama non è attivo. Clicca “Avvia Ollama” per lanciarlo.
- Nella sezione “Modello”, verifica che almeno un modello sia presente:
- Qwen 2.5 (1.5B) — pre-installato con Aura Desktop.
- Se il modello non è presente, clicca il pulsante di download/installazione accanto al modello desiderato.
- Controlla che il modello selezionato risulti “ATTIVO” (badge verde).
Test 2: Permessi Microfono
- Nella sezione “Trascrizione Vocale”, controlla l’icona del microfono:
- Accesso concesso — Il microfono è pronto per la registrazione.
- Accesso negato — Il permesso non è stato concesso.
- Se vedi Accesso negato :
- Vai in Impostazioni di Sistema → Privacy e Sicurezza → Microfono.
- Attiva l’interruttore per Aura Desktop.
- Torna all’app e clicca sul pulsante “Registra”: questa azione forza una nuova richiesta di permesso e macOS mostrerà il popup.
- Clicca “Consenti” nel popup di sistema.
Test 3: Trascrizione Vocale (Speech-to-Text)
- Assicurati che il microfono sia Accesso concesso .
- Clicca il pulsante “Registra” (icona microfono).
- Parla chiaramente al microfono. L’app mostrerà:
- Un timer che conta i secondi di registrazione.
- Un visualizzatore audio (barre animate) che conferma la ricezione del segnale.
- Clicca “Stop” per fermare la registrazione.
- Attendi il completamento della trascrizione. Il testo trascritto apparirà nell’area di output.
- Se la trascrizione ha successo, puoi:
- Copia il testo (pulsante “Copia”).
- Invia all’Agenda (pulsante “Invia in Agenda”) — se l’Agenda Elettronica è aperta nel browser.
- Cancella e riprovare (pulsante “Cancella”).
Test 4: Integrazione con Agenda Elettronica (Browser)
- Apri l’Agenda Aura nel browser (es. dottori-online.com/agenda-clinica).
- Vai alla scheda “Refertazione” o apri l’Editor Note Cliniche.
- Controlla il pannello “Stato Componenti” (ingranaggio):
- Ollama: dovrebbe risultare Connesso su
127.0.0.1:11435. - Whisper (browser): dovrebbe risultare Disponibile (se il browser supporta WebAssembly).
- Ollama: dovrebbe risultare Connesso su
- Clicca l’icona “Microfono” accanto a un campo clinico per avviare la dettatura ambientale.
- Parla e verifica che il testo venga trascritto in tempo reale nel campo corrispondente.
Test 5: Pipeline Completa (Registrazione + Trascrizione + Strutturazione AI)
- Assicurati che Aura Desktop sia in esecuzione e che Ollama sia Connesso .
- Apri l’Agenda nel browser e apri l’Editor Note Cliniche.
- Concedi i permessi microfono al browser (popup — clicca “Consenti”).
- Parla per descrivere una visita clinica (es. sintomi, diagnosi, terapia).
- Al termine, l’Agenda elaborerà il testo tramite Ollama (modello AI locale) e strutturerà automaticamente i campi del diario clinico in formato SOAP.
- Verifica che i campi Soggettivo, Obiettivo, Assessment, Piano siano popolati con i dati estratti dalla tua voce.
1. Verifica che il microfono sia abilitato in Impostazioni di Sistema → Microfono.
2. Riavvia Aura Desktop.
3. Se il problema persiste, apri la console sviluppatore del browser (F12 → Console) e cerca messaggi di errore relativi a
getUserMedia o SpeechRecognition.4. Su macOS, controlla che nessun’altra applicazione stia usando il microfono (es. Zoom, Teams, OBS).