Come usare il Riconoscimento Vocale di Google in Linux

The following two tabs change content below.

Gianni M.

Sono da sempre uno smanettone… Ormai non più in erba, ma sempre desideroso di conoscere, scoprire, ogni cosa che abbia a che fare con tecnologia e dintorni.

In questa guida vi spiegherò come usare il riconoscimento vocale di Google come “metodo di immissione” come si fa con Android cliccando sul classico simbolo del microfono .

Il riconoscimento vocale in italiano in linux è materia un po’ ostica, ma la grande G ci da una mano con le Google Voice Api.

Grazie a Zenity tutto avviene in modo grafico, nonostante tutto sia realizzato attraverso un semplicissimo script bash.

Per quanto io ami l’utilizzo del terminale, creeremo un lanciatore nel nostro pannello di gnome, in modo da avere questa piccola utility sempre a disposizione.

Il funzionamento è abbastanza semplice, ma differisce un po’ dalla funzionalità che trovate sul vostro telefono Android o su Google Chrome: Si imposta un tempo di registrazione, poi si parla e dopo l’elaborazione, se il risultato è soddisfacente, si copia il testo ottenuto negli appunti oppure no…

Questo script si basa sul materiale che ho trovato in questa pagina, con l’integrazione di Zenity.

Prerequisiti

per gli utenti Ubuntu basterà aprire un terminale con CTRL+ALT+T, quindi digitare o incollare:

sudo apt-get update

sudo apt-get install sox sed wget zenity xclip

Script Bash

Creiamo il file di testo googlevoicezen.sh nella vostra home con il comando

gedit ~/googlevoicezen.sh

quindi copiate il testo seguente, incollatelo in gedit, salvate e chiudete l’applicazione

 #!/bin/sh
sec=$(zenity --entry --title="Google Speech Recognition for Linux" --text="Quanti secondi vuoi parlare? Prego inserire un numero ." --entry-text "10")
if [[ $sec -gt 0 ]]
then
(for i in `seq 0 $sec`; do
sleep 1
: $((x = sec - $i ))
echo "#attesa di $x sec."
echo "$x"
done) | zenity --progress --title="Parla adesso..." --auto-close & rec -r 16000 -b 16 -c 1 message.wav trim 0 $sec;
sox message.wav message.flac rate 16k gain -n -5 silence 1 5 2% ;
wget -q -U "Mozilla/5.0" --post-file message.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=it-IT&client=chromium" >message.ret
zenity --title="Google Speech Recognition for Linux" --text="        Invio richiesta in corso...        " --info --timeout 3
echo "4 SED Extract recognized text"
cat message.ret | sed 's/.*utterance":"//' | sed 's/","confidence.*//' > message.txt
echo "5 Remove Temporary Files"
rm message.flac
rm message.ret
echo "6 Show Text "
mex=$(cat message.txt)
zenity --title="Copiare il testo negli appunti?" --text="$mex" --question
if [[ "$?" -eq "0" ]]
then
xclip message.txt;

fi
else
zenity –title=”Errore” –text=”Valore errato.” –info;
fi

Bene, ora aggiungiamo i permessi di esecuzione al file:

chmod + ~/googlevoicezen.sh

Ora dobbiamo creare il lanciatore:

  • Apriamo la tua directory home con Nautilus
  • Trascina l’icona del file sul pannello superiore (o in qualsiasi altro pannello che preferisci)
  • Clicca con il tasto destro sull’icona del lanciatore così creato, quindi seleziona proprietà: alla voce “Comando” trovi il path dello script, devi aggiungere all’inizio di tale stringa il comando “bash” (senza le virgolette ovviamente), seguito da uno spazio.
  • Clicca sull’icona e impostane una di tuo gradimento. Se ti piace puoi usare questa immagine .

Utilizzo

Cliccare sull’icona del lanciatore

 

Impostate il tempo di cui avete bisogno (meglio abbondare, ma senza strafare)

 

Parliamo scandendo bene le parole… ma non troppo;)

 

Attendiamo l’elaborazione

 Se il risultato è soddisfacente copiamo il testo nella clipboard cliccando su “Si”

Incolliamo il testo dove vogliamo!;) NB: Per incollare il testo non potete utilizzare il classico CTRL+V o il tasto destro del mouse, ma il tasto centrale, premendo la rotellina del mouse. Questo succede perché c’è una clipboard primaria, come nel nostro caso, ed una secondaria, che siamo soliti utilizzare con il tasto destro. Se non avete lo scroll, ma utilizzate un mouse a due bottoni, una trackball o un touchpad basta cliccare entrambi i tasti contemporaneamente.

Puoi scaricare lo script già fatto e l’icona da qui. Lo script è sotto licenza GPL.

Le tue impressioni, precisazioni o miglioramenti sono bene accetti.