Taligenkänning med Arduino och BitVoicer Server (2 / 4 steg)

Steg 2: Ladda upp koden till Arduino

Nu måste du ladda upp koden nedan till din Arduino. Du kan också hämta den Arduino skissen från länken längst ner på sidan. Innan du överför koden, måste du installera korrekt BitVoicer Server biblioteken i Arduino IDE (Importera .zip bibliotek).

#include < BVSP.h >
#include < BVSMic.h >

Definierar den Arduino PIN-kod som används för att spela in ljud
#define BVSM_AUDIO_INPUT 5

Definierar de LED stift
#define RED_LED_PIN 6
#define YELLOW_LED_PIN 9
#define GREEN_LED_PIN 10

Definierar de konstanter som ska skickas som parametrar till
funktionen BVSP.begin
CONST osignerade långa STATUS_REQUEST_TIMEOUT = 1000;
CONST osignerade långa STATUS_REQUEST_INTERVAL = 2000.

Definierar storleken på bufferten som ljud
CONST int AUDIO_BUFFER_SIZE = 64;

Definierar storleken på mottagningsbufferten
CONST int RECEIVE_BUFFER_SIZE = 2;

Initierar en ny global instans av klassen BVSP
BVSP bvsp = BVSP();

Initierar en ny global instans av klassen BVSMic
BVSMic bvsm = BVSMic();

Skapar en buffert som används för att läsa registrerade värden
från klassen BVSMic
byte audioBuffer [AUDIO_BUFFER_SIZE];

Skapar en buffert som används för att läsa kommandon skickas
från BitVoicer Server.
Byte 0 = pin-kod
Byte 1 = pin värde
byte receiveBuffer [RECEIVE_BUFFER_SIZE];

void setup()
{
Ställer in pin lägen
pinMode (RED_LED_PIN, OUTPUT);
pinMode (YELLOW_LED_PIN, OUTPUT);
pinMode (GREEN_LED_PIN, OUTPUT);

Börjar seriell kommunikation på 115200 bps
Serial.BEGIN(115200);

Ställer Arduino seriell port som ska användas för
kommunikation, hur lång tid det tar innan en statusbegäran
gånger ut och hur ofta ska status förfrågningar skickas till
BitVoicer Server.
BVSP.BEGIN (serienummer, STATUS_REQUEST_TIMEOUT, STATUS_REQUEST_INTERVAL);

Definierar den funktion som kommer att hantera frameReceived
händelse
bvsp.frameReceived = BVSP_frameReceived;

Förbereder BVSMic klassen timer
bvsm.BEGIN();
}

void loop()
{
Kontrollerar om status begäran intervallet har förflutit och om det
har, skickar en statusbegäran till BitVoicer Server
bvsp.keepAlive();

Kontrollerar om det finns data på den seriella port buffert
och bearbetar dess innehåll enligt specifikationerna
för BitVoicer servern protokoll
BVSP.Receive();

Kontrollerar om det finns en SRE. Om sådan finns,
Starta inspelning.
om (bvsp.isSREAvailable())
{
Om klassen BVSMic inte spelar in, ställer in ljud
ingång och startar inspelning
om (! bvsm.isRecording)
{
bvsm.setAudioInput (BVSM_AUDIO_INPUT, yttre);
bvsm.startRecording();
}

Kontrollerar om klassen BVSMic har tillgängliga prover
om (bvsm.available)
{
Ser till att de inkommande läge är STREAM_MODE innan
överföring av dataströmmen
om (bvsp.inboundMode == FRAMED_MODE)
bvsp.setInboundMode(STREAM_MODE);

Läser de ljud proverna från klassen BVSMic
int bytesRead = bvsm.read (audioBuffer, AUDIO_BUFFER_SIZE);

Skickar ljudströmmen till BitVoicer Server
bvsp.sendStream (audioBuffer, bytesRead);
}
}
annat
{
Det finns ingen SRE. Om klassen BVSMic inspelning,
stannar den.
om (bvsm.isRecording)
bvsm.stopRecording();
}
}

Hanterar frameReceived händelsen
void BVSP_frameReceived (byte dataType, int payloadSize)
{
Kontrollerar om den mottagna ram innehåller binära data
0x07 = binära data (bytematris)
om (datatyp == DATA_TYPE_BINARY)
{
Om 2 byte var emot, behandla kommandot
om (bvsp.getReceivedBytes (receiveBuffer, RECEIVE_BUFFER_SIZE) ==
RECEIVE_BUFFER_SIZE)
{
analogWrite (receiveBuffer [0], receiveBuffer[1]);
}
}
}

Denna skiss har fyra huvuddelar:

  • Referenser bibliotek och variabeldeklaration: de två första raderna innehåller hänvisningar till den BVSP och BVSMic biblioteken. Dessa bibliotek kommer från BitSophia och finns i mappen BitVoicer Server installation. De övriga raderna deklarera konstanter och variabler som används i hela skissen. Klassen BVSP används för att kommunicera med BitVoicer Server och klassen BVSMic används för att fånga och lagra ljud prover.
  • Setup funktion: denna funktion initierar seriell kommunikation, klassen BVSP, BVSMic klass och uppsättningar av "händelsehanteraren" (det är faktiskt en funktionspekare) för händelsen frameReceived.
  • Loop funktion: denna funktion utför tre viktiga åtgärder: begär status information till servern (keepAlive() funktion), kontrollerar om servern har skickat några data och bearbetar den mottagna datan (receive() funktion), och kontrollerar inspelningen och sändning av ljudströmmar (isSREAvailable(), startRecording(), stopRecording() och sendStream() funktioner);
  • BVSP_frameReceived funktion: denna funktion kallas varje gång funktionen receive() anger att en komplett ram har mottagits. Här kör jag kommandot skickas från BitVoicer Server. Kommandot innehåller 2 byte. Den första byten anger PIN-koden och den andra byten anger pin värdet. Jag använder analogWrite() funktionen för att ange lämpligt värde till PIN-koden.
Se Steg
Relaterade Ämnen

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...

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

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...

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...

Multiplexering med Arduino och 74HC595

74HC595 är en lätt och billig (på cirka 60 cent styck) sätt att öka antalet digitala ut stiften på din Arduino. I denna tutorial ska jag visa dig hur man kör upp till 16 lysdioder med en 74HC595 med hjälp av en teknik som kallas multiplexing. I slutä...

Power övervakning med Arduino och logga in i Google blad

Sedan senaste veckorna tänkte jag på att göra ett projekt som kan hjälpa mig att hålla ett spår på min dagliga energi användningsområden. I detta projekt använder jag en 30A övervakning styrelse. denna styrelse har 6 strömsensor som kan läsa upp till...

Kontroll av en DC motor med Arduino och Visual Basic

Hej vänner detta är mitt första inlägg i instructables.com där jag kommer att försöka ge mer nyhet des ofta.Idag är temat med Arduino och Visual Basic.Det projekt som vi ser idag är controller en dc-motor med Arduino och Visual Basic.För att styra en...

Kapacitans mätare med arduino och 555 timer

KAPACITANS MÄTARE MED ARDUINO OCH 555 TIMER CHIPDetta projekt syftar till att bygga en enkel kapacitans mätare, en enhet för att mäta kapacitans i nanoFarads och microFarad, med en räckvidd på ca 1 nanoFarad till hundratals microFarads.Detta projekt,...

Mugg musik: Förvandla vatten till ett Instrument med Arduino och ChucK

Vad händer om du slå alla ledande yta till ett instrument? Gillar, säga... en mugg vatten? Bäst av allt, är det billigt; du behöver bara $1 värt extra elektriska komponenter (inte inklusive Arduino).För detta projekt, min vän skörd och jag kombinerad...

Säkerhetssystem och tillgång kontroll med Arduino och RFID-

säkerhetssystem och tillgång kontroll med Arduino och RFIDDetta projekt är en evolotuin av mitt första projekt kallat "Arduino - Security System och Access Control"Som ni kan se på bloggen http://arduinobymyself.blogspot.com.br/2012/03/arduino-s...

Hur använder gamla Stepper Motors med Arduino och A4988 Driver

Jag har varit med stegmotorer ett tag nu, och de är fantastiska för alla typer av robotic projekt.Idag kommer jag att dela de saker jag har lärt mig hittills om återanvända gamla stegmotorer bärgades från skrivare. Identifiera stegmotorerStegmotorer...

Roligt spel med arduino och bearbetning

Denna tutorial ska show dig hur man gör en första person FPS-shooter i bearbetning med hjälp av en arduino. Detta projekt lämnades till oss som en avslutande tentamen i en teknisk specialkurs, (gymnasieskolan).Video av projektet! :) (Svårt att spela...

Styra din Tv, Dvd och ljud system med Arduino och Android

Hej alla, detta är min andra instructable och min första på engelska, så, ledsen för misstag.Jag vill dela detta projekt det handlar om hur du kan styra din Tv, DVD och ljudanläggningen med Arduino och en app för Android med app inventor.Om du gillar...

Rörelseaktiverade ljus med Arduino och HC-SR04 sensor

Jag gjorde detta projekt för länge sedan att tända upp i köket när jag öppnar bakdörren.Tanken var när jag öppnar bakdörren, detta ljus som tänds under 15 sekunder och som ger mig tillräckligt med tid att nå strömbrytaren på den motsatta väggen. Före...

Kontrollera en LED med arduino och Wifly sköld

För att visa hur du kan styra enheter via wifi med hjälp av arduino wifly shield, kommer jag slå på och av en LED genom att skicka en http-begäran från webbläsaren till wifly sköld.Krav:1. Arduino uno2. Wifly sköld3. ledde4. 220 ohm motstånd5. ett pa...

Hur man styr motorer med Arduino och RC mottagare i 10 minuter

Detta är min andra handledning på att kontrollera saker med Arduino och R/C-mottagare. Om du inte har tittat på min första tutorial jag föreslår att du tittar på det första, här: i den här guiden kommer vi att titta på hur man styr motorer också anvä...

Styra DC Motors(PC Fans) med Arduino och Relay board

I detta instructable kommer vi att se utan att gå in i detalj, hur man använder 12V DC motorer (PC Fans) med Arduino och relay board eBlockSteg 1: Konfigurera maskinvara och programvara För att göra det behöver vi viss maskinvara kan du hitta på Inte...

Kontrollerar ledde med Arduino och C#

Hej vänner detta är min första Arduino Tutorial på att kontrollera ett LED med Arduino och C#-program.Du behöverArduinoen1K ResistorLEDProgramvaraArduino programvara - www.arduino.ccMicrosoft visual C# / Visual StudioLED är ansluten till Pin 13.Titta...

Kontrollera en RGB ledde med Arduino och bearbetning

detta instructable (min första inte mindre) visar hur man styr en RGB ledde med bearbetning och arduino.Den viktiga funktionen att vara färg markeras genom att klicka på en bild, RGB-värdet för den pixel du klickar på bearbetas och skickas till den a...