Indholdsfortegnelse:

Talegenkendelse: 12 trin
Talegenkendelse: 12 trin

Video: Talegenkendelse: 12 trin

Video: Talegenkendelse: 12 trin
Video: ВСЯ НОЧЬ С ПОЛТЕРГЕЙСТОМ В ЖИЛОМ ДОМЕ, я заснял жуткую активность. 2024, Juli
Anonim
Talegenkendelse
Talegenkendelse

Hej allesammen………

Dette er min anden instruerbare, som jeg sender

Så byde alle velkommen …

I denne Instructable vil jeg lære dig, hvordan du opbygger en stemmegenkender ved hjælp af et arduino -kort.

Så jeg tror, du har en erfaring med arduino boards før. Hvis ikke, er det slet ikke et stort stort problem her. Men jeg anbefaler dig at vænne dig til det, da det er meget interessant at lege med det og lave nogle fede projekter ud af det i henhold til din kreativitet og viden om det.

Så for de mennesker, der ikke har en tidligere erfaring med at bruge arduino:

Arduino er en open source computerhardware, der er fremstillet af et firma, der har et stort fællesskab af designere og producenter. Det kan betragtes som en lille computer, der kan bruges til at styre andre elektroniske kredsløb

Arduino er programmeret i et miljø udviklet af dem selv, som let kan downloades fra deres websted

Trin 1: Hvordan opsættes miljøet?

Hvordan opsættes miljøet?
Hvordan opsættes miljøet?
Hvordan opsættes miljøet?
Hvordan opsættes miljøet?
Hvordan opsættes miljøet?
Hvordan opsættes miljøet?
Hvordan opsættes miljøet?
Hvordan opsættes miljøet?

Bare søg i google "download arduino"

Klik på "Arduino - Software"

Du vil kunne se "Download Arduino IDE"

Vælg afhængigt af dit operativsystem

Download og installer det

Så du har installeret softwaren, og du kan skrive din kode til arduino, og ved hjælp af et kabel kan du slutte arduino -kortet til computeren og kan indsætte koden.

Trin 2: Hvorfor stiger efterspørgslen efter Arduino?

Billig

Arduino-plader er billige i sammenligning med andre mikro-controller-platforme. Det vil koste lige omkring $ 50.

På tværs af platforme

Softwaren til Arduino fungerer på Windows, Macintosh OS og Linux operativsystemer. Hvis vi tænker på andre mikro-controllersystemer, fungerer det kun i Windows eller med andre ord kun begrænset til vinduer.

Open source og udvidelig software

Softwaren er open source, så folk begyndte at studere dybt om det og inkludere biblioteker (som indeholder et sæt funktioner til dets drift) af andre programmeringssprog.

Enkelt og let programmeringsmiljø

Det er let at bruge Arduino IDE (software, som vi allerede har diskuteret om …. om det.

Open source og udvidelig hardware

Planerne for Arduino -tavlerne udgives under en Creative Commons -licens, så folk, der har erfaring med kredsløbsdesign, kan lave deres egen version af modulet, de har også ret til at udvide teknologien og kan forbedre sig ved at tilføje funktioner til den.

Trin 3: Lad os starte !!!!

Så jeg har allerede fortalt, at dette projekt hovedsageligt er fokuseret på stemmegenkendelse ved hjælp af Arduino og at tillade det at udføre nogle opgaver.

Taler mere tydeligt ……

Det opfanger lydsignalerne fra brugeren, som kan detekteres ved at blinke på LED'en, efter at det er konverteret til syntetiseret tale.

Trin 4: Påkrævede komponenter

Komponenter påkrævet
Komponenter påkrævet
Komponenter påkrævet
Komponenter påkrævet
Komponenter påkrævet
Komponenter påkrævet

De nødvendige komponenter til dette projekt er:

Arduino Due x 1

Spark Fun Electret Microphone Breakout x 1

Spark Fun Mono Audio Amp Breakout x 1

Højttaler: 0,25 W, 8 ohm x 1

Brødbræt x 1

5 mm LED: Rød x 3

Modstand 330 ohm x 3

Jumper ledninger x 1

Loddejern x 1

BitVoicer -server

Det er en talegenkendelse og synteseserver til taleautomatisering.

Trin 5: Hvordan fungerer det egentlig?

1. Lydbølger bliver fundet ud, så det fanger disse bølger og forstærkes af Sparkfun Electret Breakout board.

2. Det forstærkede signal opnået fra ovenstående proces vil blive digitaliseret og bufret/lagret i Arduino-kortet ved hjælp af dets analog-til-digital-konverter (ADC), der er til stede i det.

3. Lydprøverne leveres til BitVoicer Server ved hjælp af den nuværende Arduino serielle port.

4. BitVoicer Server behandler lydstrømmen, og derefter genkender den den tale, den indeholder.

5. Den genkendte tale vil blive kortlagt til de kommandoer, der allerede er defineret af sig selv før, derefter vil den blive sendt tilbage til Arduino. Hvis en af kommandoerne består i at syntetisere tale, forbereder BitVoicer Server lydstrømmen og sender den til Arduino.

6. Arduino identificerer de leverede kommandoer og udfører den bestemte passende handling. Hvis der modtages en lydstrøm, vil den blive køet ind i BVS -højttalerklassen og afspilles ved hjælp af DUE DAC og DMA.

7. SparkFun Mono Audio Amplifier forstærker DAC -signalet, så det kan drive en 8 Ohm højttaler og kan høres gennem det.

Trin 6: Tilslutning af komponenterne

Tilslutning af komponenterne
Tilslutning af komponenterne
Tilslutning af komponenterne
Tilslutning af komponenterne

Det allerførste trin er at tilslutte forskellige komponenter i brødbrættet og også med arduino -brættet som vist på billedet

Husk, at arduino -kortet, der bruges her, er DUE, der er forskellige andre modeller, der er blevet fremstillet af Arduino, der hver fungerer på forskellige spændingsniveauer

De fleste Arduino -tavler fungerer ved 5 V, men DUE kører ved 3,3 V

DUE bruger allerede en 3,3 V analog reference, så du ikke behøver en jumper til AREF -stiften

Åh undskyld, jeg glemte at sige, at en AREF -pin er en "ANALOG REFERENCE PIN", der er til stede i et arduino -bord som vist i den næste figur (Det er en arduino UNO, men det ligner det lignende sted i tilfælde af DUE)

AREF-stiften på DUE er forbundet til mikrokontrolleren via en modstandsbro

For at bruge AREF-stiften skal modstand R1 være afloddet fra printkortet [printkort]

Trin 7: Levering af kode til Arduino Board

Levering af kode til Arduino Board
Levering af kode til Arduino Board

Så vi skal uploade koden til Arduino Board, så den kan fungere afhængigt af instruktionerne i koden.

Det er meget let at gøre dette. Jeg vil forklare hver enkelt af dem i detaljer, hvad de gør og hvordan de fungerer.

Hvordan installeres et bibliotek?

Så før det er vi nødt til at vide, hvordan vi installerer BitVoicer Server -biblioteker i Arduino IDE,. Det på arduino -softwaren.

Så til det skal du åbne Arduino IDE

Klik på "Skitse" i øverste panel

Klik derefter på "Inkluder bibliotek"

Klik derefter på "Administrer bibliotek"

Derefter åbner bibliotekschefen, og vi kan se en liste over biblioteker, der er klar til installation eller dem, der allerede er installeret

Søg efter det bibliotek, der skal installeres, og vælg derefter versionsnummeret

Her installerer vi BitVoicer Server -biblioteker, hvilket er nødvendigt for dette projekt

Sådan importeres et.zip -bibliotek?

Biblioteker kan også distribueres som en ZIP -fil eller mappe

Navnet på mappen er bibliotekets navn

Inde i mappen vil der være en.cpp -fil, en.h -fil og ofte en keywords.txt -fil, mappe med eksempler og andre filer, der kræves af biblioteket

Fra version 1.0.5 af Arduino IDE kan du installere tredjepartsbiblioteker inde i den

Pak ikke det downloadede bibliotek ud, lad det være som det er

Gå til skitse> Inkluder bibliotek> Tilføj.zip -bibliotek

Vælg placeringen af .zip -filen, og åbn den.

Vend tilbage til menuen Skitse> Importer bibliotek.

Hvis det er korrekt importeret, skal biblioteket ses nederst i rullemenuen, når du navigerer.

Trin 8: Program/skitse

Dette er det program, der skal uploades i Arduino.

Det kan gøres ganske enkelt ved at forbinde Arduino Board til computeren og uploade det til kortet.

Trin 9: Hvad med de skrevne koder?

Lad os nu se på, hvad hver af de funktioner, der er skrevet i koden, rent faktisk gør ………….

Biblioteksreferencer og variabel erklæring

Inden vi taler om dette, skal vi kende og forstå nogle grundlæggende terminologier, herunder:

  • BVSP

    Det er et bibliotek, der giver os næsten alle ressourcer, der er nødvendige for at udveksle oplysninger med BitVoicer Server

    Der findes en protokol, der er kendt som BitVoicer Server Protocol, som implementeres gennem BVSP -klassen. Dette er påkrævet for at interagere med serveren

  • BVSMic

    Det er et bibliotek, der implementerer alle de ting, der er nødvendige for at optage lyden ved hjælp af Analog-to-Digital Converter (ADC) fra Arduino

    Denne lyd gemmes i klasseens interne buffer, og de kan hentes, og derefter kan den sendes til talegenkendelsesmotorerne, som er tilgængelig på BitVoicer Server

  • BVS -højttaler

    Det er et bibliotek, der indeholder alle de væsentlige ressourcer, der er nødvendige for at gengive lydstrømme, der sendes ud fra BitVoicer -serveren

    Til det skal Arduino-kortet have en indbygget Digital-to-Analog Converter (DAC)

    Arduino DUE er det eneste Arduino -kort, der har en integreret DAC

BVSP, BVSMic, BVSSpeaker og DAC biblioteker, henvisningen til disse er skrevet på de fire første linjer, der udgør programmets stirring

Når du installerer BitVoicer Server kan du finde BitSophia, som indeholder alle disse fire biblioteker

Når brugeren tilføjer en reference til BVSSpeaker -biblioteket, påberåbes DAC -biblioteket, som tidligere er blevet nævnt, automatisk

BVSP -klassen bruges til at kommunikere med BitVoicer Server

BVSMic -klassen bruges til at optage og gemme lyd

BVSSpeaker -klasse bruges til at gengive lyd ved hjælp af Arduino DUE DAC

2. opsætningsfunktion

Opsætningsfunktionen bruges til at udføre visse handlinger som:

For at indstille pin -tilstande og deres oprindelige tilstande

For at initialisere seriel kommunikation

For at initialisere BVSP -klassen

For at initialisere BVSMic klasse

For at initialisere BVSSpeaker -klassen

Det indstiller også "event handlers" (funktionspegere) til frameReceived, modeChanged og streamReceived events i BVSP -klassen

Trin 10: Loop -funktion

Det udfører fem store operationer:

1. keepAlive () -funktion

Denne funktion er at bede serveren om statusoplysninger.

2. modtage () funktion

Denne funktion er at kontrollere, om serveren har sendt data ud eller ej. Hvis serveren har sendt data, vil den behandle den.

3. isSREAvailable (), startRecording (), stopRecording () og sendStream () funktioner

Disse funktioner bruges til at styre de forskellige indstillinger for optagelse af lyden, og når den når lyden, sender den denne lyd til BitVoicer -serveren.

4. play () funktion

Denne funktion bruges til at afspille den lyd, der er i kø i BVSSpeaker -klassen.

5. playNextLEDNote ()

Denne funktion bruges til at styre, hvordan LED'en skal blinke.

6. BVSP_frame Modtaget funktion

Denne funktion kaldes hver gang, når modtage () -funktionen begynder at identificere, at en komplet ramme er blevet modtaget. Her kører vi kommandoerne opnået fra BitVoicer Server. Kommandoerne, der styrer blinkende LED'er, er på 2 Bytes. I den første byte angiver pin og anden byte angiver pin -værdi. Her bruger vi analogWrite () -funktionen til at indstille den passende værdi til pin. På det tidspunkt skal vi også kontrollere, om playLEDNotes -kommandoen, som er af Byte -type, er modtaget. Hvis den er modtaget, indstiller jeg playLEDNotes til sand, og den overvåger og markerer den aktuelle tid. Denne tid vil blive brugt af playNextLEDNote -funktionen til at synkronisere lysdioderne med sangen.

7. BVSP_mode Ændret funktion

Denne funktion kaldes hver gang, når modtage () -funktionen identificerer en ændring i tilstand i udgående retning (Server Arduino). BitVoicer Server kan sende indrammede data eller lyd til Arduino. Inden kommunikationen går fra en tilstand til en anden, sender BitVoicer Server et signal. BVSP -klassen identificerer dette signal og frembringer eller markerer modeChanged -hændelsen. I funktionen BVSP_modeChanged, hvis brugeren registrerer, at kommunikationen går fra streamtilstand til indrammet tilstand, ved han/hun, at lyden er afsluttet, så brugeren kan fortælle BVSSpeaker -klassen at stoppe med at afspille lyd.

8. BVSP_stream Modtaget funktion

Denne funktion kaldes hver gang, når funktionen modtage () identificerer, at lydprøver er blevet modtaget. Det henter simpelthen lyden og sætter dem i kø i BVSSpeaker -klassen, så play () -funktionen kan gengive dem.

9. playNextLEDNote -funktion

Denne funktion kører kun, hvis funktionen BVSP_frameReceived identificerer kommandoen playLEDNotes. Det styrer og synkroniserer lysdioderne med lyden, der sendes fra BitVoicer Server. For at synkronisere lysdioderne med lyden og kende den korrekte timing, kan en gratis software Sonic Visualizer bruges. Det giver os mulighed for at se lydbølgerne, så personen kan se, hvornår der blev trykket på en klavertast.

Trin 11: Sådan importeres BitVoicer Server Solution Objects?

Vi har nu indstillet opgraderet BitVoicer Server til at arbejde med Arduino.

Der er fire hovedløsningsobjekter til en BitVoicer Server: Lokationer, Enheder, BinaryData og Stemmeskemaer.

Lad os se nærmere på disse:

Placeringer

Det repræsenterer det fysiske sted, hvor enheden installeres.

Vi kan oprette et sted kaldet Hjem.

Enheder

De anses for at være som klienter på BitVoicer Server.

Ligesom at oprette en placering kan vi oprette en blandet enhed, for nemheds skyld lad os navngive den som ArduinoDUE.

Nogle gange kan der ske nogle bufferoverløb, så for at eliminere det måtte jeg begrænse datahastigheden i kommunikationsindstillingerne til 8000 prøver pr. Sekund.

BinaryData er en kommandotype, BitVoicer Server kan sende til klientenheder. De er faktisk byte -arrays, du kan linke til kommandoer.

Når BitVoicer Server genkender tale relateret til den kommando, sender den byte -array til målenheden.

Så derfor har jeg oprettet et BinaryData -objekt til hver pinværdi og navngivet dem ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff og så videre.

Så jeg var nødt til at oprette 18 BinaryData -objekter, så jeg foreslår, at du downloader og importerer objekterne fra filen VoiceSchema.sof, som er angivet nedenfor.

Så hvad er et stemmeskema?

Stemmeskemaer er, hvor alt kommer sammen. hovedrollen for dem er at definere, hvordan sætningerne skal genkendes, og hvad alle kommandoer skal køres.

For hver sætning kan du definere så mange kommandoer, som du har brug for, og den rækkefølge, de skal udføres.

Du kan også definere forsinkelser mellem hver af de angivne kommandoer.

BitVoicer Server understøtter kun 8-bit mono PCM-lyd (8000 prøver pr. Sekund), så der bliver behov for at konvertere lydfilen til dette format, der er så mange online konverteringsafgifter i dag, og jeg anbefaler https://audio.online -convert.com/convert-to-wav.

Du kan importere (importere løsningsobjekter) alle løsningsobjekter, jeg brugte i dette projekt, fra filerne herunder.

En af dem indeholder DUE -enheden, og den anden indeholder stemmeskemaet og dets kommandoer.

Trin 12: Konklusion

Værsgo !!!

Du har lavet et fantastisk projekt, og du kan tale med det

Så begynd at tale ………………

Du kan blinke lysdioderne op, og samtidig kan du sige det til at synge en sang, hvis det har brug for det, dens kode er allerede angivet

Så jeg har afsluttet min anden instruerbare !!!!!!!!

Ja ……

Jeg tror alle forstod det …

Hvis nogen har spørgsmål, er du velkommen til at spørge mig

Jeg vil komme med en fremragende instruerbar næste gang …

Farvel…

Vi ses snart ……………

Anbefalede: