Sommario:
- Passaggio 1: come impostare l'ambiente?
- Passaggio 2: perché la domanda di Arduino sta aumentando?
- Passaggio 3: iniziamo!!!!
- Passaggio 4: componenti necessari
- Passaggio 5: come funziona effettivamente?
- Passaggio 6: cablaggio dei componenti
- Passaggio 7: fornire codice alla scheda Arduino
- Passaggio 8: programma/schizzo
- Passaggio 9: che dire dei codici scritti?
- Passaggio 10: funzione loop
- Passaggio 11: come importare gli oggetti della soluzione server BitVoicer?
- Passaggio 12: Conclusione
Video: Riconoscitore vocale: 12 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Ciao a tutti………
Questa è la mia seconda istruzione che sto postando
Quindi benvenuti a tutti…
In questo Instructable ti insegnerò come costruire un riconoscimento vocale usando una scheda arduino.
Quindi penso che tu abbia già avuto esperienza con le schede arduino. In caso contrario, non è affatto un grosso problema qui. Ma ti consiglio di abituarti perché è molto interessante giocarci e creare alcuni progetti interessanti da esso in base alla tua creatività e conoscenza su di esso.
Quindi per le persone che non hanno una precedente esperienza con arduino:
Arduino è un hardware per computer open source prodotto da un'azienda che ha una vasta comunità di designer e produttori. Può essere considerato come un piccolo computer che può essere utilizzato per controllare altri circuiti elettronici
Arduino è programmato in un ambiente sviluppato da loro stessi che può essere facilmente scaricato dal loro sito web
Passaggio 1: come impostare l'ambiente?
Basta cercare in google "scarica arduino"
Fare clic su "Arduino - Software"
Sarai in grado di vedere "Scarica l'IDE Arduino"
Scegli in base al tuo sistema operativo
Scaricalo e installalo
Quindi hai installato con successo il software e puoi scrivere il tuo codice per arduino e con l'aiuto di un cavo puoi collegare la scheda arduino al computer e puoi inserire il codice.
Passaggio 2: perché la domanda di Arduino sta aumentando?
Economico
Le schede Arduino sono economiche rispetto ad altre piattaforme di microcontrollori. Costerà solo circa $ 50.
Multipiattaforma
Il software per Arduino funziona su sistemi operativi Windows, Macintosh OS e Linux. Se pensiamo ad altri sistemi a microcontrollore funzionerà solo in Windows o in altre parole limitato solo a Windows.
Software open source ed estensibile
Il software è open source, così le persone hanno iniziato a studiarlo a fondo e ad includere librerie (che include un insieme di funzioni per il suo funzionamento) di altri linguaggi di programmazione.
Ambiente di programmazione semplice e facile
È facile usare l'IDE Arduino (software di cui abbiamo già discusso….) per le persone compresi i principianti, poiché una grande quantità di risorse è fornita dallo stesso Arduino che è disponibile su Internet gratuitamente. Quindi sentiti libero di saperne di più a proposito.
Hardware open source ed estensibile
I piani delle schede Arduino sono pubblicati con una licenza Creative Commons, quindi le persone che hanno esperienza nella progettazione di circuiti possono realizzare la propria versione del modulo, hanno anche il diritto di estendere la tecnologia e possono migliorare aggiungendo funzionalità.
Passaggio 3: iniziamo!!!!
Quindi ho già detto che questo progetto è principalmente incentrato sul riconoscimento vocale utilizzando Arduino e per consentirgli di svolgere alcune attività.
Parlando più chiaramente ……
Raccoglie i segnali sonori forniti dall'utente, che possono essere rilevati dal lampeggio del LED dopo che è stato convertito in parlato sintetizzato.
Passaggio 4: componenti necessari
I componenti principali richiesti per questo progetto sono:
Arduino Due x 1
Spark Fun Electret Microfono Breakout x 1
Spark Fun Mono Audio Amp Breakout x 1
Altoparlante: 0,25 W, 8 ohm x 1
Tagliere x 1
LED da 5 mm: rosso x 3
Resistenza 330 ohm x 3
Ponticelli x 1
Saldatore x 1
Server BitVoicer
È un server di riconoscimento vocale e sintesi per l'automazione vocale.
Passaggio 5: come funziona effettivamente?
1. Le onde audio vengono scoperte, quindi cattura queste onde e vengono amplificate dalla scheda Sparkfun Electret Breakout.
2. Il segnale amplificato ottenuto dal processo di cui sopra sarà digitalizzato e bufferizzato/memorizzato nella scheda Arduino utilizzando il suo convertitore analogico-digitale (ADC) presente in essa.
3. I campioni audio verranno forniti a BitVoicer Server utilizzando la porta seriale Arduino presente.
4. BitVoicer Server elaborerà il flusso audio e quindi riconoscerà il discorso che contiene.
5. Il parlato riconosciuto verrà mappato ai comandi che è già stato definito da se stesso in precedenza, quindi verrà rimandato all'Arduino. Se uno dei comandi consiste nel sintetizzare il parlato, BitVoicer Server preparerà il flusso audio e lo invierà ad Arduino.
6. Arduino identificherà i comandi forniti ed eseguirà determinate azioni appropriate. Se viene ricevuto un flusso audio, verrà messo in coda nella classe BVS Speaker e riprodotto utilizzando DUE DAC e DMA.
7. L'amplificatore audio mono SparkFun amplificherà il segnale DAC in modo che possa pilotare un altoparlante da 8 Ohm e possa essere ascoltato attraverso di esso.
Passaggio 6: cablaggio dei componenti
Il primo passo è cablare diversi componenti nella breadboard e anche con la scheda arduino come mostrato nell'immagine
Ricorda che la scheda arduino utilizzata qui è DUE, ci sono diversi altri modelli che sono stati prodotti da Arduino, ognuno dei quali funziona su diversi livelli di tensione
La maggior parte delle schede Arduino funziona a 5 V, ma il DUE funziona a 3,3 V
Il DUE utilizza già un riferimento analogico a 3,3 V, quindi non è necessario un ponticello sul pin AREF
Oh scusa, ho dimenticato di dire che un pin AREF è un "PIN DI RIFERIMENTO ANALOGICO" che è presente in una scheda arduino come mostrato nella figura successiva (è un arduino UNO ma è simile nel sito simile nel caso di DUE)
Il pin AREF sul DUE è collegato al microcontrollore tramite un ponte di resistenze
Per utilizzare il pin AREF, il resistore R1 deve essere dissaldato dal PCB [Printed Circuit Board]
Passaggio 7: fornire codice alla scheda Arduino
Quindi dobbiamo caricare il codice sulla scheda Arduino, in modo che possa funzionare in base alle istruzioni fornite nel codice.
È molto facile farlo. Spiegherò ognuno di loro in dettaglio, su cosa fanno e come funzionano.
Come installare una libreria?
Quindi prima dobbiamo sapere come installare le librerie BitVoicer Server nell'IDE Arduino,.che nel software arduino.
Quindi per questo apri l'IDE Arduino
Nel pannello superiore clicca su "Schizzo"
Quindi fare clic su "Includi libreria"
Quindi fai clic su "Gestisci libreria"
Quindi si aprirà il gestore della libreria e potremo vedere un elenco di librerie pronte per l'installazione o quelle che sono già state installate
Cerca la libreria da installare e quindi seleziona il numero di versione
Qui stiamo installando le librerie BitVoicer Server, necessarie per questo progetto
Come importare una libreria.zip?
Le biblioteche possono anche essere distribuite come file o cartelle ZIP
Il nome della cartella è il nome della libreria
All'interno della cartella ci sarà un file.cpp, un file.h e spesso un file keywords.txt, una cartella degli esempi e altri file richiesti dalla libreria
Dalla versione 1.0.5 di Arduino IDE, puoi installare librerie di terze parti al suo interno
Non decomprimere la libreria scaricata, lasciala così com'è
Per questo vai a schizzo> Includi libreria> Aggiungi libreria.zip
Seleziona la posizione del file.zip e aprilo.
Torna al menu Schizzo > Importa libreria.
Se è stata importata correttamente, quella libreria deve essere visualizzata nella parte inferiore del menu a discesa durante la navigazione.
Passaggio 8: programma/schizzo
Questo è il programma che deve essere caricato in Arduino.
Può essere fatto semplicemente collegando la scheda Arduino al computer e caricandola sulla scheda.
Passaggio 9: che dire dei codici scritti?
Ora diamo un'occhiata a cosa fanno effettivamente ciascuna delle funzioni scritte nel codice ………..
Riferimenti alla libreria e dichiarazione di variabili
Prima di parlare di questo dobbiamo conoscere e comprendere alcune terminologie di base. Queste includono:
-
BVSP
È una libreria che ci fornisce quasi tutte le risorse necessarie per scambiare informazioni con il server BitVoicer
Esiste un protocollo noto come BitVoicer Server Protocol che viene implementato attraverso la classe di BVSP. Questo è necessario per interagire con il server
-
BVSMic
È una libreria che implementa tutte le cose necessarie per registrare l'audio utilizzando il convertitore analogico-digitale (ADC) di Arduino
Questo audio viene memorizzato nel buffer interno della classe e può essere recuperato e quindi inviato ai motori di riconoscimento vocale disponibili su BitVoicer Server
-
Altoparlante BVSS
È una libreria che contiene tutte le risorse essenziali necessarie per riprodurre i flussi audio inviati dal server BitVoicer
Per questo la scheda Arduino deve avere un convertitore digitale-analogico (DAC) integrato
Arduino DUE è l'unica scheda Arduino che ha un DAC integrato
Librerie BVSP, BVSMic, BVSSpeaker e DAC, il riferimento a queste è scritto sulle prime quattro righe che compongono l'avvio del programma
Quando installi BitVoicer Server puoi trovare BitSophia che fornisce tutte queste quattro librerie
Quando l'utente aggiunge un riferimento alla libreria BVSSpeaker, la libreria DAC menzionata in precedenza verrà richiamata automaticamente
La classe BVSP viene utilizzata per comunicare con BitVoicer Server
La classe BVSMic viene utilizzata per acquisire e memorizzare l'audio
La classe BVSSpeaker viene utilizzata per riprodurre l'audio utilizzando l'Arduino DUE DAC
2. funzione di configurazione
La funzione di configurazione viene utilizzata per eseguire determinate azioni come:
Per impostare le modalità pin e i loro stati iniziali
Per inizializzare la comunicazione seriale
Per inizializzare la classe BVSP
Per inizializzare la classe BVSMic
Per inizializzare la classe BVSSpeaker
Imposta anche "gestori di eventi" (puntatori a funzione) per gli eventi frameReceived, modeChanged e streamReceived della classe BVSP
Passaggio 10: funzione loop
Svolge cinque operazioni principali:
1. funzione keepAlive()
Questa funzione serve per richiedere al server le informazioni sullo stato.
2. funzione ricevi()
Questa funzione serve a verificare se il server ha inviato o meno dei dati. Se il server ha inviato dei dati, li elaborerà.
3. funzioni isSREAvailable(), startRecording(), stopRecording() e sendStream()
Queste funzioni vengono utilizzate per controllare le varie impostazioni sulla registrazione dell'audio e dopo che raggiunge l'audio invierà questo audio al server BitVoicer.
4. funzione play()
Questa funzione viene utilizzata per riprodurre l'audio che è stato messo in coda nella classe BVSSpeaker.
5. playNextLEDNota()
Questa funzione viene utilizzata per controllare come deve lampeggiare il Led.
6. Funzione BVSP_frameReceived
Questa funzione viene chiamata ogni volta che la funzione receiver() inizia a identificare che è stato ricevuto un frame completo. Qui stiamo eseguendo i comandi ottenuti da BitVoicer Server. I comandi che controllano il lampeggio dei LED sono di 2 Byte. In quel primo byte indica il pin e il secondo byte indica il valore del pin. Qui stiamo usando la funzione analogWrite() per impostare il valore appropriato al pin. A quel punto dobbiamo anche verificare se è stato ricevuto il comando playLEDNotes, che è di tipo Byte. Se è stato ricevuto, ho impostato playLEDNotes su true e controllerà e segnerà l'ora corrente. Questo tempo sarà utilizzato dalla funzione playNextLEDNote per sincronizzare i LED con la canzone.
7. BVSP_modeFunzione modificata
Questa funzione viene chiamata ogni volta che la funzione receiver() identifica un cambio di modalità nella direzione in uscita (Server Arduino). BitVoicer Server può inviare dati o audio con frame ad Arduino. Prima che la comunicazione passi da una modalità all'altra, BitVoicer Server invia un segnale. La classe BVSP identifica questo segnale e genera o contrassegna l'evento modeChanged. Nella funzione BVSP_modeChanged, se l'utente rileva che la comunicazione sta passando dalla modalità stream alla modalità frame, saprà che l'audio è terminato in modo che l'utente possa dire alla classe BVSSpeaker di interrompere la riproduzione dell'audio.
8. Funzione BVSP_streamReceived
Questa funzione viene chiamata ogni volta che la funzione receiver() identifica che sono stati ricevuti campioni audio. Recupera semplicemente l'audio e lo mette in coda nella classe BVSSpeaker in modo che la funzione play() possa riprodurli.
9. riproduci la funzione NextLEDNote
Questa funzione viene eseguita solo se la funzione BVSP_frameReceived identifica il comando playLEDNotes. Controlla e sincronizza i LED con l'audio inviato da BitVoicer Server. Per sincronizzare i LED con l'audio e conoscere la corretta temporizzazione, è possibile utilizzare un software gratuito Sonic Visualizer. Ci consente di guardare le onde audio in modo che la persona possa dire quando è stato premuto un tasto del pianoforte.
Passaggio 11: come importare gli oggetti della soluzione server BitVoicer?
Ora abbiamo configurato BitVoicer Server per funzionare con Arduino.
Esistono quattro oggetti principali della soluzione per un server BitVoicer: Posizioni, Dispositivi, Dati binari e Schemi vocali.
Vediamole in dettaglio:
Sedi
Rappresenta la posizione fisica in cui viene installato il dispositivo.
Possiamo creare una posizione chiamata Home.
Dispositivi
Sono considerati come i client di BitVoicer Server.
Come creare una posizione, possiamo creare un dispositivo misto, per semplicità chiamiamolo come ArduinoDUE.
A volte possono verificarsi dei buffer overflow, quindi per eliminarli ho dovuto limitare il Data Rate nelle impostazioni di comunicazione a 8000 campioni al secondo.
BinaryData è un tipo di comando che BitVoicer Server può inviare ai dispositivi client. In realtà sono array di byte che puoi collegare ai comandi.
Quando BitVoicer Server riconosce la voce relativa a quel comando, invia l'array di byte al dispositivo di destinazione.
Quindi per questo motivo ho creato un oggetto BinaryData per ogni valore pin e li ho chiamati ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff e così via.
Quindi ho dovuto creare 18 oggetti BinaryData, quindi suggerisco di scaricare e importare gli oggetti dal file VoiceSchema.sof che viene fornito di seguito.
Quindi cos'è uno schema vocale?
Gli schemi vocali sono il punto in cui tutto si riunisce. il loro ruolo principale è definire come devono essere riconosciute le frasi e quali comandi devono essere eseguiti.
Per ogni frase, puoi definire tutti i comandi di cui hai bisogno e l'ordine in cui verranno eseguiti.
È inoltre possibile definire ritardi tra ciascuno dei comandi forniti.
BitVoicer Server supporta solo audio PCM mono a 8 bit (8000 campioni al secondo), quindi sarà necessario convertire il file audio in questo formato, ci sono così tanti pedaggi di conversione online presenti oggi e consiglio https://audio.online -convert.com/convert-to-wav.
Puoi importare (Importazione di oggetti soluzione) tutti gli oggetti soluzione che ho usato in questo progetto dai file seguenti.
Uno di essi contiene il Dispositivo DUE e l'altro contiene lo Schema Vocale ei suoi Comandi.
Passaggio 12: Conclusione
Ecco qua!!!
Hai realizzato un progetto fantastico e puoi parlarci
Allora inizia a parlare………………
Puoi far lampeggiare i LED e allo stesso tempo puoi dirlo a canta una canzone se necessario, il suo codice è già stato fornito
Così ho completato il mio Secondo Instructable !!!!!!!!
Sì……
Penso che tutti lo abbiano capito…
Se qualcuno ha domande, non esitate a chiedermelo
La prossima volta inventerò un eccellente Instructable…
Ciao…
A presto……………
Consigliato:
Vocal GOBO - Scudo smorzatore del suono - Cabina vocale - Box vocale - Filtro di riflessione - Scudo vocale: 11 passaggi
Vocal GOBO - Sound Dampener Shield - Vocal Booth - Vocal Box - Reflexion Filter - Vocalshield: ho iniziato a registrare più voci nel mio home studio e volevo ottenere un suono migliore e dopo alcune ricerche ho scoperto che cosa è un "GOBO" era. Avevo visto queste cose che smorzano il suono, ma non mi rendevo davvero conto di cosa facessero. Ora faccio. ho trovato un y
Riconoscitore di movimento della mano: 5 passaggi
Riconoscitore di movimento della mano: panoramicaIn questo progetto, realizzeremo un guanto in grado di riconoscere alcuni movimenti di base della mano, utilizzando un MicroBit e alcuni sensori. Utilizzeremo le funzionalità Bluetooth su MicroBit, insieme a un'app Android e a un server Web per addestrare un
Crea il sistema di avviso di notifica vocale / vocale: 4 passaggi
Crea il sistema di avviso vocale / di notifica vocale: in questo progetto abbiamo realizzato un sistema di avviso e notifica vocale / vocale. In questo progetto possono essere utilizzati almeno due sensori
Riconoscitore di cifre con Python: 3 passaggi
Digit Recognizer con Python: un tema molto popolare attualmente è il denominato "Computer Vision" che consiste in un'area di creazione di software che può essere riconosciuto come protettore all'interno delle immagini. Es posible imaginarse que esta habilidad es muy útil para una computadora y permite expandir
Riconoscitore multilingue con AIY: 4 passaggi
Riconoscitore multilingue con AIY: nelle stazioni spaziali esterne. ci sono molti astronauti laggiù. n~ gli astronauti provengono da molti pianeti (paesi). quindi, thereforAI dovrebbe funzionare in molte lingue laggiù