INHOUDSOPGAWE:

Spraakherkenning: 12 stappe
Spraakherkenning: 12 stappe

Video: Spraakherkenning: 12 stappe

Video: Spraakherkenning: 12 stappe
Video: Seizoen 2 Special: Spraakherkenning in de klinische wereld | Cognicum Collegetour 2024, Julie
Anonim
Spraakherkenning
Spraakherkenning

Haai almal………

Dit is my tweede opdrag wat ek plaas

So welkom almal …

In hierdie instruksies gaan ek jou leer hoe om 'n stemherkenning op te bou met 'n arduino -bord.

Dus ek dink u het al 'n ervaring met arduino -borde. As dit nie die geval is nie, is dit glad nie 'n groot probleem nie, maar ek raai u aan om daaraan gewoond te raak, aangesien dit baie interessant is om daarmee te speel en 'n paar wonderlike projekte te skep. volgens u kreatiwiteit en kennis daaroor.

Dus vir die mense wat nie 'n vorige ervaring met die gebruik van arduino het nie:

Arduino is 'n open source rekenaarhardeware wat vervaardig word deur 'n onderneming met 'n groot aantal ontwerpers en vervaardigers. Dit kan beskou word as 'n klein rekenaar wat gebruik kan word om ander elektroniese stroombane te beheer

Arduino is geprogrammeer in 'n selfstandige omgewing wat maklik van hul webwerf afgelaai kan word

Stap 1: Hoe om die omgewing op te stel?

Hoe om die omgewing op te stel?
Hoe om die omgewing op te stel?
Hoe om die omgewing op te stel?
Hoe om die omgewing op te stel?
Hoe om die omgewing op te stel?
Hoe om die omgewing op te stel?
Hoe om die omgewing op te stel?
Hoe om die omgewing op te stel?

Soek net in die google "aflaai arduino"

Klik op "Arduino - sagteware"

U kan 'Laai die Arduino IDE' sien

Kies afhangende van u bedryfstelsel

Laai dit af en installeer dit

U het dus die sagteware suksesvol geïnstalleer en u kan die kode vir arduino skryf, en met behulp van 'n kabel kan u die arduino -bord aan die rekenaar koppel en die kode invoeg.

Stap 2: Waarom neem die vraag na Arduino toe?

Goedkoop

Arduino-borde is goedkoop in vergelyking met ander mikrobeheerderplatforms. Dit sal ongeveer $ 50 kos.

Kruis-platform

Die sagteware vir Arduino werk op Windows, Macintosh OS en Linux bedryfstelsels. As ons aan ander mikrobeheerstelsels dink, werk dit slegs in Windows of met ander woorde slegs tot vensters.

Open source en uitbreidbare sagteware

Die sagteware is open source, sodat mense daaroor begin studeer en biblioteke (wat 'n stel funksies vir die werking daarvan bevat) van ander programmeertale insluit.

Eenvoudige en maklike programmeeromgewing

Dit is maklik om die Arduino IDE (sagteware waaroor ons reeds bespreek het, te gebruik) vir mense, insluitend beginners, aangesien Arduino self 'n groot hoeveelheid hulpbronne verskaf wat gratis op die internet beskikbaar is. Kom dus meer te wete daaroor.

Open source en uitbreidbare hardeware

Die planne van die Arduino -borde word onder 'n Creative Commons -lisensie gepubliseer, sodat mense met 'n ervaring in kringontwerp hul eie weergawe van die module kan maak; hulle het ook die reg om die tegnologie uit te brei en kan verbeter deur funksies daaraan toe te voeg.

Stap 3: Laat ons begin !!!!

Ek het dus al gesê dat hierdie projek hoofsaaklik gefokus is op stemherkenning met behulp van die Arduino en dat dit sekere take kan verrig.

Duideliker praat ……

Dit neem die klankseine op wat deur die gebruiker verskaf word, wat bespeur kan word deur die LED te knip nadat dit omgeskakel is in gesintetiseerde spraak.

Stap 4: Vereiste komponente

Komponente benodig
Komponente benodig
Komponente benodig
Komponente benodig
Komponente benodig
Komponente benodig

Die belangrikste komponente wat vir hierdie projek benodig word, is:

Arduino Due x 1

Spark Fun Electret Microphone Breakout x 1

Spark Fun Mono Audio Amp Breakout x 1

Luidspreker: 0,25 W, 8 ohm x 1

Broodbord x 1

5 mm LED: rooi x 3

Weerstand 330 ohm x 3

Springdrade x 1

Soldeerbout x 1

BitVoicer -bediener

Dit is 'n spraakherkennings- en sintese -bediener vir spraakautomatisering.

Stap 5: Hoe werk dit eintlik?

1. Klankgolwe word uitgevind, dan vang dit hierdie golwe op en word dit versterk deur die Sparkfun Electret Breakout -bord.

2. Die versterkte sein wat uit die bogenoemde proses verkry word, sal gedigitaliseer en gebuffer/gestoor word in die Arduino-bord met behulp van die analoog-na-digitale omskakelaar (ADC) wat daarin voorkom.

3. Die klankmonsters sal aan die BitVoicer Server verskaf word met behulp van die Arduino -seriële poort.

4. BitVoicer Server verwerk die klankstroom en herken die spraak wat dit bevat.

5. Die herkende toespraak word gekarteer na die opdragte wat al voorheen deur homself gedefinieer is, en dan word dit teruggestuur na die Arduino. As een van die opdragte bestaan in die sintese van spraak, sal BitVoicer Server die klankstroom voorberei en dit na die Arduino stuur.

6. Die Arduino identifiseer die opdragte wat verskaf word en voer die gepaste aksie uit. As 'n klankstroom ontvang word, word dit in die tou in die BVS -luidsprekerklas geplaas en met DUE DAC en DMA gespeel.

7. Die SparkFun Mono Audio Versterker versterk die DAC sein sodat dit 'n 8 Ohm luidspreker kan dryf en daardeur gehoor kan word.

Stap 6: Bedek die komponente

Bedrading van die komponente
Bedrading van die komponente
Die bedrading van die komponente
Die bedrading van die komponente

Die heel eerste stap is om verskillende komponente in die broodbord en ook met die arduino -bord te bedraad, soos op die foto getoon

Onthou dat die arduino -bord wat hier gebruik word, DUE is; daar is verskillende ander modelle wat deur Arduino vervaardig is, wat elk op verskillende spanningsvlakke werk

Die meeste Arduino -borde werk op 5 V, maar die DUE loop op 3,3 V

Die DUE gebruik reeds 'n analoog van 3.3 V, sodat u nie 'n springer na die AREF -pen nodig het nie

O, jammer, ek het vergeet om te sê dat 'n AREF -pen 'n 'ANALOGE VERWYSINGSPEN' is wat op 'n arduino -bord voorkom, soos in die volgende figuur getoon word (dit is 'n ARduino UNO, maar soortgelyk aan die soortgelyke webwerf in die geval van DUE)

Die AREF-pen op die DUE is via 'n weerstandsbrug aan die mikrobeheerder gekoppel

Om die AREF-pen te gebruik, moet weerstand R1 van die PCB [Printed Circuit Board] gesoldeer word

Stap 7: Gee kode aan die Arduino -raad

Die verskaffing van kode aan die Arduino -raad
Die verskaffing van kode aan die Arduino -raad

Ons moet dus die kode op die Arduino -bord laai, sodat dit kan werk, afhangende van die instruksies in die kode.

Dit is baie maklik om dit te doen. Ek sal elkeen in detail verduidelik, wat hulle doen en hoe hulle werk.

Hoe om 'n biblioteek te installeer?

Dus voordat ons moet weet hoe om BitVoicer Server -biblioteke in die Arduino IDE te installeer, dit op die arduino -sagteware.

So daarvoor maak die Arduino IDE oop

Klik in die boonste paneel op "Skets"

Klik dan op "Sluit biblioteek in"

Klik daarop "Bestuur biblioteek"

Dan sal die biblioteekbestuurder oopmaak en kan ons 'n lys biblioteke sien wat gereed is om geïnstalleer te word of die wat reeds geïnstalleer is

Soek die biblioteek om te installeer en kies dan die weergawenommer

Hier installeer ons BitVoicer Server -biblioteke, wat nodig is vir hierdie projek

Hoe om 'n.zip -biblioteek in te voer?

Biblioteke kan ook as 'n zip -lêer of gids versprei word

Die naam van die gids is die naam van die biblioteek

In die gids sal 'n.cpp -lêer, 'n.h -lêer en dikwels 'n keywords.txt -lêer, 'n voorbeeldmap en ander lêers wees wat die biblioteek benodig

Vanaf die weergawe 1.0.5 van Arduino IDE kan u biblioteke van derde partye daarin installeer

Moenie die afgelaaide biblioteek uitpak nie, laat dit soos dit is

Gaan hiervoor na skets> Sluit biblioteek in> Voeg.zip -biblioteek by

Kies die plek van die zip -lêer en maak dit oop.

Keer terug na die menu Skets> Invoerbiblioteek.

As dit behoorlik ingevoer is, is die biblioteek onderaan die keuselys te sien as u navigeer.

Stap 8: Programmeer/Skets

Dit is die program wat in die Arduino opgelaai moet word.

Dit kan eenvoudig gedoen word deur die Arduino Board aan te sluit op die rekenaar en dit op die bord te laai.

Stap 9: Wat van die geskrewe kodes?

Kom ons kyk nou na wat elkeen van die funksies wat in die kode geskryf is, eintlik doen ………..

Biblioteekverwysings en veranderlike verklaring

Voordat ons hieroor praat, moet ons 'n paar basiese terminologieë ken en verstaan, insluitend:

  • BVSP

    Dit is 'n biblioteek wat ons byna alle hulpbronne bied wat nodig is om inligting met die BitVoicer Server uit te ruil

    Daar is 'n protokol wat bekend staan as die BitVoicer Server Protocol wat geïmplementeer word deur die BVSP -klas. Dit is nodig om met die bediener te kommunikeer

  • BVSMic

    Dit is 'n biblioteek wat alles benodig om die klank op te neem met behulp van Analog-to-Digital Converter (ADC) van die Arduino

    Hierdie klank word in die interne buffer van die klas gestoor, en dit kan opgespoor word en dan na die spraakherkenningsmotors gestuur word wat op BitVoicer Server beskikbaar is

  • BVS -spreker

    Dit is 'n biblioteek wat al die noodsaaklike hulpbronne bevat wat nodig is om klankstrome weer te gee wat van die BitVoicer Server gestuur word

    Daarvoor moet die Arduino-bord 'n ingeboude Digital-to-Analog Converter (DAC) hê

    Arduino DUE is die enigste Arduino -bord met 'n geïntegreerde DAC

BVSP-, BVSMic-, BVSSpeaker- en DAC -biblioteke, die verwysing daarna word op die eerste vier reëls geskryf, waaruit die program gekyk word

As u BitVoicer Server installeer, kan u BitSophia vind wat al hierdie vier biblioteke bied

As die gebruiker 'n verwysing na die BVSSpeaker -biblioteek voeg, word die DAC -biblioteek wat vroeër genoem is, outomaties opgeroep

Die BVSP -klas word gebruik om met BitVoicer Server te kommunikeer

Die BVSMic -klas word gebruik om klank op te neem en op te slaan

BVSSpeaker -klas word gebruik om klank weer te gee met die Arduino DUE DAC

2. opstel funksie

Die opstelfunksie word gebruik om sekere aksies uit te voer, soos:

Om penmodusse en hul aanvanklike toestande in te stel

Om seriële kommunikasie te initialiseer

Om die BVSP -klas te begin

Om die BVSMic -klas te begin

Om die BVSSpeaker -klas te begin

Dit stel ook 'gebeurtenishanteerders' (funksie -aanwysers) in vir die raamontvangste, modusveranderde en stroomontvangte gebeurtenisse van die BVSP -klas

Stap 10: lusfunksie

Dit voer vyf groot operasies uit:

1. funksie keepAlive ()

Hierdie funksie is om die bediener oor die statusinligting te versoek.

2. ontvang () funksie

Hierdie funksie is om te kyk of die bediener data gestuur het of nie. As die bediener data gestuur het, sal dit dit verwerk.

3. isSREAvailable (), startRecording (), stopRecording () en sendStream () funksies

Hierdie funksies word gebruik om die verskillende instellings vir die opname van die klank te beheer, en nadat dit die klank bereik het, stuur dit hierdie klank na die BitVoicer Server.

4. speel () funksie

Hierdie funksie word gebruik om die klank te speel wat in die tou gestaan het by die BVSSpeaker -klas.

5. playNextLEDNote ()

Hierdie funksie word gebruik om te bepaal hoe die Led moet knip.

6. BVSP_frame Ontvang funksie

Hierdie funksie word elke keer genoem wanneer die ontvang () funksie begin identifiseer dat een volledige raam ontvang is. Hier voer ons die opdragte uit wat BitVoicer Server verkry het. Die opdragte wat die knipper van LED's beheer, is van 2 Bytes. In die eerste byte dui die pen aan en die tweede byte dui die pinwaarde aan. Hier gebruik ons die analogWrite () -funksie om die toepaslike waarde op die pen in te stel. Op daardie tydstip moet ons ook kyk of playLEDNotes -opdrag, wat van Byte -tipe is, ontvang is. As dit ontvang is, stel ek playLEDNotes op waar, en dit sal die huidige tyd monitor en merk. Hierdie tyd sal deur die playNextLEDNote -funksie gebruik word om die LED's met die liedjie te sinchroniseer.

7. BVSP_mode Veranderde funksie

Hierdie funksie word elke keer genoem wanneer die ontvangs () -funksie 'n verandering in die modus in die uitgaande rigting (bediener Arduino) identifiseer. BitVoicer Server kan geraamde data of klank na die Arduino stuur. Voordat die kommunikasie van die een modus na die ander gaan, stuur BitVoicer Server 'n sein. Die BVSP -klas identifiseer hierdie sein en verhoog of merk die mode -veranderende gebeurtenis. In die BVSP_modeChanged -funksie, as die gebruiker agterkom dat die kommunikasie van stroommodus na geraamde modus gaan, sal hy/sy weet dat die klank geëindig het, sodat die gebruiker die BVSSpeaker -klas kan sê om op te hou om klank te speel.

8. BVSP_stroom Ontvang funksie

Hierdie funksie word elke keer genoem wanneer die ontvang () -funksie identifiseer dat klankmonsters ontvang is. Dit haal eenvoudig die klank op en plaas dit in die ry in die BVSSpeaker -klas, sodat die play () -funksie dit kan weergee.

9. playNextLEDNote funksie

Hierdie funksie werk slegs as die BVSP_frameReceived -funksie die playLEDNotes -opdrag identifiseer. Dit beheer en sinkroniseer die LED's met die klank wat vanaf BitVoicer Server gestuur word. 'N Gratis sagteware Sonic Visualizer kan gebruik word om die LED's met die klank te sinchroniseer en die regte tydsberekening te ken. Dit stel ons in staat om na die klankgolwe te kyk, sodat die persoon kan sien wanneer 'n klaviertoets ingedruk is.

Stap 11: Hoe om BitVoicer Server Solution Objects in te voer?

Ons het nou die BitVoicer Server verhoog om saam met die Arduino te werk.

Daar is vier hoofoplossingsvoorwerpe vir 'n BitVoicer -bediener: liggings, toestelle, BinaryData en stemskemas.

Kom ons kyk hierna in detail:

Plekke

Dit verteenwoordig die fisiese ligging waarop die toestel geïnstalleer word.

Ons kan 'n plek met die naam Tuis skep.

Toestelle

Hulle word beskou as die kliënte van BitVoicer Server.

Net soos om 'n plek te skep, kan ons 'n gemengde toestel skep, sodat ons dit makliker kan noem as ArduinoDUE.

Soms kan 'n paar buffer -oorstromings plaasvind, dus om dit uit te skakel, moes ek die datatempo in die kommunikasie -instellings beperk tot 8000 monsters per sekonde.

BinaryData is 'n tipe opdrag wat BitVoicer Server na kliënttoestelle kan stuur. Dit is eintlik byte -skikkings wat u na opdragte kan koppel.

As BitVoicer Server spraak met betrekking tot die opdrag herken, stuur dit die greepskikking na die teikenapparaat.

Daarom het ek een BinaryData -voorwerp vir elke penwaarde geskep en dit ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff ensovoorts genoem.

Ek moes dus 18 BinaryData -voorwerpe skep, dus stel ek voor dat u die voorwerpe aflaai en invoer uit die VoiceSchema.sof -lêer wat hieronder verskaf word.

So, wat is 'n stemskema?

Stemskemas is waar alles bymekaar kom. die belangrikste rol daarvan is om te definieer hoe die sinne herken moet word en wat alle opdragte moet uitvoer.

Vir elke sin kan u soveel opdragte definieer as wat u benodig en die volgorde waarin dit uitgevoer sal word.

U kan ook vertragings tussen elk van die opdragte definieer.

BitVoicer Server ondersteun slegs 8-bis mono PCM-klank (8000 monsters per sekonde), dus is daar 'n behoefte om die klanklêer na hierdie formaat om te skakel, daar is soveel aanlyn-omskakelingstale vandag en ek beveel https://audio.online aan -convert.com/convert-to-wav.

U kan alle oplossingsvoorwerpe wat ek in hierdie projek gebruik het, invoer (invoer van oplossingsvoorwerpe) uit die onderstaande lêers.

Een daarvan bevat die DUE -toestel en die ander een bevat die stemskema en sy opdragte.

Stap 12: Gevolgtrekking

Daar gaan jy !!!

U het 'n wonderlike projek gemaak en u kan daarmee gesels

So begin praat ………………

U kan die LED's knip, en terselfdertyd kan u dit sê om 'n liedjie te sing, indien nodig, die kode is reeds verskaf

Dus het ek my tweede instruksies voltooi !!!!!!!!

Ja ……

Ek dink almal het dit verstaan …

As iemand enige navrae het, kan u my gerus vra

Ek kom volgende keer met 'n uitstekende instruksie …

Totsiens…

Sien jou binnekort……………

Aanbeveel: