Obsah:

Rozpoznávač řeči: 12 kroků
Rozpoznávač řeči: 12 kroků

Video: Rozpoznávač řeči: 12 kroků

Video: Rozpoznávač řeči: 12 kroků
Video: TOP 15 – Skryté funkce na iPhone (iOS), které musíte znát! 🔥 2024, Listopad
Anonim
Rozpoznávač řeči
Rozpoznávač řeči

Ahoj všichni………

Toto je můj druhý pokyn, který zveřejňuji

Takže vítejte všichni …

V tomto Instructable vás naučím, jak vytvořit rozpoznávač hlasu pomocí arduino desky.

Takže si myslím, že s arduino deskami už máte zkušenosti. Pokud ne, není to vůbec velký problém, ale doporučuji vám si na to zvyknout, protože je velmi zajímavé si s tím hrát a vytvářet skvělé projekty. z toho podle své kreativity a znalostí o tom.

Takže pro lidi, kteří nemají předchozí zkušenosti s používáním arduina:

Arduino je počítačový hardware s otevřeným zdrojovým kódem, který vyrábí společnost s velkou komunitou designérů a výrobců. Lze jej považovat za malý počítač, který lze použít k ovládání dalších elektronických obvodů

Arduino je naprogramováno v prostředí, které si sami vytvořili a které lze snadno stáhnout z jejich webových stránek

Krok 1: Jak nastavit prostředí?

Jak nastavit prostředí?
Jak nastavit prostředí?
Jak nastavit prostředí?
Jak nastavit prostředí?
Jak nastavit prostředí?
Jak nastavit prostředí?
Jak nastavit prostředí?
Jak nastavit prostředí?

Stačí vyhledat v Google „stáhnout arduino“

Klikněte na „Arduino - software“

Uvidíte „Stáhnout Arduino IDE“

Vyberte v závislosti na operačním systému

Stáhněte a nainstalujte jej

Takže jste úspěšně nainstalovali software a můžete napsat svůj kód pro arduino a pomocí kabelu můžete připojit desku arduino k počítači a vložit kód.

Krok 2: Proč se zvyšuje poptávka po Arduinu?

Levný

Desky Arduino jsou levné ve srovnání s jinými platformami mikrořadičů. Bude to stát jen kolem 50 dolarů.

Cross-platform

Software pro Arduino funguje na operačních systémech Windows, Macintosh OS a Linux. Pokud přemýšlíme o jiných systémech mikrořadičů, budou fungovat pouze v systému Windows nebo jinými slovy omezené pouze na okna.

Open source a rozšiřitelný software

Software je open source, takže lidé o něm začali hlouběji studovat a zahrnovat knihovny (které obsahují sadu funkcí pro jeho provoz) jiných programovacích jazyků.

Jednoduché a snadné programovací prostředí

Je snadné používat Arduino IDE (software, o kterém jsme již diskutovali….) Pro lidi včetně začátečníků, protože velké množství zdrojů poskytuje Arduino, které je k dispozici na internetu zdarma. Neváhejte se tedy dozvědět více o tom.

Open source a rozšiřitelný hardware

Plány desek Arduino jsou publikovány pod licencí Creative Commons, takže lidé, kteří mají zkušenosti s návrhem obvodů, si mohou vytvořit vlastní verzi modulu, mají také právo tuto technologii rozšířit a mohou se vylepšovat přidáváním funkcí.

Krok 3: Začněme !!!!

Takže jsem již řekl, že tento projekt je zaměřen hlavně na rozpoznávání hlasu pomocí Arduina a umožňuje mu provádět některé úkoly.

Mluvit jasněji ………

Zachycuje zvukové signály poskytnuté uživatelem, které lze detekovat blikáním LED poté, co je převedeno na syntetizovanou řeč.

Krok 4: Požadované součásti

Požadované součásti
Požadované součásti
Požadované součásti
Požadované součásti
Požadované součásti
Požadované součásti

Hlavní komponenty požadované pro tento projekt jsou:

Splatnost Arduina x 1

Spark Fun Elektretový mikrofon Breakout x 1

Spark Fun Mono Audio zesilovač Breakout x 1

Reproduktor: 0,25 W, 8 ohmů x 1

Prkénko x 1

5 mm LED: červená x 3

Rezistor 330 ohmů x 3

Propojovací vodiče x 1

Páječka x 1

Server BitVoicer

Je to server pro rozpoznávání a syntézu řeči pro automatizaci řeči.

Krok 5: Jak to vlastně funguje?

1. Zjišťují se zvukové vlny, které tyto vlny zachycují a jsou zesíleny deskou Sparkfun Electret Breakout.

2. Zesílený signál získaný výše uvedeným procesem bude digitalizován a uložen do vyrovnávací paměti/uložen na desce Arduino pomocí jeho analogového převodníku na digitální převodník (ADC), který je v něm obsažen.

3. Zvukové ukázky budou poskytnuty serveru BitVoicer pomocí přítomného sériového portu Arduino.

4. BitVoicer Server zpracuje audio stream a poté rozpozná řeč, kterou obsahuje.

5. Rozpoznaná řeč bude mapována na příkazy, které již byly definovány dříve, poté budou odeslány zpět do Arduina. Pokud jeden z příkazů spočívá v syntetizaci řeči, BitVoicer Server připraví zvukový stream a odešle jej do Arduina.

6. Arduino identifikuje poskytnuté příkazy a provede určitou příslušnou akci. Pokud je audio stream přijat, bude zařazen do třídy BVS Speaker a přehráván pomocí DUE DAC a DMA.

7. Mono audio zesilovač SparkFun zesiluje signál DAC, takže může pohánět 8 ohmový reproduktor a je přes něj slyšet.

Krok 6: Zapojení komponent

Zapojení komponent
Zapojení komponent
Zapojení komponent
Zapojení komponent

Úplně prvním krokem je propojení různých komponentů v prkénku a také s arduino deskou, jak je znázorněno na obrázku

Pamatujte, že zde použitá deska arduino je DUE, existují různé jiné modely, které byly vyrobeny Arduino, z nichž každý pracuje na různých úrovních napětí

Většina desek Arduino pracuje na 5 V, ale DUE běží na 3,3 V

DUE již používá analogovou referenci 3,3 V, takže nepotřebujete propojku na pin AREF

Omlouvám se, zapomněl jsem říci, že pin AREF je „ANALOGOVÝ REFERENČNÍ PIN“, který je přítomen na desce arduino, jak je znázorněno na následujícím obrázku (Jedná se o arduino UNO, ale podobné na podobném webu v případě DUE)

Kolík AREF na DUE je připojen k mikrořadiči přes odporový můstek

Chcete-li použít pin AREF, musí být rezistor R1 odpájen z desky plošných spojů [PCB]

Krok 7: Poskytnutí kódu desce Arduino

Poskytnutí kódu desce Arduino
Poskytnutí kódu desce Arduino

Musíme tedy nahrát kód na desku Arduino, aby mohl fungovat podle pokynů uvedených v kódu.

To je velmi snadné. Každému z nich podrobně vysvětlím, co dělají a jak fungují.

Jak nainstalovat knihovnu?

Předtím tedy musíme vědět, jak nainstalovat knihovny BitVoicer Server do Arduino IDE,. To do softwaru arduino.

K tomu tedy otevřete Arduino IDE

Na horním panelu klikněte na „Skica“

Poté klikněte na „Zahrnout knihovnu“

Klikněte na „Spravovat knihovnu“

Poté se otevře správce knihoven a my vidíme seznam knihoven, které jsou připraveny k instalaci, nebo těch, které již byly nainstalovány

Vyhledejte knihovnu, kterou chcete nainstalovat, a poté vyberte číslo verze

Zde instalujeme knihovny BitVoicer Server, které jsou pro tento projekt nezbytné

Jak importovat knihovnu.zip?

Knihovny lze také distribuovat jako soubor ZIP nebo složku

Název složky je název knihovny

Uvnitř složky bude soubor.cpp, soubor.h a často soubor keywords.txt, složka příkladů a další soubory požadované knihovnou

Od verze 1.0.5 Arduino IDE do něj můžete instalovat knihovny třetích stran

Staženou knihovnu nerozbalujte, nechte ji tak, jak je

Chcete -li to provést, přejděte na skicu> Zahrnout knihovnu> Přidat knihovnu.zip

Vyberte umístění souboru.zip a otevřete jej.

Vraťte se do nabídky Skica> Importovat knihovnu.

Pokud je správně importována, bude tato knihovna při navigaci vidět ve spodní části rozevírací nabídky.

Krok 8: Program/Skica

Toto je program, který je třeba nahrát do Arduina.

To lze provést jednoduše připojením desky Arduino k počítači a nahráním na desku.

Krok 9: A co napsané kódy?

Nyní se podívejme na to, co každá z funkcí napsaných v kódu ve skutečnosti dělá ………..

Odkazy na knihovny a deklarace proměnných

Než o tom budeme mluvit, musíme znát a porozumět některým základním terminologiím, mezi něž patří:

  • BVSP

    Je to knihovna, která nám poskytuje téměř všechny zdroje potřebné k výměně informací se serverem BitVoicer

    Existuje protokol známý jako BitVoicer Server Protocol, který je implementován prostřednictvím třídy BVSP. To je nutné k interakci se serverem

  • BVSMic

    Je to knihovna, která implementuje všechny věci potřebné k záznamu zvuku pomocí převodníku analogového signálu na digitální (ADC) Arduina

    Tento zvuk je uložen ve vnitřní vyrovnávací paměti třídy a lze jej načíst a poté odeslat do modulů rozpoznávání řeči, které jsou k dispozici na serveru BitVoicer Server

  • Reproduktor BVS

    Je to knihovna, která obsahuje všechny základní zdroje potřebné k reprodukci zvukových toků odesílaných ze serveru BitVoicer Server

    K tomu musí mít deska Arduino vestavěný převodník digitálního signálu na analogový (DAC)

    Arduino DUE je jediná deska Arduino, která má integrovaný DAC

Knihovny BVSP, BVSMic, BVSSpeaker a DAC, odkazy na ně jsou zapsány na prvních čtyřech řádcích, které tvoří staring programu

Když nainstalujete BitVoicer Server, najdete BitSophia, která poskytuje všechny tyto čtyři knihovny

Když uživatel přidá odkaz na knihovnu BVSSpeaker, automaticky se vyvolá dříve zmíněná knihovna DAC

Ke komunikaci se serverem BitVoicer se používá třída BVSP

K zachycení a uložení zvuku slouží třída BVSMic

Třída BVSSpeaker se používá k reprodukci zvuku pomocí Arduino DUE DAC

2. funkce nastavení

Funkce nastavení se používá k provádění určitých akcí, jako například:

Nastavení režimů pinů a jejich počátečních stavů

K inicializaci sériové komunikace

K inicializaci třídy BVSP

K inicializaci třídy BVSMic

Inicializace třídy BVSSpeaker

Rovněž nastavuje „obsluhy událostí“(ukazatele funkcí) pro události frameReceived, modeChanged a streamReceived třídy BVSP

Krok 10: Funkce smyčky

Provádí pět hlavních operací:

1. funkce keepAlive ()

Tato funkce má požádat server o informace o stavu.

2. funkce receive ()

Tato funkce má zkontrolovat, zda server odeslal nějaká data nebo ne. Pokud server odeslal jakákoli data, zpracuje je.

3. funkce isSREAvailable (), startRecording (), stopRecording () a sendStream ()

Tyto funkce se používají k ovládání různých nastavení záznamu zvuku a poté, co dosáhne zvuku, odešle tento zvuk na server BitVoicer.

4. funkce play ()

Tato funkce se používá k přehrávání zvuku, který je zařazen do fronty ve třídě BVSSpeaker.

5. playNextLEDNote ()

Tato funkce se používá k ovládání toho, jak má LED blikat.

6. Funkce BVSP_frameReceived

Tato funkce se nazývá pokaždé, když funkce receive () začne identifikovat, že byl přijat jeden úplný rámec. Zde spouštíme příkazy získané ze serveru BitVoicer Server. Příkazy, které ovládají blikání LED diod, mají 2 bajty. V tomto prvním bajtu je uveden pin a v druhém bajtu je uvedena hodnota pinu. Zde používáme funkci analogWrite () k nastavení příslušné hodnoty na pinu. V té době také musíme zkontrolovat, zda byl přijat příkaz playLEDNotes, který je typu Byte. Pokud byl přijat, nastavím playLEDNotes na true a bude sledovat a označovat aktuální čas. Tento čas využije funkce playNextLEDNote k synchronizaci LED diod se skladbou.

7. Funkce BVSP_modeChanged

Tato funkce se nazývá pokaždé, když funkce receive () identifikuje změnu režimu v odchozím směru (Server Arduino). Server BitVoicer může do Arduina odesílat zarámovaná data nebo zvuk. Než komunikace přejde z jednoho režimu do druhého, odešle BitVoicer Server signál. Třída BVSP identifikuje tento signál a vyvolá nebo označí událost modeChanged. Pokud ve funkci BVSP_modeChanged uživatel zjistí, že komunikace přechází z režimu proudu do režimu rámování, bude vědět, že zvuk skončil, takže uživatel může třídě BVSSpeaker sdělit, aby přehrávání zvuku ukončila.

8. Funkce BVSP_streamReceived

Tato funkce je volána pokaždé, když funkce receive () identifikuje, že byly přijaty zvukové ukázky. Jednoduše načte zvuk a zařadí jej do fronty BVSSpeaker, aby je mohla reprodukovat funkce play ().

9. funkce playNextLEDNote

Tato funkce se spustí, pouze pokud funkce BVSP_frameReceived identifikuje příkaz playLEDNotes. Řídí a synchronizuje diody LED se zvukem odesílaným ze serveru BitVoicer Server. Chcete -li synchronizovat diody LED se zvukem a znát správné načasování, lze použít bezplatný software Sonic Visualizer. Umožňuje nám sledovat zvukové vlny, aby osoba mohla zjistit, kdy byla stisknuta klávesa klavíru.

Krok 11: Jak importovat objekty řešení serveru BitVoicer?

Nyní jsme nastavili server BitVoicer, aby fungoval s Arduinem.

Pro server BitVoicer existují čtyři hlavní objekty řešení: Umístění, Zařízení, BinaryData a Hlasová schémata.

Podívejme se na ně podrobně:

Místa

Představuje fyzické umístění, ve kterém je zařízení instalováno.

Můžeme vytvořit umístění s názvem Home.

Zařízení

Jsou považováni za klienty serveru BitVoicer Server.

Stejně jako vytváření umístění můžeme vytvořit smíšené zařízení, pro jednoduchost jej pojmenujme jako ArduinoDUE.

Někdy může dojít k přetečení vyrovnávací paměti, takže k jeho odstranění jsem musel omezit rychlost přenosu dat v nastavení komunikace na 8 000 vzorků za sekundu.

BinaryData je typ příkazu, který může server BitVoicer Server odesílat na klientská zařízení. Jsou to vlastně bajtová pole, která můžete propojit s příkazy.

Když server BitVoicer rozpozná řeč související s tímto příkazem, odešle bajtové pole cílovému zařízení.

Z tohoto důvodu jsem vytvořil jeden objekt BinaryData ke každé hodnotě pinů a pojmenoval je ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff a tak dále.

Musel jsem tedy vytvořit 18 objektů BinaryData, takže navrhuji stáhnout a importovat objekty ze souboru VoiceSchema.sof, který je uveden níže.

Co je tedy hlasové schéma?

Hlasová schémata jsou místem, kde se všechno spojuje. jejich hlavní rolí je definovat, jak mají být věty rozpoznávány a jaké všechny příkazy je třeba spouštět.

Pro každou větu můžete definovat tolik příkazů, kolik potřebujete, a pořadí, ve kterém budou provedeny.

Můžete také definovat zpoždění mezi každým z poskytnutých příkazů.

BitVoicer Server podporuje pouze 8bitový mono PCM zvuk (8 000 vzorků za sekundu), takže bude potřeba převést zvukový soubor do tohoto formátu, dnes existuje tolik online převodních mýtných a doporučuji https://audio.online -convert.com/convert-to-wav.

Ze souborů níže můžete importovat (importovat objekty řešení) všechny objekty řešení, které jsem použil v tomto projektu.

Jeden z nich obsahuje zařízení DUE a druhý obsahuje hlasové schéma a jeho příkazy.

Krok 12: Závěr

Tady máš !!!

Vytvořili jste úžasný projekt a můžete s ním mluvit

Tak začněte mluvit ………………

Můžete blikat LED diodami a současně můžete říci, že zpívá píseň, pokud to potřebuje, její kód již byl poskytnut

Takže jsem dokončil svůj druhý instruktáž !!!!!!!!

To jo……

Myslím, že to všichni pochopili …

Pokud má někdo nějaké dotazy, neváhejte se mě zeptat

Příště vymyslím vynikající Instructable…

Sbohem…

Brzy se uvidíme……………

Doporučuje: