Innehållsförteckning:

Taligenkänning: 12 steg
Taligenkänning: 12 steg

Video: Taligenkänning: 12 steg

Video: Taligenkänning: 12 steg
Video: Demo av Taligenkänning i TakeCare 2024, November
Anonim
Taligenkänning
Taligenkänning

Hej allihopa………

Detta är min andra instruerbara som jag lägger ut

Så välkomna alla …

I den här instruktionsboken ska jag lära dig hur du bygger upp en röstigenkänning med ett arduino -kort.

Så jag tror att du har en erfarenhet av arduino -brädor tidigare. Om inte, är det inte ett stort stort problem här. Men jag rekommenderar dig att vänja dig vid det eftersom det är väldigt intressant att spela med det och skapa några häftiga projekt ut ur det enligt din kreativitet och kunskap om det.

Så för de människor som inte har någon tidigare erfarenhet av att använda arduino:

Arduino är en hårdvara med öppen källkod som tillverkas av ett företag som har ett stort antal designers och tillverkare. Det kan betraktas som en liten dator som kan användas för att styra andra elektroniska kretsar

Arduino är programmerad i en miljö utvecklad av dem själva som enkelt kan laddas ner från deras webbplats

Steg 1: Hur ställer jag in miljön?

Hur ställer man upp miljön?
Hur ställer man upp miljön?
Hur ställer man upp miljön?
Hur ställer man upp miljön?
Hur ställer man upp miljön?
Hur ställer man upp miljön?
Hur ställer man upp miljön?
Hur ställer man upp miljön?

Sök bara på google "ladda ner arduino"

Klicka på "Arduino - Programvara"

Du kommer att kunna se "Ladda ner Arduino IDE"

Välj beroende på ditt operativsystem

Ladda ner och installera det

Så du har framgångsrikt installerat programvaran och du kan skriva din kod för arduino och med hjälp av en kabel kan du ansluta arduino -kortet till datorn och kan sätta in koden.

Steg 2: Varför efterfrågan på Arduino ökar?

Billig

Arduino-kort är billiga jämfört med andra mikrokontrollerplattformar. Det kommer att kosta bara runt $ 50.

Plattformsoberoende

Programvaran för Arduino fungerar på Windows, Macintosh OS och Linux operativsystem. Om vi tänker på andra mikrokontrollsystem fungerar det bara i Windows eller med andra ord endast begränsat till Windows.

Öppen källkod och utökningsbar programvara

Programvaran är öppen källkod, så att människor började studera det djupt och inkludera bibliotek (som innehåller en uppsättning funktioner för dess drift) av andra programmeringsspråk.

Enkel och enkel programmeringsmiljö

Det är enkelt att använda Arduino IDE (programvara som vi redan har diskuterat om ….) för personer inklusive nybörjare, eftersom Arduino själva tillhandahåller en stor mängd resurser som är gratis på internet. om det.

Öppen källkod och utbyggbar hårdvara

Planerna för Arduino -korten publiceras under en Creative Commons -licens, så att personer som har erfarenhet av kretsdesign kan göra sin egen version av modulen, de har också rätt att utöka tekniken och kan förbättra genom att lägga till funktioner i den.

Steg 3: Låt oss börja !!!!!

Så jag har redan berättat att det här projektet huvudsakligen fokuserar på röstigenkänning med Arduino och att låta det utföra vissa uppgifter.

Pratar tydligare ….

Det tar upp ljudsignalerna från användaren, som kan detekteras genom att blinka på lysdioden efter att den har konverterats till syntetiserat tal.

Steg 4: Komponenter krävs

Komponenter krävs
Komponenter krävs
Komponenter krävs
Komponenter krävs
Komponenter krävs
Komponenter krävs

De viktigaste komponenterna som krävs för detta projekt är:

Arduino Due x 1

Spark Fun Electret Microphone Breakout x 1

Spark Fun Mono Audio Amp Breakout x 1

Högtalare: 0,25 W, 8 ohm x 1

Brödbräda x 1

5 mm LED: Röd x 3

Motstånd 330 ohm x 3

Bygelkablar x 1

Lödkolv x 1

BitVoicer -server

Det är en taligenkänning och syntesserver för talautomatisering.

Steg 5: Hur fungerar det egentligen?

1. Ljudvågor upptäcks då det fångar upp dessa vågor och förstärks av Sparkfun Electret Breakout -kort.

2. Den förstärkta signalen som uppnås från processen ovan kommer att digitaliseras och buffras/lagras i Arduino-kortet med dess analog-till-digital-omvandlare (ADC) som finns i den.

3. Ljudproverna kommer att tillhandahållas till BitVoicer Server med Arduino seriella port.

4. BitVoicer Server kommer att bearbeta ljudströmmen och sedan känna igen det tal det innehåller.

5. Det igenkända talet mappas till de kommandon som redan har definierats av sig själv tidigare, sedan skickas det tillbaka till Arduino. Om ett av kommandona består av att syntetisera tal, kommer BitVoicer Server att förbereda ljudströmmen och skicka den till Arduino.

6. Arduino kommer att identifiera kommandona som tillhandahålls och utföra vissa lämpliga åtgärder. Om en ljudström tas emot kommer den att köas in i BVS -högtalarklassen och spelas upp med DUE DAC och DMA.

7. SparkFun Mono Audio Amplifier förstärker DAC -signalen så att den kan driva en 8 Ohm högtalare och kan höras genom den.

Steg 6: Anslutning av komponenterna

Anslutning av komponenterna
Anslutning av komponenterna
Anslutning av komponenterna
Anslutning av komponenterna

Det allra första steget är att kabla olika komponenter i brödbrädan och även med arduino -brädet som visas på bilden

Kom ihåg att arduino -kortet som används här är DUE, det finns olika andra modeller som har tillverkats av Arduino som fungerar på olika spänningsnivåer

De flesta Arduino -kort fungerar vid 5 V, men DUE körs på 3,3 V

DUE använder redan en 3,3 V analog referens så att du inte behöver en bygel till AREF -stiftet

Åh förlåt, jag glömde säga att en AREF -pin är en "ANALOG REFERENCE PIN" som finns i en arduino -tavla som visas i nästa figur (Det är en arduino UNO men den liknar på liknande webbplats i fallet DUE)

AREF-stiftet på DUE är anslutet till mikrostyrenheten via en motståndsbrygga

För att använda AREF-stiftet måste motstånd R1 avlödas från kretskortet [kretskort]

Steg 7: Ge kod till Arduino -styrelsen

Tillhandahåller kod till Arduino Board
Tillhandahåller kod till Arduino Board

Så vi måste ladda upp koden till Arduino Board, så att den kan fungera beroende på instruktionerna i koden.

Det är väldigt enkelt att göra detta. Jag kommer att förklara var och en av dem i detalj, vad de gör och hur de fungerar.

Hur installerar jag ett bibliotek?

Så innan det måste vi veta hur vi installerar BitVoicer Server -bibliotek i Arduino IDE,. Som på arduino -programvaran.

Så för det öppna Arduino IDE

Klicka på "Sketch" på den övre panelen

Klicka sedan på "Inkludera bibliotek"

Klicka på "Hantera bibliotek"

Sedan öppnar bibliotekschefen och vi kan se en lista över bibliotek som är redo för installation eller de som redan har installerats

Sök efter biblioteket som ska installeras och välj sedan versionsnummer

Här installerar vi BitVoicer Server -bibliotek, vilket är nödvändigt för detta projekt

Hur importerar jag ett.zip -bibliotek?

Bibliotek kan också distribueras som en ZIP -fil eller mapp

Namnet på mappen är bibliotekets namn

Inne i mappen kommer en.cpp -fil, en.h -fil och ofta en keywords.txt -fil, exempelmapp och andra filer som krävs av biblioteket

Från version 1.0.5 av Arduino IDE kan du installera tredjepartsbibliotek inuti det

Packa inte upp det nedladdade biblioteket, låt det vara som det är

Gå till skiss> Inkludera bibliotek> Lägg till.zip -bibliotek

Välj platsen för.zip -filen och öppna den.

Återgå till menyn Sketch> Import Library.

Om det är korrekt importerat ska det biblioteket ses längst ned i rullgardinsmenyn när du navigerar.

Steg 8: Programmera/skissa

Detta är programmet som måste laddas upp i Arduino.

Det kan göras helt enkelt genom att ansluta Arduino -kortet till datorn och ladda upp det till kortet.

Steg 9: Hur är det med koderna som skrivits?

Låt oss nu titta på vad var och en av funktionerna som skrivs i koden faktiskt gör ………….

Biblioteksreferenser och variabeldeklaration

Innan vi pratar om detta måste vi känna till och förstå några grundläggande terminologier, inklusive:

  • BVSP

    Det är ett bibliotek som ger oss nästan alla resurser som krävs för att utbyta information med BitVoicer Server

    Det finns ett protokoll som är känt som BitVoicer Server Protocol som implementeras genom BVSP -klassen. Detta krävs för att interagera med servern

  • BVSMic

    Det är ett bibliotek som implementerar alla saker som krävs för att spela in ljudet med hjälp av Analog-to-Digital Converter (ADC) på Arduino

    Detta ljud lagras i klassens interna buffert och de kan hämtas och sedan kan det skickas till taligenkänningsmotorerna som är tillgängliga på BitVoicer Server

  • BVS -högtalare

    Det är ett bibliotek som innehåller alla nödvändiga resurser som krävs för att återge ljudströmmar som skickas ut från BitVoicer -servern

    För det måste Arduino-kortet ha en inbyggd Digital-to-Analog Converter (DAC)

    Arduino DUE är det enda Arduino -kortet som har en integrerad DAC

BVSP, BVSMic, BVSSpeaker och DAC bibliotek, referensen till dessa skrivs på de fyra första raderna som utgör programmets stirring

När du installerar BitVoicer Server kan du hitta BitSophia som tillhandahåller alla dessa fyra bibliotek

När användaren lägger till en referens till BVSSpeaker -biblioteket aktiveras DAC -biblioteket som tidigare nämnts automatiskt

BVSP -klassen används för att kommunicera med BitVoicer Server

BVSMic -klassen används för att fånga och lagra ljud

BVSSpeaker -klass används för att återge ljud med Arduino DUE DAC

2. inställningsfunktion

Installationsfunktionen används för att utföra vissa åtgärder som:

För att ställa in stiftlägen och deras ursprungliga tillstånd

För att initiera seriell kommunikation

För att initiera BVSP -klass

För att initiera BVSMic -klassen

För att initiera BVSSpeaker -klass

Det ställer också in "händelsehanterare" (funktionspekare) för frameReceived, modeChanged och streamMottagna händelser i BVSP -klassen

Steg 10: Loop -funktion

Det genomför fem stora operationer:

1. keepAlive () -funktion

Denna funktion är att be servern om statusinformation.

2. ta emot () -funktionen

Denna funktion är att kontrollera om servern har skickat ut data eller inte. Om servern skickat data kommer den att behandla den.

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

Dessa funktioner används för att styra de olika inställningarna för inspelning av ljudet och efter det att det uppnår ljudet skickas det detta ljudet till BitVoicer -servern.

4. play () -funktion

Denna funktion används för att spela upp ljud som har köats i BVSSpeaker -klass.

5. playNextLEDNote ()

Denna funktion används för att styra hur LED: n ska blinka.

6. BVSP_frameMottagen funktion

Denna funktion kallas varje gång när mottagningsfunktionen () börjar identifiera att en komplett ram har mottagits. Här kör vi kommandona som erhållits från BitVoicer Server. Kommandona som styr blinkande lysdioder är 2 byte. I den första byten anger stiftet och andra byte indikerar stiftvärde. Här använder vi funktionen analogWrite () för att ställa in rätt värde till stiftet. Vid den tiden måste vi också kontrollera om kommandot playLEDNotes, som är av Byte -typ, har tagits emot. Om den har tagits emot ställer jag in playLEDNotes på true och den övervakar och markerar den aktuella tiden. Denna tid kommer att användas av playNextLEDNote -funktionen för att synkronisera lysdioderna med låten.

7. BVSP_modeChanged -funktion

Denna funktion anropas varje gång när mottagningsfunktionen () identifierar en förändring av läget i utgående riktning (Server Arduino). BitVoicer Server kan skicka inramade data eller ljud till Arduino. Innan kommunikationen går från ett läge till ett annat skickar BitVoicer Server en signal. BVSP -klassen identifierar denna signal och lyfter eller flaggar modeChanged -händelsen. I funktionen BVSP_modeChanged, om användaren upptäcker att kommunikationen går från strömläge till bildläge, kommer han/hon att veta att ljudet har slutat så att användaren kan berätta för BVSSpeaker -klassen att sluta spela ljud.

8. BVSP_streamMottagen funktion

Denna funktion anropas varje gång när mottagningsfunktionen () identifierar att ljudprover har tagits emot. Det hämtar helt enkelt ljudet och köar dem i BVSSpeaker -klassen så att play () -funktionen kan återge dem.

9. playNextLEDNote -funktion

Denna funktion körs bara om funktionen BVSP_frameReceived identifierar kommandot playLEDNotes. Den styr och synkroniserar lysdioderna med ljudet som skickas från BitVoicer Server. För att synkronisera lysdioderna med ljudet och veta rätt tidpunkt kan en gratis programvara Sonic Visualizer användas. Det låter oss titta på ljudvågorna så att personen kan se när en pianotangent trycktes.

Steg 11: Hur importerar jag BitVoicer Server Solution Objects?

Vi har nu ställt in den uppförda BitVoicer Server för att arbeta med Arduino.

Det finns fyra huvudlösningsobjekt för en BitVoicer -server: Platser, enheter, BinaryData och röstscheman.

Låt oss titta närmare på dessa:

Platser

Det representerar den fysiska platsen där enheten installeras.

Vi kan skapa en plats som heter Hem.

Enheter

De anses vara klienterna för BitVoicer Server.

Precis som att skapa en plats kan vi skapa en blandad enhet, för enkelhetens skull, låt oss kalla den ArduinoDUE.

Ibland kan vissa buffertflöden hända så för att eliminera det var jag tvungen att begränsa datahastigheten i kommunikationsinställningarna till 8000 prover per sekund.

BinaryData är en typ av kommando som BitVoicer Server kan skicka till klientenheter. De är faktiskt byte -matriser som du kan länka till kommandon.

När BitVoicer Server känner igen tal relaterat till det kommandot skickar det byte -arrayen till målenheten.

Så av den anledningen har jag skapat ett BinaryData -objekt till varje pinvärde och kallat dem ArduinoDUEGreenLedOn, ArduinoDUEGreenLedOff och så vidare.

Så jag var tvungen att skapa 18 BinaryData -objekt, så jag föreslår att du laddar ner och importerar objekten från filen VoiceSchema.sof som finns nedan.

Så vad är ett röstschema?

Röstscheman är där allt går ihop. deras viktigaste roll är att definiera hur meningarna ska erkännas och vad alla kommandon behöver köras.

För varje mening kan du definiera så många kommandon du behöver och den ordning de kommer att utföras.

Du kan också definiera förseningar mellan var och en av kommandona.

BitVoicer Server stöder endast 8-bitars mono PCM-ljud (8000 samplingar per sekund) så det kommer att bli ett behov av att konvertera ljudfilen till detta format, det finns så många online-konverteringsavgifter som finns idag och jag rekommenderar https://audio.online -convert.com/convert-to-wav.

Du kan importera (importera lösningsobjekt) alla lösningsobjekt som jag använde i detta projekt från filerna nedan.

En av dem innehåller DUE -enheten och den andra innehåller röstschemat och dess kommandon.

Steg 12: Slutsats

Varsågod !!!!

Du har gjort ett fantastiskt projekt och du kan prata med det

Så börja prata …………

Du kan blinka upp lysdioderna och samtidigt kan du säga att den sjunger en låt om den behöver, dess kod har redan angetts

Så jag har slutfört min andra instruerbara !!!!!!!!!

Ja……

Jag tror att alla förstod det …

Om någon har några frågor är du välkommen att fråga mig

Jag kommer med en utmärkt instruerbar nästa gång …

Hejdå…

Ses snart……………

Rekommenderad: