Innholdsfortegnelse:
- Trinn 1: Hvordan sette opp miljøet?
- Trinn 2: Hvorfor øker etterspørselen etter Arduino?
- Trinn 3: La oss starte !!!!
- Trinn 4: Komponenter påkrevd
- Trinn 5: Hvordan fungerer det egentlig?
- Trinn 6: Kabling av komponentene
- Trinn 7: Gi kode til Arduino Board
- Trinn 8: Program/skisse
- Trinn 9: Hva med kodene skrevet?
- Trinn 10: Sløyfefunksjon
- Trinn 11: Hvordan importerer BitVoicer Server Solution Objects?
- Trinn 12: Konklusjon
Video: Talegjenkjenning: 12 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Hei alle sammen………
Dette er min andre instruerbare som jeg legger ut
Så velkommen alle sammen …
I denne instruksen skal jeg lære deg hvordan du bygger opp en stemmegjenkjenning ved hjelp av et arduino -kort.
Så jeg tror du har en erfaring med arduino -boards før. Hvis ikke, er det ikke et stort stort problem her. Men jeg anbefaler deg å bli vant til det, da det er veldig interessant å leke med det og lage noen kule prosjekter ut av det i henhold til din kreativitet og kunnskap om det.
Så for folk som ikke har tidligere erfaring med å bruke arduino:
Arduino er en maskinvare med åpen kildekode som er produsert av et selskap som har et stort fellesskap av designere og produsenter. Det kan betraktes som en liten datamaskin som kan brukes til å kontrollere andre elektroniske kretser
Arduino er programmert i et miljø utviklet av seg selv som enkelt kan lastes ned fra deres nettsted
Trinn 1: Hvordan sette opp miljøet?
Bare søk på google "last ned arduino"
Klikk på "Arduino - Programvare"
Du vil kunne se "Last ned Arduino IDE"
Velg avhengig av operativsystemet
Last ned og installer den
Så du har installert programvaren, og du kan skrive koden for arduino, og ved hjelp av en kabel kan du koble arduino -kortet til datamaskinen og sette inn koden.
Trinn 2: Hvorfor øker etterspørselen etter Arduino?
Rimelig
Arduino-kort er rimelige i sammenligning med andre mikrokontroller-plattformer. Det vil koste omtrent 50 dollar.
Kryssplattform
Programvaren for Arduino fungerer på Windows, Macintosh OS og Linux operativsystemer. Hvis vi tenker på andre mikrokontrollersystemer, fungerer det bare i Windows eller med andre ord bare begrenset til vinduer.
Åpen kildekode og utvidbar programvare
Programvaren er åpen kildekode, slik at folk begynte å studere dypt om det og inkludere biblioteker (som inkluderer et sett med funksjoner for driften) av andre programmeringsspråk.
Enkelt og enkelt programmeringsmiljø
Det er lett å bruke Arduino IDE (programvare som vi allerede har diskutert om ….) for folk inkludert nybegynnere, siden Arduino selv tilbyr en stor mengde ressurser som er tilgjengelig på internett gratis. Så vær så snill å lære mer om det.
Åpen kildekode og utvidbar maskinvare
Planene til Arduino -kortene er publisert under en Creative Commons -lisens, slik at folk som har erfaring med kretsdesign kan lage sin egen versjon av modulen, de har også rett til å utvide teknologien og kan forbedre seg ved å legge til funksjoner i den.
Trinn 3: La oss starte !!!!
Så jeg har allerede fortalt at dette prosjektet hovedsakelig er fokusert på stemmegjenkjenning ved bruk av Arduino og å la det utføre noen oppgaver.
Snakker tydeligere …
Den fanger opp lydsignalene fra brukeren, som kan oppdages ved å blinke på LED-en etter at den er konvertert til syntetisert tale.
Trinn 4: Komponenter påkrevd
Hovedkomponentene som kreves for dette prosjektet er:
Arduino Due x 1
Spark Fun Electret Microphone Breakout x 1
Spark Fun Mono Audio Amp Breakout x 1
Høyttaler: 0,25 W, 8 ohm x 1
Brødbrett x 1
5 mm LED: rød x 3
Motstand 330 ohm x 3
Stikkledninger x 1
Loddejern x 1
BitVoicer -server
Det er en talegjenkjenning og synteseserver for taleautomatisering.
Trinn 5: Hvordan fungerer det egentlig?
1. Lydbølger blir funnet ut, og den fanger disse bølgene og forsterkes av Sparkfun Electret Breakout -brettet.
2. Det forsterkede signalet som oppnås fra prosessen ovenfor vil bli digitalisert og bufret/lagret i Arduino-kortet ved hjelp av analog-til-digital-omformeren (ADC) som er tilstede i det.
3. Lydprøvene blir levert til BitVoicer Server ved hjelp av den serielle Arduino -porten.
4. BitVoicer Server vil behandle lydstrømmen og deretter gjenkjenne talen den inneholder.
5. Den gjenkjente talen vil bli kartlagt til kommandoene som allerede er definert av seg selv før, deretter vil den bli sendt tilbake til Arduino. Hvis en av kommandoene består i å syntetisere tale, vil BitVoicer Server forberede lydstrømmen og sende den til Arduino.
6. Arduinoen vil identifisere kommandoene som følger med og utføre den riktige handlingen. Hvis en lydstrøm mottas, vil den stå i kø i BVS -høyttalerklassen og spilles av med DUE DAC og DMA.
7. SparkFun Mono Audio Amplifier vil forsterke DAC -signalet slik at den kan drive en 8 Ohm høyttaler og kan høres gjennom den.
Trinn 6: Kabling av komponentene
Det aller første trinnet er å koble forskjellige komponenter i brødbrettet og også med arduino -brettet som vist på bildet
Husk at arduino -kortet som brukes her er DUE, det er forskjellige andre modeller som har blitt produsert av Arduino som hver fungerer på forskjellige spenningsnivåer
De fleste Arduino -kortene fungerer på 5 V, men DUE går på 3,3 V
DUE bruker allerede en 3,3 V analog referanse, slik at du ikke trenger en jumper til AREF -pinnen
Beklager, jeg glemte å si at en AREF -pin er en "ANALOG REFERENCE PIN" som er tilstede i et arduino -bord som vist i neste figur (Det er en arduino UNO, men den ligner på det samme stedet i tilfelle DUE)
AREF-pinnen på DUE er koblet til mikrokontrolleren gjennom en motstandsbro
For å bruke AREF-pinnen må motstand R1 være loddet fra PCB [Printed Circuit Board]
Trinn 7: Gi kode til Arduino Board
Så vi må laste opp koden til Arduino Board, slik at den kan fungere avhengig av instruksjonene i koden.
Det er veldig enkelt å gjøre dette. Jeg vil forklare hver enkelt av dem i detalj, om hva de gjør og hvordan de fungerer.
Hvordan installere et bibliotek?
Så før det må vi vite hvordan vi installerer BitVoicer Server -biblioteker i Arduino IDE,. Som på arduino -programvaren.
Så for det, åpne Arduino IDE
Klikk på "Sketch" i det øverste panelet
Klikk deretter på "Inkluder bibliotek"
Klikk deretter på "Administrer bibliotek"
Deretter åpner biblioteksjefen, og vi kan se en liste over biblioteker som er klare for installasjon eller de som allerede er installert
Søk etter biblioteket du vil installere, og velg deretter versjonsnummeret
Her installerer vi BitVoicer Server -biblioteker, som er nødvendig for dette prosjektet
Hvordan importere et.zip -bibliotek?
Biblioteker kan også distribueres som en ZIP -fil eller mappe
Navnet på mappen er navnet på biblioteket
Inne i mappen vil det være en.cpp -fil, en.h -fil og ofte en keywords.txt -fil, eksempler -mappe og andre filer som biblioteket krever
Fra versjon 1.0.5 av Arduino IDE kan du installere tredjepartsbiblioteker inne i den
Ikke pakk ut det nedlastede biblioteket, la det være som det er
Gå til skisse> Inkluder bibliotek> Legg til.zip -bibliotek
Velg plasseringen av.zip -filen og åpne den.
Gå tilbake til Skisse> Importer bibliotek -menyen.
Hvis det er riktig importert, skal biblioteket sees nederst på rullegardinmenyen når du navigerer.
Trinn 8: Program/skisse
Dette er programmet som må lastes opp i Arduino.
Det kan gjøres ganske enkelt ved å koble Arduino Board til datamaskinen og laste det opp til kortet.
Trinn 9: Hva med kodene skrevet?
La oss nå se på hva hver av funksjonene skrevet i koden faktisk gjør ………….
Bibliotekreferanser og variabel erklæring
Før vi snakker om dette må vi kjenne til og forstå noen grunnleggende terminologier. Disse inkluderer:
-
BVSP
Det er et bibliotek som gir oss nesten alle ressurser som kreves for å utveksle informasjon med BitVoicer Server
Det er en protokoll som er kjent som BitVoicer Server Protocol som er implementert gjennom klassen BVSP. Dette er nødvendig for å samhandle med serveren
-
BVSMic
Det er et bibliotek som implementerer alle tingene som kreves for å ta opp lyden ved hjelp av Analog-to-Digital Converter (ADC) på Arduino
Denne lyden lagres i den interne bufferen i klassen, og de kan hentes og deretter sendes til talegjenkjenningsmotorene som er tilgjengelig på BitVoicer Server
-
BVS -høyttaler
Det er et bibliotek som inneholder alle de essensielle ressursene som kreves for å reprodusere lydstrømmer som sendes ut fra BitVoicer Server
For det må Arduino-kortet ha en innebygd Digital-to-Analog Converter (DAC)
Arduino DUE er det eneste Arduino -kortet som har en integrert DAC
BVSP, BVSMic, BVSSpeaker og DAC biblioteker, referansen til disse er skrevet på de fire første linjene som utgjør stirring av programmet
Når du installerer BitVoicer Server kan du finne BitSophia som inneholder alle disse fire bibliotekene
Når brukeren legger til en referanse til BVSSpeaker -biblioteket, vil DAC -biblioteket som tidligere er nevnt automatisk bli påkalt
BVSP -klassen brukes til å kommunisere med BitVoicer Server
BVSMic -klassen brukes til å fange og lagre lyd
BVSHøyttalerklasse brukes til å gjengi lyd ved hjelp av Arduino DUE DAC
2. oppsettfunksjon
Oppsettsfunksjonen brukes til å utføre visse handlinger som:
For å angi pin -moduser og deres opprinnelige tilstander
For å initialisere seriell kommunikasjon
For å initialisere BVSP -klassen
For å initialisere BVSMic -klassen
For å initialisere BVSSpeaker -klassen
Den angir også "hendelsesbehandlere" (funksjonspekere) for rammen mottatt, modusendret og strøm mottatt hendelser i BVSP -klassen
Trinn 10: Sløyfefunksjon
Den utfører fem store operasjoner:
1. keepAlive () -funksjon
Denne funksjonen er å be serveren om statusinformasjon.
2. motta () -funksjonen
Denne funksjonen er å kontrollere om serveren har sendt ut data eller ikke. Hvis serveren sendte data, vil den behandle den.
3. isSREAvailable (), startRecording (), stopRecording () og sendStream () funksjoner
Disse funksjonene brukes til å kontrollere de forskjellige innstillingene for innspilling av lyden, og når den oppnår lyden, vil den sende denne lyden til BitVoicer Server.
4. play () -funksjon
Denne funksjonen brukes til å spille av lyden som er i kø i BVSSpeaker -klassen.
5. playNextLEDNote ()
Denne funksjonen brukes til å kontrollere hvordan LED -en skal blinke.
6. BVSP_frame mottatt funksjon
Denne funksjonen kalles hver gang mottaksfunksjonen () begynner å identifisere at en fullstendig ramme er mottatt. Her kjører vi kommandoene som er oppnådd fra BitVoicer Server. Kommandoene som kontrollerer blinkingen av lysdioder er på 2 Bytes. I den første byten angir pin og andre byte indikerer pin -verdi. Her bruker vi analogWrite () -funksjonen for å sette riktig verdi til pinnen. På den tiden må vi også kontrollere om kommandoen playLEDNotes, som er av Byte -type, er mottatt. Hvis den er mottatt, setter jeg playLEDNotes til true, og den vil overvåke og markere gjeldende tid. Denne tiden vil bli brukt av playNextLEDNote -funksjonen til å synkronisere lysdiodene med sangen.
7. BVSP_mode Endret funksjon
Denne funksjonen kalles hver gang mottaksfunksjonen () identifiserer en endring i modus i utgående retning (Server Arduino). BitVoicer Server kan sende innrammet data eller lyd til Arduino. Før kommunikasjonen går fra en modus til en annen, sender BitVoicer Server et signal. BVSP -klassen identifiserer dette signalet og henter eller flagger modusen Endret hendelse. I BVSP_modeChanged -funksjonen, hvis brukeren oppdager at kommunikasjonen går fra strømningsmodus til innrammet modus, vil han/hun vite at lyden er avsluttet, slik at brukeren kan fortelle BVSSpeaker -klassen om å slutte å spille av lyd.
8. BVSP_streamMottatt funksjon
Denne funksjonen kalles hver gang mottaksfunksjonen () identifiserer at lydprøver er mottatt. Det bare henter lyden og setter dem i kø i BVSSpeaker -klassen slik at play () -funksjonen kan gjengi dem.
9. playNextLEDNote -funksjon
Denne funksjonen kjøres bare hvis funksjonen BVSP_frameReceived identifiserer playLEDNotes -kommandoen. Den styrer og synkroniserer lysdiodene med lyden som sendes fra BitVoicer Server. For å synkronisere lysdiodene med lyden og vite riktig timing, kan du bruke en gratis programvare Sonic Visualizer. Den lar oss se lydbølgene slik at personen kan se når en pianotast ble trykket.
Trinn 11: Hvordan importerer BitVoicer Server Solution Objects?
Vi har nå satt opp BitVoicer Server for å jobbe med Arduino.
Det er fire hovedløsningsobjekter for en BitVoicer -server: Steder, Enheter, BinaryData og Stemmeskjemaer.
La oss se nærmere på disse:
Steder
Den representerer den fysiske plasseringen der enheten installeres.
Vi kan opprette et sted som heter Hjem.
Enheter
De regnes som klientene til BitVoicer Server.
Som å lage et sted kan vi lage en blandet enhet, for enkelhets skyld la oss kalle den ArduinoDUE.
Noen ganger kan noen bufferoverløp skje, så for å eliminere det måtte jeg begrense datahastigheten i kommunikasjonsinnstillingene til 8000 prøver per sekund.
BinaryData er en kommando som BitVoicer Server kan sende til klientenheter. De er faktisk byte -matriser du kan koble til kommandoer.
Når BitVoicer Server gjenkjenner tale relatert til den kommandoen, sender den byte -matrisen til målenheten.
Så av den grunn har jeg opprettet ett BinaryData -objekt til hver pin -verdi og kalt dem ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff og så videre.
Så jeg måtte lage 18 BinaryData -objekter, så jeg foreslår at du laster ned og importerer objektene fra VoiceSchema.sof -filen som er gitt nedenfor.
Så hva er et stemmeskema?
Stemmeskjemaer er der alt kommer sammen. hovedrollen til dem er å definere hvordan setningene skal gjenkjennes og hva alle kommandoer må kjøres.
For hver setning kan du definere så mange kommandoer du trenger og rekkefølgen de skal utføres på.
Du kan også definere forsinkelser mellom hver av kommandoene.
BitVoicer Server støtter bare 8-biters mono PCM-lyd (8000 prøver per sekund), så det vil være behov for å konvertere lydfilen til dette formatet, det er så mange online konverteringsavgifter til stede i dag, og jeg anbefaler https://audio.online -convert.com/convert-to-wav.
Du kan importere (importere løsningsobjekter) alle løsningsobjekter jeg brukte i dette prosjektet fra filene nedenfor.
En av dem inneholder DUE -enheten og den andre inneholder stemmeskjemaet og dets kommandoer.
Trinn 12: Konklusjon
Der går du !!!
Du har laget et fantastisk prosjekt, og du kan snakke med det
Så begynn å snakke ………………
Du kan blinke med lysdiodene, og samtidig kan du si det til å synge en sang hvis den trenger det, koden er allerede gitt
Så jeg har fullført min andre instruerbare !!!!!!!!
Ja ……
Jeg tror alle forsto det …
Hvis noen har spørsmål kan du gjerne spørre meg
Jeg kommer med en utmerket instruerbar neste gang …
Ha det…
Ser deg snart……………
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Talegjenkjenning med Arduino (Bluetooth + LCD + Android): 6 trinn
Talegjenkjenning med Arduino (Bluetooth + LCD + Android): I dette prosjektet skal vi gjøre talegjenkjenning med Arduino, Bluetooth-modul (HC-05) og LCD. la oss bygge din egen talegjenkjenningsenhet
Talegjenkjenning ved hjelp av Google Speech API og Python: 4 trinn
Talegjenkjenning ved hjelp av Google Speech API og Python: Talegenkjenning Talegjenkjenning er en del av Natural Language Processing som er et underfelt til kunstig intelligens. For å si det enkelt, er talegjenkjenning evnen til en dataprogramvare til å identifisere ord og uttrykk i talespråk
Legge til en mikrofon i Omnitech GPS -system for talegjenkjenning: 4 trinn
Legge til en mikrofon i Omnitech GPS -system for stemmegjenkjenning: Mens jeg slet med enheten min, fant jeg en enkel og rask måte å legge til en mikrofon til denne døve enheten. Med en mikrofon vil du kunne dra nytte av stemmegjenkjenning for navigering. Det vil innebære en liten mengde lodding, men nesten hvor som helst