Tartalomjegyzék:

Beszédfelismerő: 12 lépés
Beszédfelismerő: 12 lépés

Videó: Beszédfelismerő: 12 lépés

Videó: Beszédfelismerő: 12 lépés
Videó: Men of Honor (3/3) Movie CLIP - 12 Steps (2000) HD 2024, November
Anonim
Beszédfelismerő
Beszédfelismerő

Sziasztok………

Ez a második tanulságom, amit közzé teszek

Szóval üdvözlök mindenkit …

Ebben az utasításban azt fogom megtanítani, hogyan kell felépíteni egy hangfelismerőt egy arduino táblával.

Úgy gondolom, hogy korábban már van tapasztalata az arduino táblákkal. Ha nem, akkor ez itt egyáltalán nem jelent nagy problémát. De azt javaslom, hogy szokja meg, mivel nagyon érdekes vele játszani és remek projekteket készíteni kreativitása és a rajta lévő tudása szerint.

Tehát azoknak, akik nem rendelkeznek korábbi tapasztalatokkal az arduino használatával:

Az Arduino egy nyílt forráskódú számítógépes hardver, amelyet a tervezők és gyártók nagy közösségével rendelkező cég gyárt. Ez úgy tekinthető, mint egy kis számítógép, amely más elektronikus áramkörök vezérlésére használható

Az Arduino egy saját fejlesztésű környezetbe van programozva, amely könnyen letölthető a webhelyükről

1. lépés: Hogyan kell beállítani a környezetet?

Hogyan kell beállítani a környezetet?
Hogyan kell beállítani a környezetet?
Hogyan kell beállítani a környezetet?
Hogyan kell beállítani a környezetet?
Hogyan kell beállítani a környezetet?
Hogyan kell beállítani a környezetet?
Hogyan kell beállítani a környezetet?
Hogyan kell beállítani a környezetet?

Csak keressen a google -ban "letöltés arduino"

Kattintson az "Arduino - szoftver" elemre

Látni fogja az "Arduino IDE letöltése" lehetőséget

Válasszon az operációs rendszertől függően

Töltse le és telepítse

Tehát sikeresen telepítette a szoftvert, és meg tudja írni az arduino kódját, és egy kábel segítségével csatlakoztathatja az arduino kártyát a számítógéphez, és beillesztheti a kódot.

2. lépés: Miért nő az Arduino iránti kereslet?

Olcsó

Az Arduino táblák olcsók a többi mikrovezérlő platformhoz képest. Csak körülbelül 50 dollárba fog kerülni.

Többplatformos

Az Arduino szoftver Windows, Macintosh OS és Linux operációs rendszereken működik. Ha más mikrovezérlő rendszerekre gondolunk, az csak a Windows rendszerben fog működni, vagy más szavakkal, csak az ablakokra korlátozódik.

Nyílt forráskódú és bővíthető szoftver

A szoftver nyílt forráskódú, így az emberek mélyen tanulmányozni kezdték a témát, és más programozási nyelvek könyvtárát is tartalmazták (amely magában foglalja a működéséhez szükséges funkciókat).

Egyszerű és könnyű programozási környezet

Könnyen használható az Arduino IDE (szoftver, amelyről már beszéltünk…) az embereknek, beleértve a kezdőket is, mivel az Arduino nagy erőforrásokat biztosít, amelyek ingyenesen elérhetők az interneten. Tehát nyugodtan tanuljon tovább erről.

Nyílt forráskódú és bővíthető hardver

Az Arduino táblák terveit a Creative Commons licenc alatt teszik közzé, így azok, akik rendelkeznek tapasztalatokkal az áramkörök tervezésében, elkészíthetik a modul saját verzióját, továbbá joguk van kiterjeszteni a technológiát, és további funkciókkal bővíthetnek.

3. lépés: Kezdjük !!!!

Tehát már elmondtam, hogy ez a projekt elsősorban az Arduino segítségével történő hangfelismerésre és bizonyos feladatok elvégzésére összpontosít.

Beszél világosabban ……

Fogja a felhasználó által biztosított hangjeleket, amelyek a LED villogásával észlelhetők, miután szintetizált beszédsé alakítják.

4. lépés: Szükséges összetevők

Szükséges alkatrészek
Szükséges alkatrészek
Szükséges alkatrészek
Szükséges alkatrészek
Szükséges alkatrészek
Szükséges alkatrészek

A projekthez szükséges fő összetevők a következők:

Arduino Due x 1

Spark Fun Electret mikrofon kitörés x 1

Spark Fun Mono Audio Amp Breakout x 1

Hangszóró: 0,25 W, 8 ohm x 1

Kenyérlap x 1

5 mm -es LED: piros x 3

Ellenállás 330 ohm x 3

Jumper vezetékek x 1

Forrasztópáka x 1

BitVoicer szerver

Ez egy beszédfelismerő és szintézisszerver a beszéd automatizálásához.

5. lépés: Hogyan működik valójában?

1. Hanghullámokat találnak, majd rögzíti ezeket a hullámokat, és erősíti őket a Sparkfun Electret Breakout tábla.

2. A fenti eljárás során kapott erősített jelet digitalizálják és pufferelik/tárolják az Arduino kártyán a benne lévő analóg-digitális konverter (ADC) segítségével.

3. Az audió mintákat a BitVoicer Server szolgáltatja a jelen lévő Arduino soros port használatával.

4. A BitVoicer Server feldolgozza az audio streamet, majd felismeri a benne lévő beszédet.

5. A felismert beszéd a korábban már definiált parancsokhoz lesz hozzárendelve, majd visszaküldésre kerül az Arduino -hoz. Ha az egyik parancs beszéd szintetizálásából áll, a BitVoicer Server előkészíti az audiofolyamot, és elküldi az Arduino -nak.

6. Az Arduino azonosítja a megadott parancsokat, és végrehajtja a megfelelő megfelelő műveletet. Ha hangfolyam érkezik, akkor sorba kerül a BVS Speaker osztályba, és a DUE DAC és DMA használatával játssza le.

7. A SparkFun Mono audioerősítő felerősíti a DAC jelet, így képes 8 ohmos hangszórót meghajtani, és azon keresztül hallható.

6. lépés: Az alkatrészek bekötése

Az alkatrészek bekötése
Az alkatrészek bekötése
Az alkatrészek bekötése
Az alkatrészek bekötése

A legelső lépés a különböző alkatrészek bekötése a kenyértáblába és az arduino táblához is, amint az a képen látható

Ne feledje, hogy az itt használt arduino kártya DUE, az Arduino által gyártott különböző modellek mindegyike különböző feszültségszinteken működik

A legtöbb Arduino tábla 5 V -on működik, de a DUE 3,3 V -on működik

A DUE már használ egy 3,3 V -os analóg referenciát, így nincs szüksége jumperre az AREF tüskéhez

Sajnálom, elfelejtettem mondani, hogy az AREF pin egy "ANALOG REFERENCE PIN", amely egy arduino táblában van, amint az a következő ábrán látható (Ez egy arduino UNO, de hasonló a hasonló oldalon a DUE esetében)

A DUE AREF csapja ellenálláshídon keresztül csatlakozik a mikrovezérlőhöz

Az AREF csap használatához az R1 ellenállást ki kell forrasztani a NYÁK-ból [nyomtatott áramköri lap]

7. lépés: A kód megadása az Arduino Boardnak

A kód megadása az Arduino Boardnak
A kód megadása az Arduino Boardnak

Tehát fel kell töltenünk a kódot az Arduino táblára, hogy az működjön a kódban megadott utasításoknak megfelelően.

Ezt nagyon könnyű megtenni. Mindegyiket részletesen elmagyarázom arról, hogy mit csinálnak és hogyan működnek.

Hogyan telepítsünk egy könyvtárat?

Tehát előtte meg kell tudnunk, hogyan kell telepíteni a BitVoicer Server könyvtárakat az Arduino IDE -be,.that az arduino szoftverre.

Ehhez nyissa meg az Arduino IDE -t

A felső panelen kattintson a "Vázlat" elemre

Ezután kattintson a "Könyvtár beillesztése" gombra

Ezután kattintson a "Könyvtár kezelése" elemre

Ezután megnyílik a könyvtárkezelő, és láthatjuk a telepítésre kész vagy már telepített könyvtárak listáját

Keresse meg a telepítendő könyvtárat, majd válassza ki a verziószámot

Itt telepítjük a BitVoicer Server könyvtárakat, ami ehhez a projekthez szükséges

Hogyan importálhatok.zip könyvtárat?

A könyvtárak ZIP fájlként vagy mappaként is terjeszthetők

A mappa neve a könyvtár neve

A mappában lesz egy.cpp fájl, egy.h fájl, és gyakran egy kulcsszó.txt fájl, példa mappa és a könyvtár által megkövetelt egyéb fájlok

Az Arduino IDE 1.0.5 verziójából harmadik féltől származó könyvtárakat telepíthet belé

Ne csomagolja ki a letöltött könyvtárat, hagyja úgy, ahogy van

Ehhez lépjen a vázlathoz> Könyvtár beillesztése>.zip könyvtár hozzáadása

Válassza ki a.zip fájl helyét, és nyissa meg.

Térjen vissza a Vázlat> Könyvtár importálása menübe.

Ha megfelelően importált, akkor a könyvtár a legördülő menü alján látható, amikor navigál.

8. lépés: Programozás/vázlatkészítés

Ezt a programot kell feltölteni az Arduino -ba.

Ezt egyszerűen úgy teheti meg, hogy az Arduino Boardot csatlakoztatja a számítógéphez, és feltölti a táblára.

9. lépés: Mi a helyzet az írott kódokkal?

Most nézzük meg, hogy a kódba írt egyes funkciók valójában mit tesznek ………..

Könyvtári hivatkozások és változó deklaráció

Mielőtt erről beszélnénk, ismernünk kell és meg kell értenünk néhány alapvető terminológiát. Ezek a következők:

  • BVSP

    Ez egy könyvtár, amely szinte minden erőforrást biztosít számunkra, amely szükséges az információcseréhez a BitVoicer szerverrel

    Létezik egy BitVoicer Server Protocol néven ismert protokoll, amelyet a BVSP osztályon keresztül valósítanak meg. Ez szükséges a szerverrel való kapcsolattartáshoz

  • BVSMic

    Ez egy könyvtár, amely megvalósítja mindazt, ami szükséges az audio rögzítéséhez az Arduino analóg-digitális konverterével (ADC)

    Ez a hang az osztály belső pufferében tárolódik, és visszakereshetők, majd elküldhetők a BitVoicer Server -en elérhető beszédfelismerő motorokhoz

  • BVShangszóró

    Ez egy könyvtár, amely tartalmazza az összes alapvető erőforrást, amely a BitVoicer szerverről küldött hangfolyamok reprodukálásához szükséges

    Ehhez az Arduino kártyának rendelkeznie kell egy beépített digitális-analóg konverterrel (DAC)

    Az Arduino DUE az egyetlen Arduino tábla, amely beépített DAC -val rendelkezik

BVSP, BVSMic, BVSSpeaker és DAC könyvtárak, ezekre való hivatkozás az első négy sorban van, ami a program bámulását képezi

A BitVoicer Server telepítésekor megtalálható a BitSophia, amely mind a négy könyvtárat biztosítja

Amikor a felhasználó hivatkozást ad hozzá a BVSSpeaker könyvtárhoz, a rendszer automatikusan meghívja a korábban említett DAC könyvtárat

A BVSP osztály a BitVoicer Serverrel való kommunikációra szolgál

A BVSMic osztály audio rögzítésére és tárolására szolgál

A BVSSpeaker osztályt a hang reprodukálására használják az Arduino DUE DAC használatával

2. beállítási funkció

A beállítási funkció bizonyos műveletek végrehajtására szolgál, például:

A tűmódok és kezdeti állapotuk beállítása

A soros kommunikáció inicializálása

A BVSP osztály inicializálása

A BVSMic osztály inicializálása

A BVSSpeaker osztály inicializálása

Ezenkívül beállítja az eseménykezelőket (függvénymutatókat) a BVSP osztály frameReceived, modeChanged és streamReceived eseményeihez

10. lépés: Loop funkció

Öt fő műveletet hajt végre:

1. keepAlive () függvény

Ez a funkció az állapotinformációk kikérését jelenti a szervernek.

2. fogadás () függvény

Ez a funkció annak ellenőrzésére szolgál, hogy a szerver küldött -e adatokat vagy sem. Ha a szerver küldött adatokat, akkor feldolgozza azokat.

3. isSREAvailable (), startRecording (), stopRecording () és sendStream () függvények

Ezek a funkciók a hang rögzítésének különböző beállításainak vezérlésére szolgálnak, majd miután elérte a hangot, elküldi ezt a hangot a BitVoicer szervernek.

4. play () függvény

Ez a funkció a BVSSpeaker osztályban sorba állított hang lejátszására szolgál.

5. playNextLEDNote ()

Ezzel a funkcióval szabályozható, hogyan villogjon a LED.

6. BVSP_frameReceived függvény

Ezt a funkciót minden alkalommal meghívják, amikor a fogadás () függvény elkezdi azonosítani, hogy egy teljes képkocka érkezett. Itt a BitVoicer szerverről kapott parancsokat futtatjuk. A LED -ek villogását vezérlő parancsok 2 bájtosak. Ebben az első bájtban a tű és a második bájtban a tű értéke látható. Itt az analogWrite () függvény segítségével állítjuk be a megfelelő értéket. Ekkor azt is ellenőriznünk kell, hogy megkaptuk -e a playLEDNotes parancsot, amely bájt típusú. Ha megkapta, a playLEDNotes beállítást igazra állítom, és figyelni fogja és jelzi az aktuális időt. Ezt az időt használja a playNextLEDNote funkció a LED -ek szinkronizálásához a dallal.

7. BVSP_modeChanged függvény

Ezt a funkciót minden alkalommal meghívják, amikor a fogadás () függvény a kimenő irányú módváltozást észleli (Server Arduino). A BitVoicer Server keretes adatokat vagy hangot küldhet az Arduino -nak. Mielőtt a kommunikáció egyik módból a másikba megy, a BitVoicer Server jelet küld. A BVSP osztály azonosítja ezt a jelet, és emeli vagy jelzi a modeChanged eseményt. A BVSP_modeChanged funkcióban, ha a felhasználó észleli, hogy a kommunikáció stream módból keretezett módba megy, akkor tudni fogja, hogy a hang véget ért, így a felhasználó szólhat a BVSSpeaker osztálynak, hogy hagyja abba az audio lejátszását.

8. BVSP_streamReceived függvény

Ezt a funkciót minden alkalommal meghívják, amikor a fogadás () függvény azonosítja, hogy hangminták érkeztek. Egyszerűen lekéri a hangot, és sorba állítja őket a BVSSpeaker osztályba, hogy a play () függvény reprodukálhassa őket.

9. playNextLEDNote függvény

Ez a funkció csak akkor fut, ha a BVSP_frameReceived függvény azonosítja a playLEDNotes parancsot. Ez vezérli és szinkronizálja a LED -eket a BitVoicer szerverről küldött hanggal. A LED -ek hanggal való szinkronizálásához és a helyes időzítéshez egy ingyenes szoftver Sonic Visualizer használható. Lehetővé teszi számunkra, hogy figyeljük az audiohullámokat, hogy a személy meg tudja állapítani, hogy mikor nyomtak le egy zongora gombot.

11. lépés: Hogyan lehet importálni a BitVoicer szerver megoldási objektumait?

Most beállítottuk a megnövelt BitVoicer szervert az Arduino -val való együttműködésre.

A BitVoicer kiszolgálónak négy fő megoldási objektuma van: helyek, eszközök, bináris adatok és hangsémák.

Nézzük ezeket részletesen:

Helyszínek

Ez azt a fizikai helyet jelöli, amelyre az eszközt telepítik.

Létrehozhatunk egy Otthon nevű helyet.

Eszközök

A BitVoicer Server ügyfeleinek tekintik őket.

A hely létrehozásához hasonlóan létrehozhatunk egy vegyes eszközt is, a könnyebbség kedvéért nevezzük ArduinoDUE -nak.

Néha puffertúlcsordulások történhetnek, így ennek kiküszöbölése érdekében a kommunikációs beállításokban az adatsebességet 8000 mintára kellett korlátoznom másodpercenként.

A BinaryData egy olyan típusú parancs, amelyet a BitVoicer Server küldhet az ügyféleszközökre. Valójában bájt tömbök, amelyeket parancsokhoz kapcsolhat.

Amikor a BitVoicer Server felismeri a parancshoz kapcsolódó beszédet, elküldi a bájt tömböt a céleszköznek.

Ezért létrehoztam egy BinaryData objektumot minden pin értékhez, és elneveztem őket ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff és így tovább.

Így 18 BinaryData objektumot kellett létrehoznom, ezért javaslom, hogy töltse le és importálja az objektumokat az alább található VoiceSchema.sof fájlból.

Tehát mi az a hangséma?

A hangsémák mindent összehoznak. fő szerepük az, hogy meghatározzák, hogyan kell felismerni a mondatokat, és mit kell futtatni.

Minden mondathoz megadhat annyi parancsot, amennyire szüksége van, és a végrehajtás sorrendjét.

Késleltetéseket is megadhat a megadott parancsok között.

A BitVoicer Server csak a 8 bites mono PCM hangot támogatja (8000 minta másodpercenként), így szükség lesz az audio fájl ilyen formátumba való konvertálására, olyan sok online konverziós útdíj van ma, és javaslom a https://audio.online webhelyet. -convert.com/convert-to-wav.

Az alábbi fájlokból importálhatja (Megoldásobjektumok importálása) a projektben használt összes megoldásobjektumot.

Az egyik a DUE eszközt, a másik a hangsémát és annak parancsait tartalmazza.

12. lépés: Következtetés

Nesze !!!

Fantasztikus projektet készítettél, és beszélhetsz vele

Szóval kezdj el beszélni ……………………

Felvillanhatnak a LED -ek, és egyúttal azt is mondhatja, hogy énekel egy dalt, ha szükséges, a kódja már meg van adva

Szóval befejeztem a második utasítást !!!!!!!!

Igen……

Azt hiszem, mindenki megértette…

Ha valakinek kérdése van, nyugodtan kérdezzen tőlem

Legközelebb kitűnő instrukcióval állok elő …

Viszlát…

Hamarosan találkozunk……………

Ajánlott: