Tartalomjegyzék:
- 1. lépés: Hogyan kell beállítani a környezetet?
- 2. lépés: Miért nő az Arduino iránti kereslet?
- 3. lépés: Kezdjük !!!!
- 4. lépés: Szükséges összetevők
- 5. lépés: Hogyan működik valójában?
- 6. lépés: Az alkatrészek bekötése
- 7. lépés: A kód megadása az Arduino Boardnak
- 8. lépés: Programozás/vázlatkészítés
- 9. lépés: Mi a helyzet az írott kódokkal?
- 10. lépés: Loop funkció
- 11. lépés: Hogyan lehet importálni a BitVoicer szerver megoldási objektumait?
- 12. lépés: Következtetés
Videó: Beszédfelismerő: 12 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
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?
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
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
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
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:
DC - DC feszültség Lépés lekapcsoló mód Buck feszültségátalakító (LM2576/LM2596): 4 lépés
DC-DC feszültség Lépés lekapcsoló üzemmód Buck feszültségátalakító (LM2576/LM2596): A rendkívül hatékony bakkonverter készítése nehéz feladat, és még a tapasztalt mérnököknek is többféle kivitelre van szükségük, hogy a megfelelőt hozzák létre. egy DC-DC áramátalakító, amely csökkenti a feszültséget (miközben növeli
Akusztikus levitáció az Arduino Uno-val Lépésről lépésre (8 lépés): 8 lépés
Akusztikus lebegés az Arduino Uno-val Lépésről lépésre (8 lépés): ultrahangos hangátvivők L298N Dc női adapter tápegység egy egyenáramú tűvel Arduino UNOBreadboard és analóg portok a kód konvertálásához (C ++)
Élő 4G/5G HD videó streamelés DJI drónról alacsony késleltetéssel [3 lépés]: 3 lépés
Élő 4G/5G HD videó streaming a DJI Drone-tól alacsony késleltetéssel [3 lépés]: Az alábbi útmutató segít abban, hogy szinte bármilyen DJI drónról élő HD minőségű videó streameket kapjon. A FlytOS mobilalkalmazás és a FlytNow webes alkalmazás segítségével elindíthatja a videó streamingjét a drónról
Bolt - DIY vezeték nélküli töltő éjszakai óra (6 lépés): 6 lépés (képekkel)
Bolt - DIY vezeték nélküli töltés éjszakai óra (6 lépés): Az induktív töltés (más néven vezeték nélküli töltés vagy vezeték nélküli töltés) a vezeték nélküli áramátvitel egyik típusa. Elektromágneses indukciót használ a hordozható eszközök áramellátásához. A leggyakoribb alkalmazás a Qi vezeték nélküli töltő
4 lépés az akkumulátor belső ellenállásának méréséhez: 4 lépés
4 lépés az akkumulátor belső ellenállásának mérésére: Íme a 4 egyszerű lépés, amelyek segítenek mérni az akkumulátor belső ellenállását