Spraakherkenning met Arduino en BitVoicer Server (2 / 4 stap)

Stap 2: De code uploaden naar de Arduino

Nu heb je de onderstaande code uploaden naar je Arduino. U kunt ook de Arduino schets downloaden via de link onderaan de pagina. Voordat u de code uploaden, moet u goed de BitVoicer Server bibliotheken installeren in de Arduino IDE (een .zip bibliotheek importeren).

 #include <BVSP.h> #include <BVSMic.h> // Defines the Arduino pin that will be used to capture audio #define BVSM_AUDIO_INPUT 5 // Defines the LED pins #define RED_LED_PIN 6 #define YELLOW_LED_PIN 9 #define GREEN_LED_PIN 10 // Defines the constants that will be passed as parameters to // the BVSP.begin function const unsigned long STATUS_REQUEST_TIMEOUT = 1000; const unsigned long STATUS_REQUEST_INTERVAL = 2000; // Defines the size of the audio buffer const int AUDIO_BUFFER_SIZE = 64; // Defines the size of the receive buffer const int RECEIVE_BUFFER_SIZE = 2; // Initializes a new global instance of the BVSP class BVSP bvsp = BVSP(); // Initializes a new global instance of the BVSMic class BVSMic bvsm = BVSMic(); // Creates a buffer that will be used to read recorded samples // from the BVSMic class byte audioBuffer[AUDIO_BUFFER_SIZE]; // Creates a buffer that will be used to read the commands sent // from BitVoicer Server. // Byte 0 = pin number // Byte 1 = pin value byte receiveBuffer[RECEIVE_BUFFER_SIZE]; void setup() { // Sets up the pin modes pinMode(RED_LED_PIN, OUTPUT); pinMode(YELLOW_LED_PIN, OUTPUT); pinMode(GREEN_LED_PIN, OUTPUT); // Starts serial communication at 115200 bps Serial.begin(115200); // Sets the Arduino serial port that will be used for // communication, how long it will take before a status request // times out and how often status requests should be sent to // BitVoicer Server. bvsp.begin(Serial, STATUS_REQUEST_TIMEOUT, STATUS_REQUEST_INTERVAL); // Defines the function that will handle the frameReceived // event bvsp.frameReceived = BVSP_frameReceived; // Prepares the BVSMic class timer bvsm.begin(); } void loop() { // Checks if the status request interval has elapsed and if it // has, sends a status request to BitVoicer Server bvsp.keepAlive(); // Checks if there is data available at the serial port buffer // and processes its content according to the specifications // of the BitVoicer Server Protocol bvsp.receive(); // Checks if there is one SRE available. If there is one, // starts recording. if (bvsp.isSREAvailable()) { // If the BVSMic class is not recording, sets up the audio // input and starts recording if (!bvsm.isRecording) { bvsm.setAudioInput(BVSM_AUDIO_INPUT, EXTERNAL); bvsm.startRecording(); } // Checks if the BVSMic class has available samples if (bvsm.available) { // Makes sure the inbound mode is STREAM_MODE before // transmitting the stream if (bvsp.inboundMode == FRAMED_MODE) bvsp.setInboundMode(STREAM_MODE); // Reads the audio samples from the BVSMic class int bytesRead = bvsm.read(audioBuffer, AUDIO_BUFFER_SIZE); // Sends the audio stream to BitVoicer Server bvsp.sendStream(audioBuffer, bytesRead); } } else { // No SRE is available. If the BVSMic class is recording, // stops it. if (bvsm.isRecording) bvsm.stopRecording(); } } // Handles the frameReceived event void BVSP_frameReceived(byte dataType, int payloadSize) { // Checks if the received frame contains binary data // 0x07 = Binary data (byte array) if (dataType == DATA_TYPE_BINARY) { // If 2 bytes were received, process the command if (bvsp.getReceivedBytes(receiveBuffer, RECEIVE_BUFFER_SIZE) == RECEIVE_BUFFER_SIZE) { analogWrite(receiveBuffer[0], receiveBuffer[1]); } } } 

Deze sketch heeft vier grote delen:

  • Bibliotheek verwijzingen en variabele verklaring: de eerste twee regels bevatten verwijzingen naar de BVSP en BVSMic bibliotheken. Deze bibliotheken worden geleverd door BitSophia en kunnen worden gevonden in de BitVoicer Server-installatiemap. De andere lijnen verklaar constanten en variabelen in de sketch gebruikt. De klasse BVSP wordt gebruikt om te communiceren met de Server van de BitVoicer en de klasse BVSMic wordt gebruikt om te vangen en opslaan van audio-samples.
  • Setup-functie: deze functie initialiseert de seriële communicatie, de klasse van de BVSP, de BVSMic klasse en zet de "gebeurtenis-handler" (het is eigenlijk een functiepointer) voor de gebeurtenis frameReceived.
  • Lus functie: deze functie voert drie belangrijke acties: vraagt status info naar de server (keepAlive()-functie), controleert of de server geen gegevens heeft verzonden en de ontvangen gegevens (receive() functie verwerkt), en regelt de opname en het verzenden van audio-streams (isSREAvailable(), startRecording(), stopRecording() en sendStream() functies);
  • BVSP_frameReceived functie: deze functie wordt aangeroepen telkens wanneer de receive() functie identificeert die een volledige frame is ontvangen. Hier voer ik de opdracht vanaf BitVoicer Server verzonden. De opdracht bevat 2 bytes. De eerste byte geeft de pin en de tweede byte geeft de waarde van de pin. Ik gebruik de functie analogWrite() om de juiste waarde ingesteld op de pin.

Gerelateerde Artikelen

2WD stem gecontroleerde Robot met Arduino en BitVoicer Server

2WD stem gecontroleerde Robot met Arduino en BitVoicer Server

In dit Instructable ga ik tonen hoe te om een 2WD spraakgestuurde robot te bouwen. Hoewel ik ben alleen gelijkstroommotoren als wilt verplaatsen de robot controle, dezelfde aanpak kan worden gebruikt voor de controle van de stem stappenmotoren en ser
Spraakherkenning met Arduino

Spraakherkenning met Arduino

In dit project ik gebruik BitVoicer van functies voor spraakherkenning (http://www.bitsophia.com/BitVoicer.aspx), een Arduino board en één electret microfoon (https://www.sparkfun.com/products/9964) om een paar LEDs.Dit project is vergelijkbaar met h
Draadloos Audio Streaming en spraakherkenning met Arduino

Draadloos Audio Streaming en spraakherkenning met Arduino

In dit project ik verbinden met mijn Arduino Board een WiFly module (https://www.sparkfun.com/products/10822) van Roving meetnetten en streamen van audio naar de PC, zodat BitVoicer (http://www.bitsophia.com/BitVoicer.aspx) van spraakherkenning uitvo
Spraakherkenning en -synthese met Arduino

Spraakherkenning en -synthese met Arduino

In mijn vorige Instructable toonde ik hoe om te controleren enkele LED's met behulp van een Arduino board en de BitVoicer Server. In dit Instructable ga ik om dingen een beetje ingewikkelder te maken. Ik ben ook gaan te synthetiseren toespraak met be
Voice Activated LED-verlichting met Arduino

Voice Activated LED-verlichting met Arduino

Dit project is een uitbreiding van de mogelijkheden van spraakherkenning met Arduino met leandro4b (). Echter, in plaats van met 3 afzonderlijke gekleurde LED's, gebruikte ik een multicolor 4-kanaals RGBW LED Emitter. Ik had de kans van het werken bi
Domotica met Arduino... En JavaScript!

Domotica met Arduino... En JavaScript!

In dit instructable (mijn eerste een eigenlijk), ik zal u begeleiden om te maken van automatisering in uw huis met Arduino, ja, niet zo nieuw... Maar wij zullen ook omvatten JavaScript, met behulp van Node.js en een awesome bibliotheek om te interage
Controle twee LEDS met een Arduino en bitVoicer

Controle twee LEDS met een Arduino en bitVoicer

Dus wat ik wil doen hier verschillende dingen doen met twee LED's met spraakherkenningIk ben met behulp van bitvoicer kunt u het hierStap 1: Deel lijstDus ik doe dit met als kleine delen als ik kan, is hier de lijst:Groene LEDRode LEDBreadboard1k wee
Ongebonden van spraakherkenning en spraaksynthese met Arduino

Ongebonden van spraakherkenning en spraaksynthese met Arduino

MOVI staat voor 'Mijn eigen Interface van de stem' en is een kickstarter-backed Arduino schild dat maakt het zeer eenvoudig om te bouwen van uw eigen toespraak dialogen aan controle-apparaten binnen de Arduino IDE. Dit instructable snel ziet u hoe aa
Arduino stem / spraakherkenning met Geeetech Module [Tutorial]

Arduino stem / spraakherkenning met Geeetech Module [Tutorial]

How to: Arduino stem / spraakherkenning met Geeetech Module [Tutorial]. Deze video zal u tonen hoe om te praten met je Arduino met het (goedkope) Besturingsmodule voor Geeetech stem. Vervolgens kunt u de code te controleren van een motor of stem geco
DIY Bluetooth telefoon gecontroleerd BB-8 Droid met Arduino UNO

DIY Bluetooth telefoon gecontroleerd BB-8 Droid met Arduino UNO

Ik ben een grote fan van Star Wars en toen zag ik de Star Wars: The Force ontwaakt dacht ik dat ik behoefte aan een BB-8 droid. Het was geweldig hoe dit kleine gebied verplaatst in de film. Dus heb ik besloten dat ik moet dit droid die is gebaseerd o
IPhone universele afstandsbediening Learing met Arduino

IPhone universele afstandsbediening Learing met Arduino

Hallo, en welkom op mijn eerste Instructable.Ik weet niet over u, maar ik kan de afstandsbediening nooit vinden voor mijn TV. Het altijd lijkt te verdwijnen wanneer ik het nodig hebt en vervolgens alleen opduikt dagen later ingeklemd in de Bank door
Bouw je Robot Internet gecontroleerde Video-Streaming met Arduino en Raspberry Pi

Bouw je Robot Internet gecontroleerde Video-Streaming met Arduino en Raspberry Pi

< the Instructable en de code zijn klaar. Geniet van! Laat een reactie met je feedback! >Ik ben (aka LiquidCrystalDisplay / Itay), een 14 jaar oude student van Israël leren in de Max Shein Junior High School voor geavanceerde wetenschap en wiskunde.
Hoe maak je een mobiele telefoon en Computer gecontroleerd 3D gedrukte Robot met Arduino - IoBot.

Hoe maak je een mobiele telefoon en Computer gecontroleerd 3D gedrukte Robot met Arduino - IoBot.

Als u op zoek bent naar een manier om een Arduino gebaseerde apparaten te controleren, zal deze instructie u tonen hoe om het te doen door het bouwen van eenvoudige robot.De IoBot kan worden gecontroleerd door mobiel en computer toepassing via LAN of
Slimme persoonlijke Thermometer met Arduino

Slimme persoonlijke Thermometer met Arduino

Dit instructable is opgesteld als onderdeel van onze opdracht voor TfCD (technologie voor conceptontwerp) cursus bij TU Delft. De volgende instructable wordt bereid door:Bo Koperdraat: 4209567Karthik Mahadevan: 4501578In dit instructable leert u hoe