L’era della casa intelligente è ben avviata e la prossima grande innovazione prevista sul mercato è l’automazione vocale. Gli umili inizi di Amazon Echo si sono trasformati in una rivoluzione che ha creato un enorme sconvolgimento partito dal mercato degli altoparlanti domestici, ma che sicuramente finirà per permeare ogni aspetto della casa intelligente. La domanda è: come raggiungere questo obiettivo e quali sono i passi fondamentali nel creare un sistema di automazione vocale di successo per l’abitazione? I componenti principali sono la cattura vocale e l’interpretazione del discorso e la risposta.
Il controllo vocale
In questo stesso istante, la maggior parte delle persone possiede un dispositivo nella propria abitazione che può essere controllato in remoto tramite un’app sul proprio smartphone. Sebbene questa possibilità sia estremamente utile quando ci si trova lontano da casa per controllare di avere regolato correttamente la temperatura o aver spento le luci, non è così comoda quando ci si trova in casa. A differenza di molti adolescenti, la maggior parte delle persone non gira per la casa con uno smartphone in tasca; inoltre, nessuno tiene costantemente attivo l’accesso alle app per la casa intelligente, pertanto il controllo delle apparecchiature nell’abitazione richiede ancora l’utilizzo di una tastiera o di un telecomando per quel dispositivo specifico. Come rendere più pratico il tutto? Attivando i comandi vocali. Utilizzare la propria voce per controllare l’ambiente circostante rappresenta un miglioramento in grado di cambiare le regole del gioco della casa intelligente. Di punto in bianco è possibile ottenere un controllo praticamente immediato su ogni cosa, connettendosi da qualunque luogo, indipendentemente da cosa si stia facendo. Ad esempio, se si desidera abbassare il volume della musica per parlare con un altro membro della famiglia mentre si lavano i piatti, è sufficiente dire “Alexa, abbassa la musica” per ottenere il risultato senza interruzioni o ritardi. Un giorno sembrerà incredibilmente arcaico dover prendere in mano un vero telecomando per cambiare canale sulla Tv o, a dire il vero, per controllare qualsiasi dispositivo in casa. Al contrario, tutti parleranno alla propria casa intelligente. Ma c’è un problema: il riconoscimento vocale deve funzionare alla perfezione; l’incapacità di comprendere i comandi di un sistema di riconoscimento vocale rovinerebbe completamente l’esperienza dell’utente, limitandone o annullandone l’uso. La buona notizia sta nell’ubiquità dell’accesso a Internet ad alta velocità, che permette di sfruttare la potenza del Cloud computing a livello domestico a tale scopo. Tuttavia, è necessario che la casa sia costantemente in ascolto, affinché capisca quando le si sta parlando e sia in grado di acquisire e inviare al Cloud un messaggio audio chiaro per l’interpretazione.
La casa che ascolta
La prima parte della soluzione consiste nel definire una o più parole chiave che azionino l’acquisizione da parte della casa intelligente per tentare di interpretare un comando. La seconda parte, ossia l’acquisizione di segnali chiari, può essere difficoltosa, in quanto la posizione dell’utente e il volume della sua voce possono variare molto ed essere influenzati anche dal rumore ambientale. Come è possibile acquisire un segnale audio chiaro? A tutti è capitato di trovarsi nel bel mezzo di una festa e sentire pronunciare il proprio nome dall’altro lato della stanza. Nonostante il rumore, siamo stati in grado di isolare quella voce e sentire la conversazione. Il nostro cervello filtra il rumore per aiutarci a isolare una conversazione; questo tipo di concentrazione e rimozione del rumore può essere replicata nei ricevitori audio con microfoni multipli e con l’utilizzo di tecniche quali il beamforming e la riduzione del rumore. Un sistema dotato di microfoni multipli è in grado di mettere in correlazione i segnali provenienti da ricevitori multipli per «concentrarsi» su una distanza e una direzione particolari in modo da isolare il suono che proviene da una fonte di interesse. In un sistema sempre attivo, con una parola chiave, il sistema analizza tutti i segnali audio in entrata e attende l’identificazione della parola chiave. Una volta identificata la parola chiave, il sistema è in grado di analizzare i segnali su tutti i ricevitori per verificare le differenze di fase e ampiezza. Per mezzo di tecniche di analisi matematica, è ora possibile stimare la posizione, la direzione e la distanza di origine della persona che ha pronunciato la parola chiave. Al termine di queste operazioni, il sistema è ora in grado di combinare i segnali provenienti da più parlanti in ingresso al fine di isolare i comandi in ingresso dai restanti segnali audio che potrebbero essere presenti, anche emessi da altri parlanti. Questa tecnica può migliorare notevolmente la qualità dell’audio inviato al Cloud per l’analisi e aumentare sensibilmente la precisione del sistema.
Automazione vocale ad alta chiarezza
La Fig. 1 descrive lo schema a blocchi di un sistema di automazione vocale a ricevitori multipli ad alta chiarezza. È presente una chiara correlazione tra costi e prestazioni, in quanto un maggior numero di microfoni fa aumentare i costi e le prestazioni richieste per il processore, ma comporta anche un aumento della chiarezza della ricezione. L’unità di elaborazione principale di un sistema di automazione vocale deve svolgere numerosi compiti. Oltre alla complessa elaborazione audio per l’identificazione della parola chiave e per il beamforming di cui sopra, vi sono molti altri elementi da considerare. Essi includono:
- trasmissione dei commenti audio ricevuti tramite una connessione di rete al server di riconoscimento vocale basato su Cloud;
- ricezione e interpretazione delle istruzioni restituite dal server Cloud;
- connessione alla rete o alle reti della casa intelligente: il processore centrale deve connettersi a tutti i dispositivi della casa intelligente e controllarli, questi ultimi possono essere connessi tramite Wi-Fi, Bluetooth o altri protocolli di comunicazione;
- gestione di un display;
- gestione di un’interfaccia utente (pulsanti, telecomandi, ecc.);
- ricezione e installazione di aggiornamenti;
- riproduzione di audio e video.
Un processore eterogeneo
Dovendo svolgere questi compiti, risulta vantaggioso disporre di un processore eterogeneo, in quanto i differenti requisiti di calcolo possono essere allocati a core separati, ottimizzando ciascuno di essi per le responsabilità ad esso assegnate. Mentre la maggior parte dei compiti nel sistema sopra descritto non presenta caratteristiche di criticità legate ai tempi e può girare sotto Linux, è possibile ridurre la latenza e migliorare l’esperienza dell’utente affidando l’elaborazione audio a un sistema operativo in tempo reale. I processori di segnali digitali, come il core C66x di Texas Instruments, sono particolarmente indicati per la precisione analitica richiesta dalle operazioni matematiche utilizzate nell’elaborazione audio, come filtri Iir, convoluzioni, calcoli di trasformate di Fourier veloci, ecc. L’uso dei Dsp nell’unità di elaborazione permette inoltre di ridurre i costi rispetto ad altri processori generici meno efficienti.