App_SpeechRecognizer, dare comandi vocali ai dispositivi Android

SpeechRecognizer è un riconoscitore vocale delle parole pronunciate dagli utenti. Le frasi vengono poi convertite in testo utilizzando la funzione per il riconoscimento vocale di Android. In avvio l’applicazione viene settata per la lingua italiana. Facendo click sul pulsante “Attiva input voce”, pronunciando una o più parole queste vengono “ascoltate” dal dispositivo, trasformate in testo e inserite nel TextBox sottostante. Passato un secondo, il dispositivo cerca di riconoscere la parola e risponde di conseguenza. Per l’attesa di un secondo è usato il componente Clock con TimerInterval=1000 (millesimi di secondo). In questo esempio il dispositivo è messo in condizione di riconoscere tre parole, “rosso”,”verde”,”blu”. Se la parola pronunciata è una di queste, il dispositivo risponde in modo affermativo e colora il testo nel modo opportuno. Se non lo è, risponde di non conoscere il testo. (Non è memorizzato nel dispositivo). Per realizzare questa applicazione sono state utilizzate due liste così disposte: Nella prima lista di nome Lista_Testo, sono memorizzate, nell’ordine, le parole “rosso”, ”verde”,”blu”,
nella seconda lista, di nome Lista_Colori, sono stati memorizzati, nell’ordine i blocchi dei colori “Red”,”Green”,”Bleu”. Blocchi dei colori prelevati in Blocks Editor dal menù Built-In/Colors. L’ordine è importante perché, anche se il programma riconosce la parola, solo se parola-colore delle due liste sono nella stessa posizione (hanno lo stesso numero di Index) potrà colorare il testo nel modo giusto. Sotto la frase delle istruzioni compare un numero che in avvio è zero. Questo numero corrisponde all’Index nelle due liste e diventa 1 o 2 o 3, quando è pronunciata una delle tre parole riconoscibili.
Con il pulsante Legge testo, è possibile far ripetere la parola digitata bypassando il Clock. Questo è possibile perché i blocchi che permettono al dispositivo di parlare sono in una procedura e come tale può essere chiamata sia dal clock che al click sul pulsante Legge Testo.
Componenti e proprietà da assegnare:

Componente

Gruppo

Nome

Proprietà

Text

Width

Text Alignment

Button

Basic

bAttivaInputVoce

Attiva input voce

Automatic

Center

TextBox

Basic

tbInputVoce

qui ci..(Hint)

Fill parent

Left

Label

Basic

lIstruzioni

Premi “Attiva….

Fill parent

Center

Label

Basic

lPosizioneColoreInLista

0

Fill parent

Left

Button

Basic

bLeggeTesto

Legge testo

Automatic

Center

TextSpeech

Other stuff

TextToSpeech

Clock

Basic

Clock

TimeInterval = 1000

SpeechRecognizer

Other stuff

SpeechRecognizer

Come dovrebbero presentarsi la pagina Design e l’Emulatore:
Aprire Blocks Editor
All’avvio dell’applicazione viene configurata per la lingua italiana.
Per impedire che all’avvio venga letto il contenuto del TextBpox, viene inibita la lettura del Clock.
Vengono preparate due liste così composte:
Lista_Testo, che conterrà il testo che il programma confronterà con quanto “udito”. Da notare che le parole sono tutte in minuscolo, servirà a rendere più agevole i confronti.
Lista_Colori, con i blocchi colore che verranno utilizzati per colorare il testo. Ciò avverrà se il confronto del testo parlato con quello della lista Lista_Testo ha avuto esito positivo.
Viene assemblato il pulsante Attiva input voce. L’utente dovrà premerlo prima di iniziare a parlare.
Appena finito di parlare va in esecuzione il blocco SpeechRecognizer.AfterGettingText ed il testo capito da SpeechRecognizer viene inserito nel TextBox tbInputVoce.Text.
L’applicazione può già funzionare e il testo capito inserito nel TestBox,
Viene ora assemblata la procedura Legge_TextBoX_Parla con i blocchi per la risposta del dispositivo.
La procedura per la risposta del dispositivo è pronta, viene programmato il Clock.
Effetto simile a quello ottenuto con il Clock è possibile averlo programmando un pulsante come con i blocchi che seguono.