Taligenkänning med Arduino



i detta projekt jag använder Bitvoicers funktioner för taligenkänning (http://www.bitsophia.com/BitVoicer.aspx), en Arduino ombord och en Elektret mikrofon (https://www.sparkfun.com/products/9964) för att kontrollera några lysdioder.

Detta projekt är liknande den i min första post (), men nu jag använda audio streaming för att skicka ljud till BitVoicer.

Fritzing schemat jag lagt till detta instructable visar hur jag trådbundna min Arduino ombord.

Jag lägger också ett par bilder och en YouTube-video av projektet körs.

Skissen jag skrev för min första post stöds tyvärr inte längre av den nya versionen av BitVoicer. Här är den nya skissen:

#include < BitVoicer11.h >

Instansierar klassen BitVoicerSerial
BitVoicerSerial bvSerial = BitVoicerSerial();

Butiker sant om den Audio Streaming kalibreringsverktyg
kör
booleska sampleTest = false;
Lagrar datatypen Hämtad av getData()
Datatypen byte = 0;
Ställer in stift och standard variabler
int pinR = 3;
int pinY = 5;
int pinG = 6;
int lightLevel = 0;

void setup()
{
Anger den analoga hänvisningen till externa (AREF stift)
VARNING! Om något är ansluten till AREF stift,
den här funktionen måste anropas först. Annars kommer det att
skada i styrelsen.
bvSerial.setAnalogReference(BV_EXTERNAL);
Ställer in mikrokontroller för att utföra snabbare analoga läsningar
på angivna PIN-koden
bvSerial.setAudioInput(0);
Börjar seriell kommunikation på 115200 bps
Serial.BEGIN(115200);
Ställer in pinModes
pinMode (pinR, produktionen);
pinMode (pinY, utgång);
pinMode (pinG, utgång);
}

void loop()
{
Fångar upp ljud och skickar den till BitVoicer om ljud
Streaming kalibreringsverktyg är igång
om (sampleTest == true)
{
Värdet skickas till funktionen är tiden
(i mikrosekunder) som har funktionen att vänta innan
utför behandlingen. Det är för att uppnå om
8000 mätvärden per sekund.
bvSerial.processAudio(46);
}

Fångar upp ljud och skickar den till BitVoicer om tal
Motorn är igång
om (bvSerial.engineRunning)
{
Värdet skickas till funktionen är tiden
(i mikrosekunder) som har funktionen att vänta innan
utför behandlingen. Det är för att uppnå om
8000 mätvärden per sekund.
bvSerial.processAudio(46);
}
}

Den här funktionen körs varje gång seriella data är tillgängliga
i den seriella bufferten efter en slinga
void serialEvent()
{
Läser den seriella buffert och lagrar den mottagna datatyp
Datatypen = bvSerial.getData();

Ändrar värdet för sampleTest om den mottagna datan var
kommandot starta/stoppa provtagning
om (datatyp == BV_COMMAND)
sampleTest = bvSerial.cmdData;

Signalerar Bitvoicers taligenkänningsmotorn att starta
lyssna på ljud strömmar efter engineRunning status
mottogs
om (datatyp == BV_STATUS & & bvSerial.engineRunning == true)
bvSerial.startStopListening();

Kontrollerar om datatypen är samma som den i den
Röst-Schema
om (datatyp == BV_STR)
setLEDs();
}

Utför de LED ändringarna beroende på värdet i
bvSerial.strData
void setLEDs()
{
om (bvSerial.strData == "vakna")
{
digitalWrite (pinR, låg);
digitalWrite (pinY, låg);
digitalWrite (pinG, låg);
digitalWrite (pinR, hög);
digitalWrite (pinY, hög);
digitalWrite (pinG, hög);
Delay(200);
digitalWrite (pinR, låg);
digitalWrite (pinY, låg);
digitalWrite (pinG, låg);
Delay(200);
digitalWrite (pinR, hög);
digitalWrite (pinY, hög);
digitalWrite (pinG, hög);
Delay(200);
digitalWrite (pinR, låg);
digitalWrite (pinY, låg);
digitalWrite (pinG, låg);
Delay(200);
digitalWrite (pinR, hög);
digitalWrite (pinY, hög);
digitalWrite (pinG, hög);
Delay(200);
digitalWrite (pinR, låg);
digitalWrite (pinY, låg);
digitalWrite (pinG, låg);
lightLevel = 0;
}
annat if (bvSerial.strData == "sömn")
{
digitalWrite (pinR, låg);
digitalWrite (pinY, låg);
digitalWrite (pinG, låg);
digitalWrite (pinR, hög);
digitalWrite (pinY, hög);
digitalWrite (pinG, hög);
Delay(200);
digitalWrite (pinR, låg);
digitalWrite (pinY, låg);
digitalWrite (pinG, låg);
Delay(200);
digitalWrite (pinR, hög);

digitalWrite (pinY, hög);
digitalWrite (pinG, hög);
Delay(200);
digitalWrite (pinR, låg);
digitalWrite (pinY, låg);
digitalWrite (pinG, låg);
lightLevel = 0;
}
annat if (bvSerial.strData == "RH")
{
digitalWrite (pinR, hög);
lightLevel = 255;
}
annat if (bvSerial.strData == "RL")
{
digitalWrite (pinR, låg);
lightLevel = 0;
}
annat if (bvSerial.strData == "YH")
{
digitalWrite (pinY, hög);
lightLevel = 255;
}
annat if (bvSerial.strData == "YL")
{
digitalWrite (pinY, låg);
lightLevel = 0;
}
annat if (bvSerial.strData == "GH")
{
digitalWrite (pinG, hög);
lightLevel = 255;
}
annat if (bvSerial.strData == "GL")
{
digitalWrite (pinG, låg);
lightLevel = 0;
}
annat if (bvSerial.strData == "ALLON")
{
digitalWrite (pinR, hög);
digitalWrite (pinY, hög);
digitalWrite (pinG, hög);
lightLevel = 255;
}
annat if (bvSerial.strData == "ALLOFF")
{
digitalWrite (pinR, låg);
digitalWrite (pinY, låg);
digitalWrite (pinG, låg);
lightLevel = 0;
}
annat if (bvSerial.strData == "ljusare")
{
om (lightLevel < 255)
{
lightLevel += 85.
analogWrite (pinR, lightLevel);
analogWrite (pinY, lightLevel);
analogWrite (pinG, lightLevel);
}
}
annat if (bvSerial.strData == "mörkare")
{
om (lightLevel > 0)
{
lightLevel-= 85.
analogWrite (pinR, lightLevel);
analogWrite (pinY, lightLevel);
analogWrite (pinG, lightLevel);
}
}
annat
{
bvSerial.startStopListening();
bvSerial.sendToBV ("fel:" + bvSerial.strData);
bvSerial.startStopListening();
}
}

BitVoicer röst schemat jag använt kan laddas ner från: http://www.justbuss.xpg.com.br/BitVoicerTest2.zip (du måste ha BitVoicer installerat för att kunna öppna den).

Nu vill jag kontrollera några saker (lampor och celling fläkt) hemma. Förslag är mycket välkomna.

Relaterade Ämnen

Trådlös Audio Streaming och taligenkänning med Arduino

i detta projekt jag ansluta min Arduino ombord till en WiFly modul (https://www.sparkfun.com/products/10822) från ambulerande nätverk och strömma ljud till datorn, så att BitVoicer (http://www.bitsophia.com/BitVoicer.aspx) kan utföra taligenkänning....

Taligenkänning med Arduino och BitVoicer Server

I detta Instructable ska jag visa hur man använder en Arduino ombord och BitVoicer Server för att kontrollera några lysdioder med röstkommandon. Jag kommer att använda Arduino Micro i detta Instructable, men du kan använda en Arduino ombord du har ti...

Arduino röst / taligenkänning med Geeetech modul [Tutorial]

Hur till: Arduino röst / taligenkänning med Geeetech modul [Tutorial]. Denna video visar dig hur man talar med din Arduino med (billigt) Geeetech röst kontrollmodulen. Du kan sedan använda koden kontrollerar en motor eller göra röststyrda lampor. Det...

Taligenkänning med BitVoicer och Arduino

det huvudsakliga målet med detta projekt var att testa tal erkännande prestanda för BitVoicer (http://www.bitsophia.com/BitVoicer.aspx). För detta ändamål designade jag en enkel led kontroll skiss som jag integrerat med BitVoicer. Naturligtvis kan du...

Att bygga en spänningsregulator och mäta växelspänning med arduino

AC-spänning mätt använder en micro controller är en ganska svår uppgift som vågen blir lätt snedvrids på grund av talrika buller i miljön. Därför för lämplig konstruktion av hårdvara är mycket nödvändigt. En spänningsregulator är utformat för att aut...

Röst aktiverat LED-belysning med Arduino

Detta projekt är ett tillägg för taligenkänning med Arduino med leandro4b (). Men istället för att använda 3 separata färgade lysdioder, använde jag en multicolor 4-kanals RGBW LED utsläppskälla. Jag hade tillfälle att arbeta på LED Engin förra somma...

Röst till Arduino: Kontroll lysdioder med hjälp av taligenkänning MIT

Hej, alla!!! Det har varit en tid jag inte hade uppdaterat mitt inlägg här. Idag vill jag dela med er killar ett experiment jag gjorde. Jag kommer att kontrollera lysdioder med MIT app inventor taligenkänning. Åh innan jag glömmer, hade jag också sta...

Röst kontroll Arduino med taligenkänning i Windows 7 är

Först, jag är ledsen för stavning eller grammatik misstag som du kan hitta här, eftersom engelska inte är mitt modersmål.Jag gjorde detta instructable eftersom jag inte har sett en som fokuserar på detta ämne, så jag ville dela denna metod. Denna met...

Taligenkänning och syntes med Arduino

I min tidigare Instructable visade jag hur man styr ett par lysdioder med en Arduino ombord och BitVoicer Server. I detta Instructable ska jag göra saker lite mer komplicerat. Jag kommer också att syntetisera tal med Arduino DUEdigital till analog om...

Ansiktsigenkänning och spårning med Arduino och OpenCV

uppdateringar20 feb 2013: Som svar på en fråga från student Hala Abuhasna om du vill använda klassen .NET seriell, använda namnkonventionen "\\\.\\COMn" och ersätt n med en nummer > 9 definiera com-porten för COM-portar över 9 som COM10, COM1...

Taligenkänning Animatronic talande träd - del 2 -

om du har följt tillsammans med min första Instructable, Animatronic talar julgran, jag visade dig hur du ta ett konstgjort träd, lägga till några servon och en Arduino, ansluta den till en bearbetning skiss på datorn och få honom att prata och anime...

2WD röst kontrollerat Robot med Arduino och BitVoicer Server

I detta Instructable ska jag visa hur man bygger en 2WD röststyrd robot. Även om jag kontrollera endast DC motorer om du vill flytta roboten, samma tillvägagångssätt kan användas till röststyrning stegmotorer och servomotorer, så om du planerar att b...

AtoZ av RC hobby + DIY radio med ARDUINO

Wikipedia definierar RC-fordon somEn fjärrkontroll fordon är några fordon som kontrolleras distans ett sätt som inte begränsar sin rörelse med ett yttre ursprung till enheten. Detta är ofta en radio kontroll enhet, kabel mellan kontroll och fordon, e...

En svävar sfär roterar lyser och blinkar med Arduino

En svävar lite Dödsstjärnan i Instructables bjöd in mig till det nya projektet med Arduino. Tre principer var beslutat och höll för att skilja den från föregångaren.Gör det själv med någon (eller mindre) färdiga.Hålla roterande.Göra glöd och blinka u...

Trådlös, hinder upptäcka, pipa roboten med Arduinos!

Detta är ett trådlöst styrd, autonoma hinder upptäcka robot!För ett tag sedan jag hade gjort detta Instructable och ville göra några stora uppgraderingar sedan dess.Följande är robotens funktioner:-1.he är trådlöst kontrollerade med 433 MHz Tx/Rx mod...

Trafiksignal / bromsljus ledningar med Arduino Controller

jag alltid velat ha en gammal trafiksignal och slutligen fick en nyligen. Det var dock mycket enkelt fast så att alla lampor var fast på. Vad kul är det? Jag ville prova en Arduino styrenhet och trodde detta skulle vara ett trevligt enkelt projekt at...

Styra en kackerlacka med Arduino för under $30

För några år sedan jag såg bakgård hjärnor smartphone kontrollerad kackerlacka, och det blåste bara mitt sinne! Jag försökte få min mamma att låta mig köpa den, men omnämnandet av kackerlackor övertygade henne annars. :) Jag började göra projekt med...

Ren binär LED väggklocka med Arduino

Min binära Väggklocka är inspirerad från många binära klockor jag hittade på InstructablesLänkar:Lilypad Arduino klocka:Binär klocka:Plus några andra binär klocka instructables.Men...Vad jag fann saknas i dem var omfattningen och storleken på display...

En 15-LED RGB klocka med Arduino kärna

RGB klockan använder RGB sammansättning-färgmodellen används i alla färgskärmar. Denna modell använder tre "grundläggande" färger, nämligen röda, gröna och blå, för att bygga någon annan "sammansatta" färg av spektrumet. Med RGB klocka...