DEV Community

Oreste AI Team
Oreste AI Team

Posted on

# 🎤 Come gestire i comandi vocali con JavaScript in Oreste AI

Un assistente vocale non deve soltanto ascoltare.

La parte interessante arriva quando riesce a capire un comando e trasformarlo in un'azione.

Questo è uno degli aspetti che sto esplorando nello sviluppo di Oreste AI, un assistente vocale italiano che funziona direttamente dal browser.

🌐 Oreste AI: https://testonuovo.github.io/oreste-ai/

🧩 Dal comando all'azione

Il principio può essere rappresentato così:

🎤 Utente
   ↓
🗣️ Comando vocale
   ↓
📝 Testo
   ↓
🔎 Analisi del comando
   ↓
⚙️ JavaScript
   ↓
🚀 Azione
Enter fullscreen mode Exit fullscreen mode

La Web Speech API permette di ottenere il testo pronunciato dall'utente.

JavaScript può quindi utilizzare quel testo per decidere cosa fare.

💻 Un esempio semplice

Immaginiamo che l'utente dica:

"Apri Google"

Dopo il riconoscimento vocale possiamo controllare il testo ricevuto:

const comando = testo.toLowerCase();

if (comando.includes("apri google")) {
    window.open("https://www.google.com", "_blank");
}
Enter fullscreen mode Exit fullscreen mode

È un esempio molto semplice, ma mostra un concetto fondamentale:

il linguaggio naturale può diventare un comando per un'applicazione web.

🔎 Perché normalizzare il testo?

Quando lavoriamo con la voce, lo stesso comando potrebbe essere riconosciuto in modi leggermente diversi.

Per esempio:

"Apri Google"
"apri google"
"Aprimi Google"
Enter fullscreen mode Exit fullscreen mode

Per questo può essere utile normalizzare il testo prima di analizzarlo:

const comando = testo
    .toLowerCase()
    .trim();
Enter fullscreen mode Exit fullscreen mode

In questo modo possiamo rendere più semplice il confronto con i comandi previsti.

⚙️ Una serie di comandi

Possiamo estendere il sistema con più istruzioni:

if (comando.includes("apri google")) {
    window.open("https://www.google.com", "_blank");
}
else if (comando.includes("apri youtube")) {
    window.open("https://www.youtube.com", "_blank");
}
else if (comando.includes("torna indietro")) {
    history.back();
}
Enter fullscreen mode Exit fullscreen mode

A questo punto il browser inizia a comportarsi come una piccola interfaccia controllabile tramite voce.

🚀 Il problema della scalabilità

Quando i comandi aumentano, una lunga serie di if può diventare difficile da mantenere.

Una possibile evoluzione consiste nel separare:

  • riconoscimento vocale;
  • interpretazione del comando;
  • esecuzione dell'azione.

Per esempio:

function eseguiComando(comando) {
    if (comando.includes("apri google")) {
        apriGoogle();
        return;
    }

    if (comando.includes("torna indietro")) {
        tornaIndietro();
        return;
    }

    console.log("Comando non riconosciuto");
}
Enter fullscreen mode Exit fullscreen mode

In questo modo la logica può essere organizzata e ampliata più facilmente.

🧠 Quando un comando diventa intelligente?

Qui nasce una domanda interessante.

Un sistema basato esclusivamente su comandi predefiniti funziona bene quando sappiamo esattamente cosa deve dire l'utente.

Ma cosa succede se l'utente dice:

"Vorrei andare sul sito di Google."

oppure:

"Puoi aprirmi Google?"

Il significato è praticamente lo stesso, ma le frasi sono differenti.

Ed è proprio qui che l'intelligenza artificiale può diventare interessante.

Invece di cercare soltanto una frase precisa, possiamo cercare di interpretare l'intenzione dell'utente.

🤖 Da comandi a intenzioni

Possiamo immaginare un'evoluzione:

Comando preciso
      ↓
"Apri Google"
      ↓
Regola JavaScript
      ↓
Azione
Enter fullscreen mode Exit fullscreen mode

e successivamente:

Frase naturale
      ↓
Interpretazione
      ↓
Intento
      ↓
Azione
Enter fullscreen mode Exit fullscreen mode

Questa differenza è importante perché trasforma un semplice sistema di comandi in un'interfaccia più naturale.

🌐 Perché farlo nel browser?

Il browser è un ambiente interessante per questo tipo di sperimentazione.

Con JavaScript possiamo collegare:

🎤 voce

→ 📝 testo

→ 🧠 logica

→ 🌐 navigazione

→ ⚙️ funzionalità web

Il risultato può essere un'interfaccia che non richiede necessariamente tastiera e mouse per ogni operazione.

🇮🇹 La direzione di Oreste AI

Oreste AI nasce proprio dall'idea di sperimentare un assistente vocale orientato all'italiano e utilizzabile online.

Il progetto continua a evolversi attraverso nuove funzionalità e nuove possibilità di interazione.

Per me, la parte più interessante dello sviluppo è proprio questa:

come trasformare una frase pronunciata da una persona in un'azione utile.

👨‍💻 La domanda per gli sviluppatori

Se doveste progettare un sistema di comandi vocali in JavaScript, quale approccio scegliereste?

A) Comandi predefiniti
B) Riconoscimento di intenti
C) Intelligenza artificiale
D) Una combinazione dei tre

Scrivetelo nei commenti. Sono curioso di conoscere il vostro approccio.

🚀 Oreste AI: https://testonuovo.github.io/oreste-ai/

OresteAI #AI #JavaScript #VoiceAI #WebDevelopment #WebSpeechAPI #Developers #OpenSource #Coding #ItalianAI

Top comments (0)