Innholdsfortegnelse:

Talegjenkjenning: 12 trinn
Talegjenkjenning: 12 trinn

Video: Talegjenkjenning: 12 trinn

Video: Talegjenkjenning: 12 trinn
Video: Виниловый сайдинг! Секреты монтажа и полезные хитрости, о которых мало кто знает! 2024, November
Anonim
Talegjenkjenning
Talegjenkjenning

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?

Hvordan sette opp miljøet?
Hvordan sette opp miljøet?
Hvordan sette opp miljøet?
Hvordan sette opp miljøet?
Hvordan sette opp miljøet?
Hvordan sette opp miljøet?
Hvordan sette opp miljøet?
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

Komponenter påkrevd
Komponenter påkrevd
Komponenter påkrevd
Komponenter påkrevd
Komponenter påkrevd
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

Kabling av komponentene
Kabling av komponentene
Kabling av komponentene
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

Å gi kode til Arduino Board
Å 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: