Jasper | Download e installazione
download gratis
Licenza gratuito GNU GPL
Sistema Operativo Linux
Recensito da Luca Tringali

Jasper

Un assistente personale libero ed open source

In tutti i film futuristici è presente una sorta di assistente personale intelligente costituito da un computer che dialoga con i suoi proprietari come se fosse una persona. Ed è questa l’immagine che molti di noi hanno in mente quando pensano a come vivremo nel futuro. Le tecnologie che si vedono nei film sono per ora fantascienza, ma è possibile averne un assaggio utilizzando i moderni assistenti computerizzati. Un esempio è Amazon Echo, che fa parlare di sé già da qualche tempo. Amazon Echo è al contempo una bella idea ed una pessima idea: è bello avere un assistente vocale in casa che risponde a semplici quesiti, ma è un incubo pensare che la propria voce e le proprie parole possano essere continuamente ascoltate da un oggetto che, dotato di tecnologia closed source, potrebbe farci qualsiasi cosa. Anche inviare le nostre conversazioni private a varie aziende per ricerche di mercato: finché non vediamo il codice, non possiamo avere garanzie su cosa accada alle nostre parole. Per fortuna esiste un’alternativa completamente libera ed open source: si chiama Jasper , ed è un assistente vocale intelligente basato su Raspberry Pi e programmi open source. Uno dei grandi vantaggi di Jasper è la possibilità di aumentarne le funzioni tramite diversi moduli che permettono di fare molte cose, dal leggere gli appuntamenti segnati sul proprio calendario Google, al cercare definizioni su Wikipedia e gestire semplici servizi domotici.

Jasper è un assistente vocale, quindi ha bisogno di altoparlanti e di un microfono. Si possono trovare entrambe le cose su Amazon o eBay, l’importante è assicurarsi di comprare un microfono USB, visto che il Raspberry non ha un ingresso Jack, e delle casse Jack attive (preamplificate). Il jack di uscita del Raspberry infatti ha poca potenza, quindi potrebbe non riuscire ad alimentare degli altoparlanti passivi.

Purtroppo, al momento per Raspbian non esiste un pacchetto ufficiale che consenta di installare Jasper. Si deve quindi procedere manualmente. Prima di tutto si installano le dipendenze fondamentali per il riconoscimento del microfono da parte di Jasper:

sudo apt-get update
sudo apt-get install nano git-core python-dev bison libasound2-dev libportaudio-dev python-pyaudio --yes

Per evitare sovrapposizioni tra la scheda audio interna del Raspberry e il microfono USB si può creare il file /lib/modprobe.d/jasper.conf con il comando sudo nano /lib/modprobe.d/jasper.conf e poi scrivere al suo interno le righe:

# Load USB audio before the internal soundcard
options snd_usb_audio index=0
options snd_bcm2835 index=1
# Make sure the sound cards are ordered the correct way in ALSA
options snd slots=snd_usb_audio,snd_bcm2835

Dopo aver salvato il file, è opportuno riavviare il Raspberry per consentire il riconoscimento corretto del microfono.

Ora è possibile scaricare Jasper prelevando il suo codice dal repository Git:

cd ~
git clone https://github.com/jasperproject/jasper-client.git jasper
sudo pip install --upgrade setuptools
sudo pip install -r jasper/client/requirements.txt
chmod +x jasper/jasper.py

Utilizzando pip si installano le dipendenze fondamentali per il linguaggio Python (nel quale è scritto Jasper).

Ora si deve installare il sistema di riconoscimento vocale e di sintesi vocale. Esistono varie opzioni, ma se si vuole optare per i liberi e gratuiti Pocketsphinx ed espeak si devono dare i seguenti comandi:

sudo apt-get install pocketsphinx python-pocketsphinx
sudo apt-get install espeak
sudo apt-get install festival festvox-don
sudo su -c "echo 'deb http://ftp.debian.org/debian experimental main contrib non-freè>/etc/apt/sources.list.d/experimental.list"
sudo apt-get update
sudo apt-get -t experimental install phonetisaurus m2m-aligner mitlm libfst-tools
sudo apt-get install subversion autoconf libtool automake gfortran g++ --yes
svn co https://svn.code.sf.net/p/cmusphinx/code/trunk/cmuclmtk/
cd cmuclmtk/
./autogen.sh
make
sudo make install
cd..
wget https://www.dropbox.com/s/kfht75czdwucni1/g014b2b.tgz
tar -xvf g014b2b.tgz
cd g014b2b/
./compile-fst.sh
cd..
mv ~/g014b2b ~/phonetisaurus

I comandi da dare sono tanti perché oltre a questi programmi si sta installando anche un modello linguistico avanzato che rende più efficiente il riconoscimento vocale. Purtroppo tale modello è un programma che va compilato a mano, e questo richiede diversi comandi.

Finalmente Jasper è pronto per funzionare. Prima di cominciare dando il comando ~/jasper/jasper.py , però è opportuno configurarlo. Lo si può fare dando i comandi

cd ~/jasper/client
python populate.py

Una semplice procedura guidata consente di inserire dei semplici dati come il proprio nome, indirizzo email e luogo in ci si vive. Questo permette a Jasper di chiamare il proprio interlocutore per nome e fornire informazioni come le previsioni meteorologiche.