Sommario:

Fotocamera vocale con Raspberry Pi: 6 passaggi
Fotocamera vocale con Raspberry Pi: 6 passaggi

Video: Fotocamera vocale con Raspberry Pi: 6 passaggi

Video: Fotocamera vocale con Raspberry Pi: 6 passaggi
Video: Camera Sorveglianza (MotionEye) con Raspberry Pi 2024, Dicembre
Anonim
Fotocamera a comando vocale utilizzando Raspberry Pi
Fotocamera a comando vocale utilizzando Raspberry Pi

Sviluppa una fotocamera in grado di funzionare con comandi vocali, progettata principalmente per le persone di tutti i tipi, in particolare per le persone che cercano la fotografia divertente.

Passaggio 1: Guida hardware

Guida hardware
Guida hardware

VDC è progettato sul Raspberry Pi (Modello B) e richiede dell'hardware aggiuntivo come un adattatore Wi-Fi (opzionale) e un microfono USB. L'hardware suggerito è indicato di seguito con collegamenti per ulteriori dettagli. Puoi provare marche/specifiche di hardware leggermente diverse. VDC non è affiliato con nessuno dei fornitori di hardware collegati.

La lista completa

  1. Raspberry Pi Modello B
  2. Picamera
  3. Mini microfono USB
  4. Scheda SD
  5. cavo Ethernet
  6. Adattatore Mini-USB (opzionale)
  7. Micro USB - caricatore da muro
  8. Altoparlanti che funzionano tramite il jack audio Raspberry Pi (probabilmente devono essere autoalimentati)

L'elenco delle periferiche verificate Raspberry Pi può essere utile per trovare sostituti per i prodotti consigliati sopra.

Assemblea

Il montaggio dei componenti necessari è semplice. Inserisci il microfono, la scheda SD, l'adattatore wireless (se ne hai uno), il cavo micro-USB, il cavo Ethernet e gli altoparlanti nel Raspberry Pi. L'adattatore di ricarica USB a parete è consigliato per l'alimentazione, come dispositivo autonomo.

Il cavo ethernet verrà utilizzato per accedere al pi da un computer durante la fase di installazione del software. Dopo l'installazione, se si preferisce utilizzare una connessione wireless, questo cavo può essere rimosso.

Connessione internet

Come accennato in precedenza, l'adattatore wireless è opzionale. Funziona bene su una connessione cablata (via ethernet), quindi puoi scegliere tra le due configurazioni a seconda di ciò che funziona meglio per te.

Passaggio 2: installazione del sistema operativo su Raspberry Pi

Installazione del sistema operativo su Raspberry Pi
Installazione del sistema operativo su Raspberry Pi

introduzione

Raspberry Pi è un microprocessore delle dimensioni di una carta di credito disponibile in diversi modelli con diverse velocità di elaborazione a partire da 700 MHz. Che tu abbia un modello B o un modello B+, o la versione molto vecchia, il processo di installazione rimane lo stesso. Le persone che hanno controllato il sito Web ufficiale di Raspberry Pi, potrebbero averli visti consigliare il sistema operativo "NOOBS" o "NOOBS LITE" (noto anche come "OS") per i principianti. Ma usare il Pi è molto semplice e dall'essere un principiante, diventerai professionista in pochissimo tempo. Quindi, è meglio andare con il sistema operativo più potente ed efficiente, il Raspbian. Il motivo principale per cui Raspbian è estremamente popolare è che ha migliaia di librerie predefinite per eseguire molte attività e ottimizzare il sistema operativo. Ciò costituisce un enorme vantaggio durante la creazione di applicazioni.

Download di Raspbian e Image writer

Scarica l'ultima versione di Raspbian da qui. Puoi scaricarlo direttamente o tramite i torrent.

Pagina Raspbian

Collegamento per il download del sistema operativo Raspbian

Avrai bisogno di uno scrittore di immagini per scrivere il sistema operativo scaricato nella scheda SD (scheda micro SD in caso di modello Raspberry Pi B+). Quindi scarica "win32 disk imager" da qui.

Scrivere l'immagine

Inserisci la scheda SD nel laptop/pc ed esegui il writer di immagini. Una volta aperto, sfoglia e seleziona il file immagine Raspbian scaricato. Selezionare il dispositivo corretto, ovvero l'unità che rappresenta la scheda SD. Se l'unità (o dispositivo) selezionata è diversa dalla scheda SD, l'altra unità selezionata verrà danneggiata. Perciò stai attento.

Successivamente, fai clic sul pulsante "Scrivi" in basso. Ad esempio, vedere l'immagine qui sotto, dove l'unità della scheda SD (o micro SD) è rappresentata dalla lettera "G:\"

Una volta completata la scrittura, espelli la scheda SD e inseriscila nel Raspberry Pi e accendilo. Dovrebbe iniziare ad avviarsi.

Configurazione del Pi

Ricorda che dopo aver avviato il Pi, potrebbero esserci situazioni in cui verranno richieste le credenziali dell'utente come "nome utente" e password. Raspberry Pi viene fornito con un nome utente e una password predefiniti, quindi usalo sempre ogni volta che viene richiesto. Le credenziali sono:

login: pi

password: lampone

Quando il Pi è stato avviato per la prima volta, dovrebbe apparire una schermata di configurazione chiamata "Opzioni di installazione" e assomiglierà all'immagine qui sotto.

Se hai perso la schermata "Opzioni di configurazione", non è un problema, puoi sempre ottenerla digitando il seguente comando nel terminale.

sudo raspi-config

Una volta eseguito questo comando, verrà visualizzata la schermata "Opzioni di installazione" come mostrato nell'immagine sopra.

Ora che la finestra Opzioni di installazione è aperta, dovremo impostare alcune cose. Dopo aver completato ciascuno dei passaggi seguenti, se chiede di riavviare il Pi, fallo. Dopo il riavvio, se non si ottiene la schermata "Opzioni di installazione", seguire il comando sopra indicato per ottenere la schermata/finestra.

La prima cosa da fare:

selezionare la prima opzione nell'elenco della finestra delle opzioni di configurazione, ovvero selezionare il

Espandi file system

opzione e premere il tasto Invio. Lo facciamo per utilizzare tutto lo spazio presente sulla scheda SD come una partizione completa. Tutto ciò che fa è espandere il sistema operativo per adattare l'intero spazio sulla scheda SD che può quindi essere utilizzata come memoria di archiviazione per il Pi. La seconda cosa da fare:

selezionare la terza opzione nell'elenco della finestra delle opzioni di configurazione, ovvero selezionare l'opzione "Abilita avvio su desktop/graffio" e premere il tasto Invio. Ti porterà in un'altra finestra chiamata "scegli l'opzione di avvio" che assomiglia all'immagine qui sotto.

Nella "finestra delle opzioni di avvio", seleziona la seconda opzione, ovvero "Desktop Accedi come utente 'pi' sul desktop grafico" e premi il pulsante Invio. Una volta fatto, verrai riportato alla pagina "Opzioni di configurazione", in caso contrario seleziona il pulsante "OK" nella parte inferiore di questa finestra e verrai riportato alla finestra precedente. Lo facciamo perché vogliamo avviare l'ambiente desktop con cui abbiamo familiarità. Se non eseguiamo questo passaggio, il Raspberry Pi si avvia in un terminale ogni volta senza opzioni GUI. Una volta completati entrambi i passaggi, seleziona il pulsante "Fine" nella parte inferiore della pagina e dovrebbe riavviarsi automaticamente. In caso contrario, utilizzare il seguente comando nel terminale per riavviare.

sudo reboot

Aggiornamento del firmware

Dopo il riavvio dal passaggio precedente, se tutto è andato bene, ti ritroverai sul desktop che assomiglia all'immagine qui sotto.

Una volta che sei sul desktop, apri un terminale e inserisci il seguente comando per aggiornare il firmware del Pi.

sudo rpi-update

L'aggiornamento del firmware è necessario perché alcuni modelli del Pi potrebbero non avere tutte le dipendenze richieste per funzionare senza problemi o potrebbero avere qualche bug. L'ultimo firmware potrebbe avere la correzione di questi bug, quindi è molto importante aggiornarlo all'inizio stesso.

ecco il collegamento video disponibile:

Installazione e configurazione del sistema operativo Raspbian Jessie su Raspberry Pi (fare clic sul collegamento)

Passaggio 3: imposta VNC su Raspberry Pi per il controllo remoto

Imposta VNC su Raspberry Pi per il controllo remoto
Imposta VNC su Raspberry Pi per il controllo remoto

VNC (informatica in rete virtuale)

A volte non è conveniente lavorare direttamente sul Raspberry Pi. Forse ti piacerebbe lavorarci da un altro dispositivo tramite telecomando.

VNC è un sistema di condivisione desktop grafico che consente di controllare in remoto l'interfaccia desktop di un computer (che esegue VNC Server) da un altro computer o dispositivo mobile (che esegue VNC Viewer). VNC Viewer trasmette gli eventi della tastiera e del mouse o del tocco a VNC Server e riceve in cambio gli aggiornamenti sullo schermo.

Vedrai il desktop del Raspberry Pi all'interno di una finestra sul tuo computer o dispositivo mobile. Sarai in grado di controllarlo come se stessi lavorando sul Raspberry Pi stesso.

VNC Connect di RealVNC è incluso in Raspbian. Consiste sia di VNC Server, che ti consente di controllare il tuo Raspberry Pi in remoto, sia di VNC Viewer, che ti consente di controllare i computer desktop in remoto dal tuo Raspberry Pi, se lo desideri.

È necessario abilitare VNC Server prima di poterlo utilizzare: le istruzioni per questo sono fornite di seguito. Per impostazione predefinita, VNC Server ti dà accesso remoto al desktop grafico in esecuzione sul tuo Raspberry Pi, come se fossi seduto di fronte ad esso.

Abilitazione del server VNC

Sul tuo Raspberry Pi, esegui i seguenti comandi per assicurarti di avere l'ultima versione di VNC Connect:

sudo apt-get update

sudo apt-get install realvnc-vnc-server realvnc-vnc-viewer

Ora abilita il server VNC. Puoi farlo graficamente o dalla riga di comando.

Abilitazione grafica del server VNC

Sul tuo Raspberry Pi, avvia il desktop grafico.

Seleziona Menu > Preferenze > Configurazione Raspberry Pi > Interfacce.

Assicurati che VNC sia abilitato. Abilitazione del server VNC dalla riga di comando

Puoi abilitare VNC Server dalla riga di comando usando raspi-config:

sudo raspi-config

Ora, abilita VNC Server effettuando le seguenti operazioni:

Passa a Opzioni di interfaccia

Scorri verso il basso e seleziona VNC > Sì. Connessione al tuo Raspberry Pi con VNC Viewer

Esistono due modi per connettersi al tuo Raspberry Pi. Puoi usare uno o entrambi, a seconda di cosa funziona meglio per te.

Stabilire una connessione diretta

Le connessioni dirette sono rapide e semplici a condizione che tu sia collegato alla stessa rete locale privata del tuo Raspberry Pi. Ad esempio, potrebbe trattarsi di una rete cablata o wireless a casa, a scuola o in ufficio).

Sul tuo Raspberry Pi (usando una finestra di terminale o tramite SSH) usa queste istruzioni o esegui ifconfig per scoprire il tuo indirizzo IP privato.

ifconfig

Sul dispositivo che utilizzerai per assumere il controllo, scarica VNC Viewer. Per ottenere i migliori risultati, usa l'app compatibile di RealVNC.

Inserisci l'indirizzo IP privato del tuo Raspberry Pi nel visualizzatore VNC:

Stabilire una connessione cloud

Hai il diritto di utilizzare il servizio cloud di RealVNC gratuitamente, a condizione che l'accesso remoto sia solo per scopi educativi o non commerciali.

Le connessioni cloud sono convenienti e crittografate end-to-end. Sono altamente raccomandati per la connessione al tuo Raspberry Pi su Internet. Non c'è riconfigurazione del firewall o del router e non è necessario conoscere l'indirizzo IP del tuo Raspberry Pi o fornirne uno statico.

Registrati per un account RealVNC qui: è gratuito e richiede solo pochi secondi.

Sul tuo Raspberry Pi, accedi al server VNC utilizzando le nuove credenziali dell'account RealVNC:

Sul dispositivo che utilizzerai per assumere il controllo, scarica VNC Viewer. È necessario utilizzare l'app compatibile di RealVNC

Accedi a VNC Viewer utilizzando le stesse credenziali dell'account RealVNC, quindi tocca o fai clic per connetterti al tuo Raspberry Pi:

Autenticazione al server VNC

Per completare una connessione diretta o cloud, è necessario autenticarsi su VNC Server.

Se ti stai connettendo dall'app VNC Viewer compatibile di RealVNC, inserisci il nome utente e la password che usi normalmente per accedere al tuo account utente sul Raspberry Pi. Per impostazione predefinita, queste credenziali sono pi e raspberry.

Se ti stai connettendo da un'app non RealVNC Viewer, dovrai prima eseguire il downgrade dello schema di autenticazione di VNC Server, specificare una password univoca per VNC Server, quindi inserirla. Per fare ciò, apri la finestra di dialogo Server VNC sul tuo Raspberry Pi, selezionare Menu > Opzioni > Sicurezza, e scegli la password VNC dall'Autenticazione.

Per attivare questa funzione:

Sul tuo Raspberry Pi, apri la finestra di dialogo Server VNC.

Passare a Menu > Opzioni > Risoluzione dei problemi e selezionare Abilita modalità di acquisizione diretta sperimentale.

Sul dispositivo che utilizzerai per assumere il controllo, esegui VNC Viewer e connettiti.

Nota: le connessioni esistenti devono essere riavviate affinché queste modifiche abbiano effetto.

Se le prestazioni sembrano compromesse, prova questi passaggi per la risoluzione dei problemi o comunica a RealVNC.

Creazione di un desktop virtuale

Se il tuo Raspberry Pi è senza testa (cioè non è collegato a un monitor) o controlla un robot, è improbabile che stia eseguendo un desktop grafico.

VNC Server può creare un desktop virtuale per te, offrendoti l'accesso remoto grafico su richiesta. Questo desktop virtuale esiste solo nella memoria del tuo Raspberry Pi:

Per creare e connettersi a un desktop virtuale:

Sul tuo Raspberry Pi (usando Terminal o tramite SSH), esegui vnc server. Prendi nota dell'indirizzo IP/numero di visualizzazione che VNC Server stamperà sul tuo terminale (es. 192.167.**.**).

Sul dispositivo che utilizzerai per assumere il controllo, inserisci queste informazioni in VNC Viewer. Per distruggere un desktop virtuale, esegui il seguente comando:

vncserver -kill:

Questo fermerà anche tutte le connessioni esistenti a questo desktop virtuale.

Passaggio 4: configurazione della telecamera

Configurazione della telecamera
Configurazione della telecamera

Configurazione dell'hardware della fotocamera

Avvertenza: le fotocamere sono sensibili all'elettricità statica. Mettiti a terra prima di maneggiare il PCB. Un rubinetto del lavandino o qualcosa di simile dovrebbe essere sufficiente se non si dispone di un cavo di messa a terra.

La scheda della fotocamera si collega al Raspberry Pi tramite un cavo a nastro a 15 vie. Ci sono solo due connessioni da effettuare: il cavo a nastro deve essere collegato al PCB della fotocamera e al Raspberry Pi stesso. È necessario disporre il cavo nel modo corretto, altrimenti la fotocamera non funzionerà. Sul PCB della fotocamera, il supporto blu sul cavo dovrebbe essere rivolto lontano dal PCB e sul Raspberry Pi dovrebbe essere rivolto verso la connessione Ethernet (o dove sarebbe il connettore Ethernet se si utilizza un modello A).

Sebbene i connettori sul PCB e sul Pi siano diversi, funzionano in modo simile. Sul Raspberry Pi stesso, solleva le linguette su ciascuna estremità del connettore. Dovrebbe scorrere facilmente verso l'alto ed essere in grado di ruotare leggermente. Inserisci completamente il cavo a nastro nello slot, assicurandoti che sia dritto, quindi premi delicatamente le linguette per agganciarlo in posizione. Il connettore PCB della fotocamera richiede anche di estrarre le linguette dalla scheda, inserire delicatamente il cavo, quindi spingere indietro le linguette. Il connettore PCB può essere un po' più scomodo di quello sul Pi stesso.

Configurazione del software della fotocamera

Eseguire le seguenti istruzioni sulla riga di comando per scaricare e installare il kernel, il firmware della GPU e le applicazioni più recenti. Avrai bisogno di una connessione Internet per farlo funzionare correttamente.

sudo apt-get update

sudo apt-get upgrade

Ora devi abilitare il supporto della fotocamera utilizzando il

raspi-config

programma che avrai utilizzato durante la configurazione iniziale del tuo Raspberry Pi.

sudo raspi-config

Usa i tasti cursore per spostarti sull'opzione della telecamera e seleziona 'abilita'. All'uscita da raspi-config, verrà chiesto di riavviare. L'opzione di abilitazione assicurerà che al riavvio il firmware della GPU corretto verrà eseguito con il driver della fotocamera e l'ottimizzazione e che la suddivisione della memoria della GPU è sufficiente per consentire alla fotocamera di acquisire memoria sufficiente per funzionare correttamente.

Se non è abilitato, abilitalo e riavvia il tuo Pi per iniziare

Per verificare che il sistema sia installato e funzionante, prova il seguente comando:

raspistill -v -o test.jpg

Il display dovrebbe mostrare un'anteprima di cinque secondi dalla fotocamera e quindi scattare una foto, salvata nel file test.jpg, mentre vengono visualizzati vari messaggi informativi.

RASPIVID

Raspivid è lo strumento da riga di comando per acquisire video con il modulo fotocamera.

Con il modulo telecamera connesso e abilitato, registra un video utilizzando il seguente comando:

raspivid -o vid.h264

Ricordati di usare

-HF

e

-vf

per capovolgere l'immagine se necessario, come con

raspistillo

Questo salverà un file video di 5 secondi nel percorso indicato qui come vid.h264 (lunghezza di tempo predefinita).

Specifica la durata del video

Per specificare la lunghezza del video ripreso, passa il flag -t con un numero di millisecondi. Per esempio:

raspivid -o video.h264 -t 10000

Questo registrerà 10 secondi di video.

Formato video MP4

Il Pi acquisisce video come flusso video H264 non elaborato. Molti lettori multimediali si rifiuteranno di riprodurlo o lo riprodurranno a una velocità errata, a meno che non sia "avvolto" in un formato contenitore adatto come MP4. Il modo più semplice per ottenere un file MP4 dal

raspivido

comando sta usando MP4Box.

Installa MP4Box con questo comando:

sudo apt-get install -y gpac

Cattura il tuo video raw con raspivid e avvolgilo in un contenitore MP4 come questo:

# Cattura 30 secondi di video raw a 640x480 e 150kB/s bit rate in un file pivideo.h264:

raspivid -t 30000 -w 640 -h 480 -fps 25 -b 1200000 -p 0, 0, 640, 480 -o pivideo.h264 # Avvolgi il video non elaborato con un contenitore MP4 MP4Box -add pivideo.h264 pivideo.mp4 # Rimuovi il file raw di origine, lasciando il file pivideo.mp4 rimanente per riprodurre rm pivideo.h264

In alternativa, avvolgi MP4 attorno al tuo output raspivid esistente, in questo modo:

MP4Box -aggiungi video.h264 video.mp4

Passaggio 5: installazione e configurazione

Segui queste istruzioni solo se desideri compilare il software da zero. Questi passaggi seguenti sono necessari e consigliati come lo stesso processo di installazione sul tuo Raspberry pi.

Installazione delle dipendenze

Installazione di Sphinxbase/Pocketsphinx

Per prima cosa, devi installare Pocketsphinx. Se stai usando Debian Sid (unstable) o Jessie (testing), puoi semplicemente fare:

sudo apt-get update

sudo apt-get install pocketphinx

Inizia installando alcune dipendenze:

sudo apt-get install subversion autoconf libtool automake gfortran g++ --yes

Quindi, spostati nella tua directory home (o Jasper) per controllare e installare CMUCLMTK:

svn co

cd cmuclmtk/

./autogen.sh && make && sudo make install

cd..

Quindi, quando hai lasciato la directory CMUCLTK, scarica le seguenti librerie:

Installazione di Phonetisaurus, m2m-aligner e MITLM

Per utilizzare il motore Pocketsphinx STT, devi anche installare MIT Language Modeling Toolkit, m2m-aligner e Phonetisaurus (e quindi OpenFST).

Se non stai utilizzando Debian, esegui questi passaggi:

#-originale:

# wget

#-nuovo:

wget

wget

wget

wget

Decomprimi i download:

tar -xvf m2m-aligner-1.2.tar.gz

tar -xvf openfst-1.3.4.tar.gz

tar -xvf is2013-conversion.tgz

tar -xvf mitlm-0.4.1.tar.gz

Costruisci OpenFST:

cd openfst-1.3.4/

sudo./configure --enable-compact-fsts --enable-const-fsts --enable-far --enable-lookahead-fsts --enable-pdt

time sudo make install # torna dopo molto tempo

cd..

66m reali 38.394s

utente 64m42.620s

sistema 1m2.150s

df -h /

Dimensione del filesystem utilizzata Avail Use% Montato su /dev/root 14G 4.4G 8.3G 35% /

Costruisci M2M:

cd m2m-allineatore-1.2/

sudo make

cd..

Costruisci MITLMT:

cd mitlm-0.4.1/

sudo./configure

sudo make install

cd..

Costruisci fonetisauro:

cd is2013-conversion/phonetisaurus/src

sudo make

cd

Sposta alcuni dei file compilati:

sudo cp ~/allineatore-m2m-1.2/allineatore-m2m /usr/local/bin/allineatore-m2m

#-originale:

# sudo cp ~/phonetisaurus-0.7.8/phonetisaurus-g2p /usr/local/bin/phonetisaurus-g2p

#-deve essere:

sudo cp ~/is2013-conversion/bin/phonetisaurus-g2p /usr/local/bin/phonetisaurus-g2p

Prendere nota del percorso modificato per l'eseguibile.

Ottieni e costruisci il modello FST di Phonetisaurus

wget

tar -xvf g014b2b.tgz

cd g014b2b/

./compile-fst.sh

cd..

Infine, rinomina la seguente cartella per comodità:

mv ~/g014b2b ~/phonetisauro

Una volta completate le installazioni, riavvia il tuo Pi.

Seguendo le istruzioni di

Ho anche aggiunto il (nuovo) file `/etc/modprobe.d/alsa-base.conf` con questo contenuto:

# Imposta il valore dell'indice delle carte ma non riordina.

opzioni snd_usb_audio index=0

opzioni snd_bcm2835 index=1

# Fa il riordino.

opzioni snd slot=snd_usb_audio, snd_bcm2835

per garantire il corretto ordinamento dei dispositivi audio (non sono del tutto sicuro che sia davvero necessario, però)

Fine delle installazioni - alcuni debug dopo…

Provando ad avviare jasper:

pi@AVIV:~ $./jasper/jasper.py

Traceback (ultima chiamata più recente):

File "./jasper/jasper.py", riga 12, in from client import tts, stt, jasperpath, diagnostic File "/home/pi/jasper/client/tts.py", riga 41, in import diagnostic File "/ home/pi/jasper/client/diagnose.py", riga 9, in import pip.req File "/usr/lib/python2.7/dist-packages/pip/_init_.py", riga 74, in da pip. vcs import git, mercurial, subversion, bazaar # noqa File "/usr/lib/python2.7/dist-packages/pip/vcs/mercurial.py", riga 9, in from pip.download import path_to_url File "/usr/ lib/python2.7/dist-packages/pip/download.py", riga 25, in from request.compat import IncompleteRead ImportError: impossibile importare il nome IncompleteRead

Risolto con:

sudo easy_install -U pip

Prossimo problema:

pi@AVIV:~ $./jasper/jasper.py

*******************************************************

* JASPER - IL COMPUTER PARLANTE * * (c) 2015 Shubhro Saha, Charlie Marsh e Jan Holthuis * ****************************** ************************* ERRORE:root:Si è verificato un errore! Traceback (ultima chiamata più recente): File "./jasper/jasper.py", riga 143, in app = Jasper()File "./jasper/jasper.py", riga 88, in _init_ stt_engine_class = stt.get_engine_by_slug(stt_engine_slug) File "/home/pi/jasper/client/stt.py", riga 648, in get_engine_by_slug"dipendenze, ecc.)") % slug)

ValueError: il motore STT 'sphinx' non è disponibile (a causa di dipendenze mancanti, dipendenze mancanti, ecc.)

provare

sudo apt-get install -y python-pocketsphinx

Risolto il problema con il percorso di `../phonetisaurus/g014b2b.fst` in `/home/pi/phonetisaurus/g014b2b.fst` (in `.jasper/profile.yml`)

pi@AVIV:~ $./jasper/jasper.py

*******************************************************

* JASPER - IL COMPUTER PARLANTE * * (c) 2015 Shubhro Saha, Charlie Marsh e Jan Holthuis * ****************************** ************************** ERRORE:client.stt:hmm_dir '/usr/local/share/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k ' non esiste! Assicurati di aver impostato la hmm_dir corretta nel tuo profilo.

Correggi/attiva il percorso per questo anche in `profile.yml`:

hmm_dir: '/usr/share/pocketsphinx/model/hmm/en_US/hub4wsj_sc_8k' #opzionale

(notare l'assenza di "local" nel percorso)

Successo parziale --:

pi@AVIV:~ $./jasper/jasper.py

*******************************************************

* JASPER - IL COMPUTER PARLANTE * * (c) 2015 Shubhro Saha, Charlie Marsh e Jan Holthuis * ****************************** ************************** ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Schede PCM sconosciute.pcm.rear ALSA lib pcm.c: 2239:(snd_pcm_open_noupdate) Schede PCM sconosciute.pcm.center_lfe ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Schede PCM sconosciute.pcm.side ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Schede PCM sconosciute.pcm. pcm.c:2239:(snd_pcm_open_noupdate) Schede PCM sconosciute.pcm.hdmi ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Schede PCM sconosciute.pcm.modem ALSA lib pcm.c:2239:(snd_pcm_open_pcm schede.pcm) Sconosciute.modem ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Schede PCM sconosciute.pcm.phoneline ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Schede PCM sconosciute.pcm.phoneline ALSA lib pulse.c:243:(pulse_connect) PulseAudi: Impossibile connettersi: Connessione rifiutata ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Impossibile connettersi: Connessione rifiutata Impossibile connettersi per servire r socket err = Nessun file o directory di questo tipo Impossibile connettersi al server request channel jack il server non è in esecuzione o non può essere avviato Espressione 'paInvalidSampleRate' non riuscita in 'src/hostapi/alsa/pa_linux_alsa.c', riga: 2048 Espressione 'PaAlsaStreamComponent_InitialConfigure(&self ->capture, inParams, self->primeBuffers, hwParamsCapture, &realSr)' fallito in 'src/hostapi/alsa/pa_linux_alsa.c', riga: 2719 Espressione 'PaAlsaStream_Configure(stream, inputParameters, outputParameters, sampleRate, framesPerBuffer, &input, &hostBufferSizeMode)' non riuscito in 'src/hostapi/alsa/pa_linux_alsa.c', riga: 2843 Traceback (ultima chiamata più recente): File "./jasper/jasper.py", riga 148, nel file app.run() "./jasper/jasper.py", riga 118, in esecuzione conversazione.handleForever() File "/home/pi/jasper/client/conversation.py", riga 31, in soglia handleForever, trascritto = self.mic.passiveListen (self.persona) File "/home/pi/jasper/client/mic.py", riga 110, in passiveListen frames_per_buffer=CHUNK) File "/usr/lib/python2.7/dist-packages/pyaudio.py", riga 747, in open stream = Stream(self, *args, **kwargs) File "/usr/lib/python2.7/dist -packages/pyaudio.py", riga 442, in _init_ self._stream = pa.open(**arguments) IOError: [Errno frequenza di campionamento non valida] -9997

OK, fissare RATE e CHUNK in questo modo sembra andare oltre:

diff --git a/client/mic.py b/client/mic.py

indice 401cddb..dee49fe 100644

--- a/client/mic.py

+++ b/client/mic.py

@@ -93, 8 +93, 8 @@ microfono di classe:

"""

SOGLIA_MULTIPLIER = 1.8

- TASSO = 16000

- PEZZO = 1024

+ TASSO = 44100 # 16000

+ PEZZO = 4096 # 1024

# numero di secondi per consentire di stabilire la soglia

SOGLIA_TEMPO = 1

Passaggio 6: schermate di OUTPUT

Consigliato: