Discussione Controllo vocale con Raspberry

Stato
Discussione chiusa ad ulteriori risposte.

TheDarkFenix

Utente Emerald
24 Maggio 2013
695
41
276
378
Buonasera a tutti .. avrei bisogno di un piccolo aiuto , vorrei sapere se qualcuno conosce qualche guida o cmq sappia già .. come poter attivare le gpio utilizzando dei comandi vocali!

dovrei realizzare un semplice progetto per una persona disabile , l idea era quella di realizzare un telecomando con cui possa cambiare la tv.. so che esiste già uno in commercio , ma autocostruirlo mi renderebbe più felice

se qlkuno ha conoscenze più approfondite di me sull argomento mi piacerebbe fare 2 chiacchiere :p

grazie
 
sei un po' troppo generico, quale raspberry, con quale sistema operativo, nella gpio cosa ci andrà(shield acquistato o fatto in casa)?
 
@gpsd ... beh ho provato si win iot che raspbian... momentaneamente ho su raspbian , per la shield ho fatto una schedina casalinga che funziona egregiamente, sto facendo varie prove e test, se ne hai voglia e sei ferrato sull argomento... r0by83 su skype cosi famo 4 chiacchere.... tnx per la risposta
 
@gpsd ... beh ho provato si win iot che raspbian... momentaneamente ho su raspbian
Direi che per raspbian ci sono due soluzioni: utilizzare il controllo vocale google(quindi online) o una serie di script per lavorare senza rete
ci sono pro e contro, sull'online le lingue riconosciute sono di più utilizzando il servizio google praticamente quello che è installato sulla maggior parte degli smartphone android (quindi per ogni comando vocale ci vuole un accesso a internet), mentre per l'offline è più veloce(in alcuni casi), non ha bisogno dell'accesso a internet però le lingue supportate non sono molte(quindi più lavoro da fare) e ci vogliono circa 8 GB di installazione

dai una lettura nel frattempo a:
-online: http://stevenhickson.blogspot.it/2013/05/voice-command-v20-for-raspberry-pi.html
-online: https://oscarliang.com/raspberry-pi-voice-recognition-works-like-siri/ (google, come android)
-offline: http://jasperproject.github.io/documentation/

@gpsdr0by83 su skype cosi famo 4 chiacchere....
volentieri, mi sembra giusto che pubblichi anche per il prossimo che né avrà bisogno

@gpsdtnx per la risposta
figurati è un piacere :)
 
voicecommand e Jasper li ho già testati ma nn ho avuto un riscontro positivo.. o quanto meno nn mi hanno soddisfatto del tutto..
nell attesa di sentirci... ti dico che al momento sto utilizzando un metodo macchinoso ... ciòe tramite cortana lancio dei comandi ssh al raspy
e cosi più o meno ho il risultato che cercavo....

ma è un po' macchinoso ... :)
 
Ultima modifica:
ho buttato giù un esempio spero che ti sia di aiuto!
utilizzando Linux ;-) per raspbian

Codice:
#sudo apt-get update
#sudo apt-get upgrade
#sudo apt-get install ffmpeg
#sudo apt-get install flac


#!/bin/bash

echo "Premi Ctrl+C o dire \"Annulla\" per Stoppare."

comando=``

while [[ $comando != "annulla" ]]
do
     # aspetta finchè non viene chiamato
     while [[ $comando != "Cortana" ]]
   do       
       # prende dal microfono l'audio e lo salva
       arecord -d 2 -f cd -t wav -r 16000 | flac - -f --best -o cmd.flac

       # invia il file audio al server google e si fà restituire il comando (query)       
       wget -O - -o /dev/null --post-file cmd.flac --header="Content-Type: audio/x-flac; rate=16000" "http://www.google.com/speech-api/v2/recognize?lang=it-IT&key=ADD_YOUR_KEY_HERE&output=json" | cut -d” -f12 >cmd.temp
       
       comando=`cat cmd.temp`
       
       #elimina il file audio temporaneo inviato a google
       rm cmd.flac > /dev/null 2>&1
   done
     
     echo "Comando..."
   # prende dal microfon l'audio e lo salva
   arecord -d 4 -f cd -t wav -r 16000 | flac - -f --best -o cmd.flac

   # invia il file audio al server google e si fà restituire il comando (query)
   wget -O - -o /dev/null --post-file cmd.flac --header="Content-Type: audio/x-flac; rate=16000" "http://www.google.com/speech-api/v2/recognize?lang=it-IT&key=ADD_YOUR_KEY_HERE&output=json" | cut -d” -f12 >cmd.temp

   #legge il comando e lo salva nella variabile comando
   comando=`cat cmd.temp`
   #lo stampa
   echo -n "Comando: "
   cat $value
   
   #ora paragona la variabile con i comandi (da modificare e inserire)
   case "$comando" in
        annulla) #se il comando è annulla esce
            exit 0
            ;;
         
        apri) #se il comando è apri esegue 'rele1.py'
            py rele1.py.py
            ;;
         
        chiudi) #se il comando è chiudi esegue 'rele2.py'
            py rele2.py
            ;;
        cambia) #se il comando è cambia esegue 'rele3.py'
            esegui rele3.py
            ;;
         
        *) #se il comando non è in lista dice che non è riconsciuto
            echo $"Non riconsciuto!"
    esac
   
   #elimina il file audio temporaneo inviato a google
   rm cmd.flac > /dev/null 2>&1
   
   #e ripete tutto finche non dici annulla o premi Ctrl-C
done

exit 0
 
  • Mi piace
Reazioni: TheDarkFenix
Stato
Discussione chiusa ad ulteriori risposte.