Ingegneria

Riconoscimento vocale multimodale: costruire un ascoltatore che vede ciò che vedi

Perché l'ASR solo audio fallisce ancora nei flussi di lavoro reali, e come Loqua usa il contesto locale dello schermo per disambiguare l'intento.

TL;DR

Il riconoscimento vocale multimodale è il livello mancante tra trascrizione e dettatura davvero utile. Loqua è uno strumento di digitazione vocale nativo per Mac che combina audio con contesto locale dello schermo, metadati dell'app attiva e ciò che circonda il cursore. Così lo stesso suono può diventare l'identificatore corretto, l'istruzione giusta o testo formattato nell'app di destinazione.

Il riconoscimento vocale solo audio è diventato abbastanza buono da farci sottovalutare i suoi errori residui. I benchmark su parlato pulito nascondono il vero problema di prodotto: gli utenti dettano dentro le app, intorno a codice visibile, in lingue miste e con riferimenti parziali come "questa funzione" o "il punto sopra".

Dove l'ASR fallisce ancora

L'esempio classico sono gli omofoni. "From foo import bar" e from foo import bar suonano simili, ma appartengono a mondi diversi. Lo stesso vale per "cache the auth client" e "cash the auth client" se il modello non sa che il cursore è in un file TypeScript. L'audio da solo non può inferire in modo affidabile la destinazione.

Gli identificatori di codice rendono il problema ancora più netto. Un utente può dire "fetch profile", ma la funzione visibile è fetchProfile. Un modello di trascrizione sente parole; un modello di dettatura dovrebbe preservare l'identificatore. Il riconoscimento vocale multimodale tratta il testo visibile come evidenza, non come decorazione.

La deissi è il terzo spigolo vivo. Quando un utente dice "sostituisci questo con una guard clause", il testo pronunciato è tecnicamente una richiesta completa, ma il suo significato dipende interamente da ciò a cui punta "questo". Senza consapevolezza della selezione o un riferimento stabile al cursore, il sistema deve indovinare, e ogni ipotesi sbagliata fa perdere più tempo che riscrivere. L'ASR solo audio non può risolvere la deissi; può solo trascrivere il dimostrativo e sperare che uno strumento a valle capisca.

  • Omofoni: inglese naturale contro sintassi di codice.
  • Entità: nomi di pacchetti, classi, percorsi file e flag di comando.
  • Deissi: "questo", "quello", "sopra", "la parte selezionata".
  • Formato: prosa, elenco puntato, commento di codice, messaggio di commit o prompt.

L'architettura dell'ascoltatore multimodale

L'ascoltatore di Loqua ha tre input locali: feature audio in streaming, contesto derivato dallo schermo e metadati dell'app. Il percorso audio propone ciò che è stato detto. Il percorso del contesto riassume dove atterrerà il testo: app, tipo di campo, testo selezionato, token vicini e indizi strutturali visibili. Il percorso dell'app aggiunge vincoli, per esempio se sono appropriati a capo, Markdown o sintassi di codice.

L'ascoltatore non deve capire l'intero schermo come farebbe una persona. Gli serve la minima evidenza utile alla dettatura. In VS Code possono essere identificatori visibili, modalità del linguaggio e codice selezionato. In Slack può essere l'argomento del thread e il tono recente. In Notes può essere il livello di intestazione e il contesto dell'elenco.

Cosa scegliamo deliberatamente di non fare

Alcune capacità sono fuori ambito di proposito. L'ascoltatore non esegue OCR su screenshot di contenuti remoti, non riassume finestre in cui l'utente non sta digitando attivamente e non costruisce una cronologia visiva persistente. Inoltre non prova a inferire intenti granulari dalle immagini: un grafico, un frame video o una canvas di design non vengono interpretati; viene considerato solo il testo circostante. Ogni esclusione è una scelta di prodotto deliberata, che scambia capacità con prevedibilità e un confine di privacy più pulito.

Per questo parliamo di dettatura audio visiva solo in senso stretto di prodotto: audio più contesto visivo per scrivere. L'obiettivo non è il ragionamento visivo generale. L'obiettivo è avere meno parole sbagliate al cursore.

Come il contesto dello schermo risolve l'ambiguità

La dettatura con contesto dello schermo cambia l'output vincolando le possibilità. Se il cursore è dentro un file Python e la riga visibile contiene già from fastapi import, la parola pronunciata "router" è più probabilmente un simbolo che un sostantivo generico. Se il cursore è in Gmail, la stessa frase dovrebbe diventare una frase naturale.

Dici
"add a guard before fetch profile if auth client is missing"
Loqua scrive (in VS Code)
if (!authClient) return null;
const profile = await fetchProfile(authClient);
Dici
"can you take a look at the PR I just pushed and let me know if the retry logic looks right"
Loqua scrive (in Slack)
Could you take a look at the PR I just pushed? Want to make sure the retry logic looks right.

L'ascoltatore gestisce anche l'editing consapevole della selezione. Se del testo è selezionato, la dettatura viene interpretata come un'istruzione su quel testo, a meno che l'utente non chieda esplicitamente di inserire nuova prosa. Questa singola distinzione elimina un'intera classe di duplicazioni accidentali.

I conflitti di contesto vengono gestiti fidandosi prima dell'evidenza più forte. L'app attiva è il segnale più affidabile, perché è garantito strutturalmente dal sistema operativo. Subito dopo viene il testo selezionato. I token visibili nelle vicinanze sono il segnale più morbido, perché possono essere obsoleti o accidentali. Quando due segnali non concordano, l'ascoltatore preferisce quello più solido e abbassa la confidenza invece di sceglierne uno e impegnarsi.

Privacy: il contesto dello schermo resta locale

Il riconoscimento vocale consapevole del contesto ha un costo di privacy se implementato con leggerezza. La regola di Loqua è che il contesto dello schermo necessario all'ascoltatore resta locale per impostazione predefinita. Il riassunto del contesto viene calcolato sul dispositivo; serve a modellare l'enunciato corrente; non viene conservato come log generale dello schermo.

In concreto, ciò che arriva all'ascoltatore on-device è un breve pacchetto di contesto effimero: identificatore dell'app attiva, lingua e tipo di campo, intervallo di selezione e poche centinaia di caratteri di testo visibile vicino. Per impostazione predefinita, ciò che non lascia mai il dispositivo è il contenuto più ampio della finestra, altre schede, altre app o qualsiasi cronologia persistente di questi elementi. Le funzionalità cloud opzionali, quando abilitate dall'utente, ricevono l'audio o il testo dettato entro i confini già descritti nella nostra nota sulla privacy ibrida; non ricevono mai il pacchetto di contesto grezzo.

Questo confine conta perché un ascoltatore che vede ciò che vedi può osservare codice, messaggi o bozze. Li trattiamo come dati sensibili. L'architettura di privacy è descritta più in dettaglio nella nostra nota sulla privacy ibrida, ma la versione breve è chiara: il percorso del contesto dello schermo è local-first, e le funzionalità cloud opzionali non ricevono contenuto grezzo dello schermo circostante.

Contesto di ricerca aperto

Il contesto di ricerca include modellazione audio-linguistica, proiezione visual-language e instruction tuning multimodale. Punti di partenza utili sono Whisper per ASR robusto, LLaVA per pattern di visual instruction tuning e ImageBind per l'allineamento tra modalità.

Quei paper sono contesto di letteratura. Lo stack di riconoscimento vocale multimodale di Loqua è lavoro originale, ottimizzato per la superficie di dettatura su Mac: contesto locale, streaming a bassa latenza e output consapevole dell'app. Prendiamo in prestito il vocabolario del campo, non una catena di dipendenze.

Roadmap

Il prossimo passo è una migliore segnalazione dell'incertezza. Se il contesto suggerisce due possibili identificatori, il sistema dovrebbe preservare l'ambiguità invece di inventare sicurezza. Vogliamo anche adapter più fini per terminali, fogli di calcolo, pannelli chat degli IDE e strumenti di design, dove la forma dell'output utile cambia drasticamente.

L'adapter per terminale è il lavoro più concreto nel breve periodo. Strutturalmente, un terminale è una singola riga al cursore; contestualmente, però, è una lunga cronologia di comandi e output precedenti che dovrebbe informare ciò che l'utente sta per digitare. Un adapter per fogli di calcolo ha la forma opposta: una piccola finestra di contesto visibile con significati di colonna rigidi. Entrambi riusano la stessa architettura dell'ascoltatore; cambia cosa conta come evidenza e da dove il renderer del testo trae gli indizi di formattazione.

La direzione di lungo periodo non è "il modello vede tutto". È più stretta e più sicura: l'ascoltatore vede abbastanza contesto locale per scrivere ciò che intendevi, dove lo intendevi, con meno pulizia successiva. Questa è la promessa di prodotto del riconoscimento vocale multimodale.

Domande frequenti

Che cos'è il riconoscimento vocale multimodale?
Il riconoscimento vocale multimodale combina l'audio con un altro segnale, come il contesto dello schermo o i metadati dell'app, per inferire l'output scritto previsto. In Loqua significa che il sistema non trascrive soltanto il parlato: considera anche dove si trova il cursore e quale testo è visibile nelle vicinanze.
Perché l'ASR solo audio fallisce sul codice?
Il codice contiene identificatori, nomi di pacchetti, maiuscole e minuscole, punteggiatura e sintassi che possono non essere evidenti dal solo suono. Un modello può sentire correttamente 'fetch profile' e comunque non capire che l'identificatore visibile è fetchProfile. Il contesto dello schermo dà al riconoscitore evidenze che l'audio non possiede.
Loqua registra il mio schermo?
No, nel senso di prodotto descritto qui. Loqua legge il contesto locale necessario per l'evento di dettatura corrente, come app attiva, testo selezionato e testo visibile vicino. Non è progettato come registratore continuo dello schermo, e il percorso del contesto resta locale per impostazione predefinita.
In cosa è diverso da un dizionario personale?
Un dizionario personale mappa frasi note a grafie preferite. Il contesto multimodale può risolvere frasi che l'utente non ha mai preregistrato guardando l'evidenza visibile. Se un identificatore appare accanto al cursore, Loqua può preservarlo senza richiedere una voce manuale nel dizionario.
Il contesto dello schermo può sbagliare?
Sì. Se il contesto visibile è obsoleto, ambiguo o irrilevante, l'ascoltatore può sovradattarsi a quel segnale. La sfida di prodotto è la calibrazione: usare il contesto quando è forte, preservare il parlato grezzo quando c'è incertezza ed evitare riscritture sicure basate su evidenze deboli.
Il riconoscimento vocale multimodale serve solo agli sviluppatori?
No. Gli sviluppatori sentono il problema per primi perché il codice è denso di identificatori. La stessa idea aiuta in email, note, fogli di calcolo, strumenti di progetto e chat. L'app di destinazione cambia ciò che la frase pronunciata dovrebbe diventare, anche quando le parole sono ordinarie.
Che cosa contiene esattamente il pacchetto di contesto ricevuto dall'ascoltatore?
Un payload effimero: identificatore dell'app attiva, tipo di campo e modalità linguistica, intervallo della selezione corrente e una piccola finestra di testo visibile vicino, di solito poche centinaia di caratteri. Viene costruito per ogni enunciato, usato durante la dettatura e non persistito come log generale dello schermo.

Prova Loqua oggi

Gratis per iniziare. Nativa per Mac. Costruita da ricercatori di algoritmi che la usano ogni giorno.

Scarica per Mac

Altro dal blog di Loqua

Engineering
Digitazione vocale omni-modale: comprensione multimodale, MoE e output testuale in streaming
Guida
Come dettare codice su Mac: guida completa per Cursor, VS Code e Claude Code
Confronto
Loqua vs Typeless: un'alternativa a Typeless nativa per Mac, per contesto, coding e profondità