VeeaR EasyVR 3 User Manual

VeeaR EasyVR 3 User Manual

Multi-purpose speech recognition module designed to easily add versatile, robust and cost effective speech recognition capabilities to almost any application
Table of Contents

Advertisement

EasyVR 3
User Manual
Release 1.0.11
www.veear.eu

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the EasyVR 3 and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Summary of Contents for VeeaR EasyVR 3

  • Page 1 EasyVR 3 User Manual Release 1.0.11 www.veear.eu...
  • Page 2: Table Of Contents

    General Purpose I/O ..........................14 Flash Update ............................15 Quick start for using the module ........................16 EasyVR 3 as a Development Board ......................16 EasyVR Shield 3 for Arduino ........................18 Product description ............................18 EasyVR Shield 3 Features ........................18 Technical specifications ..........................
  • Page 3 Drawings and Schematics ........................68 Pin Description ............................68 Operating Conditions ..........................69 Electrical Characteristics ......................... 69 QuickStart Instructions ..........................69 Software Setup ............................69 Using the Adapter ............................ 69 How to get support ............................70 User Manual (1.0.11) EasyVR 3...
  • Page 4 Updated custom data screenshots and description  1.0.9 2015/04/02 Added chapter for QuickUSB adapter  1.0.10 2015/04/22 Updated mechanical drawing of module  1.0.11 2015/06/05 Added note about soldering headers  Removed old logo from drawings EasyVR 3 User Manual (1.0.11)
  • Page 5: Easyvr 3 Module

    The EasyVR 3 module can be used with any host with an UART interface powered at 3.3V – 5V, such as PIC and Arduino boards. Some application examples include home automation, such as voice controlled light switches, locks, curtains or kitchen appliances, or adding “hearing”...
  • Page 6: Technical Specifications

    The header J4 contains the main analog signals, such as microphone signals and amplified DAC outputs, which are also available on the internal right angle connectors J5 and J6. The module can also be operated through the programming connector J7 alone, by using the QuickUSB adapter/cable. EasyVR 3 User Manual (1.0.11)
  • Page 7: Pin Assignment

    Programming cable request to send (reset/boot RTS_P control) ● Programming cable ground ADAPTER 5V_P Programming cable 5V DC power output TX_P Programming cable serial data transmit CTS_P Programming cable clear to send (tied to ground) User Manual (1.0.11) EasyVR 3...
  • Page 8: Settings And Indicators

    Connector pitch and pin spacing (of outer strips J1-J4) 2.54 0.100 Connector pitch (of inner connectors J5-J7) 2.00 0.079 Headers horizontal spacing 22.86 0.900 Headers vertical spacing 20.32 0.800 Header vertical offset 3.81 0.150 Header horizontal offset 1.27 0.050 EasyVR 3 User Manual (1.0.11)
  • Page 9: Recommended Operating Conditions

    Input Current (0 < V < 3.3V) Input Current (0 < V < 5.5V) These are applicable to pin RST. Symbol Parameter Unit Input High Voltage Input Low Voltage Input Leakage Current (0 < V < 5.5V) µA User Manual (1.0.11) EasyVR 3...
  • Page 10: Serial Interface

    = -5 mA) Output Low Voltage (I = 8 mA) Serial Interface The EasyVR 3 communicates via an asynchronous serial interface (commonly known as UART interface), with the following features:  Baud Rate: 9600 (default), 19200, 38700, 57600, 115200 ...
  • Page 11: Microphone

    Microphone The microphone provided with the EasyVR 3 module is an omnidirectional electret condenser microphone (Horn EM9745P-382):  Sensitivity -38dB (0dB=1V/Pa @1KHz)  Load Impedance 2.2K  Operating Voltage 3V  Almost flat frequency response in the range 100Hz – 20kHz The microphone circuit is optimized for use at ARMS_LENGTH (default, about 60cm) or FAR_MIC distance settings.
  • Page 12 3. Insulation - The microphone should be acoustically isolated from the housing if possible. This can be accomplished by surrounding the microphone element with a spongy material such as rubber or foam. The provided microphone has this kind of insulating foam. The purpose is to prevent auditory EasyVR 3 User Manual (1.0.11)
  • Page 13: Audio Output

    (see appendix Error codes). Audio Output The EasyVR 3 audio output interface is capable of directly driving an 8Ω speaker. It can also be connected to an external audio amplifier to drive lower impedance loudspeakers.
  • Page 14: General Purpose I/O

    All the I/O pins are inputs with weak internal pull-up after power on or reset. You may also configure the pin to have a strong pull-up or no pull-up at all (see the example code Use general purpose I/O pins). EasyVR 3 User Manual (1.0.11)
  • Page 15: Flash Update

    It is safe to change XM level while the module is reset (RST low). Internal Pull-down Jumper Boot mode selection circuit To learn how to download new sound tables or custom grammars to your EasyVR 3 module, have a look at the section Using Custom Data. User Manual (1.0.11) EasyVR 3...
  • Page 16: Quick Start For Using The Module

    EasyVR 3 as a Development Board The QuickUSB serial adapter cable can be used to program voice commands and sound outputs into an EasyVR 3 module and quickly test it from your PC. Just connect the microphone and an 8Ω speaker to the module, plug-in the adapter cable and you are ready to go.
  • Page 17 5V_P Requirements) TX_P Adapter outputs can have 3.3V or 5V levels CTS_P CTS is tied to GND on the module Connector type is Hirose DF11 Series (female on the adapter cable, male on the module). User Manual (1.0.11) EasyVR 3...
  • Page 18: Easyvr Shield 3 For Arduino

    If your board does not have the IOREF pin but it is running at 3.3V, you can still operate the EasyVR Shield 3 correctly if you manually connect pins IOREF and 3V3 together, for example with a jumper wire. The board comes with separate Arduino stackable headers for the Shield interface. The EasyVR 3 module is also provided separately.
  • Page 19: Technical Specifications

    Technical specifications Board overview PROG MODE JUMPER AREF IOREF RESET 3.5mm JACK SPEAKER LINE OUT EASYVR AUDIO (Top View) TX – D13 D9 – TX RX – D12 D8 – RX (Detail – Bottom View) User Manual (1.0.11) EasyVR 3...
  • Page 20: Pin Assignment

    Use resistor to select Software Serial TX pin: 13 or 9 ● EASYVR General purpose I/O as found on the embedded EasyVR 3 module (referenced at the internal VDD logic level – see note below) GPIO Note: The General Purpose I/O lines (IO1-IO6) are at nominal 3.0VDC level. Do not connect...
  • Page 21: Software Serial Pins Settings

    EasyVR Shield. However those pins may also be used for the SPI interface, so another choice of pins 8-9 is provided. If you want to use different pins make sure the receiver pin supports change interrupts. User Manual (1.0.11) EasyVR 3...
  • Page 22: Quick Start Guide For Using The Shield

    3. Open the EasyVR Commander and select the Arduino serial port 4. While disconnected choose “Update Custom Data” from the “File” menu The Arduino library archive file can be found in the EasyVR Commander program folder. EasyVR 3 User Manual (1.0.11)
  • Page 23: With Arduino 2009 - Uno - Mega

    When the EasyVR Commander is connected, you can also generate a template code for Arduino, that will use the provided libraries (see EasyVR Arduino Library Documentation). All you need is to write actions for each recognized command. User Manual (1.0.11) EasyVR 3...
  • Page 24: Easyvr Programming

    If the host does not send all the required arguments of a command, the command is ignored by the module, without further notification, and the host can start sending another command. The module automatically goes to lowest power sleep mode after power on. To initiate communication, send any character to wake-up the module. EasyVR 3 User Manual (1.0.11)
  • Page 25: Arguments Mapping

    FIVE – ARG_ZERO = 5 # validity check IF ARG < ARG_MIN OR ARG > ARG_MAX THEN ERROR Just to make things clearer, here is a table showing how the argument mapping works: ASCII Value User Manual (1.0.11) EasyVR 3...
  • Page 26: Command Details

    Fixed to (-1) Distance settings (1-3): 1 = “headset” (around 5cm from speaker’s mouth) 2 = “arms length” (default setting, from about 50cm to 1m) 3 = “far mic” (up to around 3m) Expected replies: STS_SUCCESS EasyVR 3 User Manual (1.0.11)
  • Page 27 Group index (0 = trigger, 1-15 = generic, 16 = password) Position (0-31) Expected replies: STS_SUCCESS CMD_RECOG_SD 'd' (64h) Activate SD/SV recognition Group index (0 = trigger, 1-15 = generic, 16 = password) Expected replies: STS_RESULT, STS_SIMILAR, STS_TIMEOUT, STS_ERROR User Manual (1.0.11) EasyVR 3...
  • Page 28 Confirmation character Expected replies: STS_SUCCESS CMD_ID 'x' (78h) Request firmware identification Expected replies: STS_ID CMD_DELAY 'y' (79h) Set transmit delay Time (0-10 = 0-10 ms, 11-19 = 20-100 ms, 20-28 = 200-1000 ms) Expected replies: STS_SUCCESS EasyVR 3 User Manual (1.0.11)
  • Page 29 'h' (68h) Read custom and built-in grammars data Index of SI grammar to read (0-31) or (-1) to get the total count of SI grammars (including the first 4 built-in wordsets) Expected replies: STS_GRAMMAR, STS_COUNT User Manual (1.0.11) EasyVR 3...
  • Page 30 Rejection level (0-2 = higher values mean fewer results, 1 = default) Two positive values that form a 10-bit timeout for token detection (timeout = [3] * 32 + [4], 0 = [3-4] wait forever, 1-1023 = timeout in units of 27.46ms) Expected replies: STS_TOKEN, STS_TIMEOUT EasyVR 3 User Manual (1.0.11)
  • Page 31: Status Details

    Two positive values that form an 8-bit error code (error = [1] * 16 + [2], see appendix) In reply to: CMD_RECOG_SI, CMD_RECOG_SD, CMD_TRAIN_SD, CMD_PLAY_SX STS_INVALID 'v' (76h) Invalid command or argument In reply to: Any invalid command or argument STS_TIMEOUT 't' (74h) Timeout expired In reply to: CMD_RECOG_SI, CMD_RECOG_SD, CMD_TRAIN_SD User Manual (1.0.11) EasyVR 3...
  • Page 32 Two positive values that form a 10-bit count of entries in the sound table (count = [1] * 32 + [2]) Length of table name (0-31) [4-n] Text of table name (ASCII characters from 'A' to '`') In reply to: CMD_DUMP_SX EasyVR 3 User Manual (1.0.11)
  • Page 33 Detected a SonicNet token Two positive values that form the index of a received token (index = [1] * 32 + [2], 0-15 for 4-bit [1-2] tokens or 0-255 for 8-bits tokens) In reply to: CMD_RECV_SN User Manual (1.0.11) EasyVR 3...
  • Page 34: Communication Examples

    # set language for SI recognition (Japanese) SEND 'l' SEND 'C' IF RECEIVE = 'o' THEN OK ELSE ERROR # set timeout (5 seconds) SEND 'o' SEND 'F' IF RECEIVE = 'o' THEN OK ELSE ERROR EasyVR 3 User Manual (1.0.11)
  • Page 35: Recognition Of A Built-In Or Custom Si Command

    # encode each digit with a ^ prefix # followed by the digit mapped to upper case letters SEND '^' SEND 'C' SEND '^' SEND 'A' SEND '^' SEND 'A' SEND '^' SEND 'J' IF RECEIVE = 'o' THEN OK ELSE ERROR User Manual (1.0.11) EasyVR 3...
  • Page 36: Training An Sd Command

    SEND ' ' error = (RECEIVE – 'A') * 16 SEND ' ' error = error + (RECEIVE – 'A') # perform actions according to error ELSE # invalid request or reply ERROR END IF EasyVR 3 User Manual (1.0.11)
  • Page 37: Read Used Command Groups

    FOR i = 0 TO length - 1 SEND ' ' label[i] = RECEIVE # decode digits IF label[i] = '^' THEN SEND ' ' label[i] = RECEIVE – 'A' + '0' END IF NEXT User Manual (1.0.11) EasyVR 3...
  • Page 38: Use General Purpose I/O Pins

    SEND ' ' count = count + (RECEIVE – 'A') SEND ' ' length = RECEIVE – 'A' # read name text FOR i = 0 TO length - 1 SEND ' ' label[i] = RECEIVE NEXT EasyVR 3 User Manual (1.0.11)
  • Page 39: Built-In Command Sets

    五 five cinque fünf cinco cinq 六 roku sechs seis 七 seven sette nana sieben siete sept 八 hachi eight otto acht ocho huit 九 nine nove neun nueve neuf 十 dieci jyuu zehn diez User Manual (1.0.11) EasyVR 3...
  • Page 40: Error Codes

    (or data is generically invalid). The last code (80h) means that a word has been recognized that is not in the specified built-in sets. This is due to how Speaker Independent recognition works and should be ignored. EasyVR 3 User Manual (1.0.11)
  • Page 41: Protocol Header File

    0x41 #define ARG_ACK 0x20 // to read more status arguments #endif //PROTOCOL_H A better source of information and a reference protocol implementation for the C/C++ language and can be found in the Arduino Library source. User Manual (1.0.11) EasyVR 3...
  • Page 42: Easyvr Arduino Library

    Token maximum duration (in ms). The maximum time that is spent by the EasyVR module for sending a SonicNet token and reply. EasyVR Class Reference Public Types  enum ModuleId { VRBOT, EASYVR, EASYVR2, EASYVR2_3, EASYVR3 EasyVR 3 User Manual (1.0.11)
  • Page 43: Public Member Functions

    (int8_t grammar, uint8_t &flags, uint8_t &count)  bool getNextWordLabel (char *name)  void trainCommand (int8_t group, int8_t index)  void recognizeCommand (int8_t group)  void recognizeWord (int8_t wordset)  bool hasFinished  int8_t getCommand User Manual (1.0.11) EasyVR 3...
  • Page 44: Detailed Description

    Group Special group numbers for recognition of custom commands Enumerator TRIGGER The trigger group (shared with built-in trigger word) PASSWORD The password group (uses speaker verification technology) enum Wordset Index of built-in word sets Enumerator EasyVR 3 User Manual (1.0.11)
  • Page 45 WAKE_ON_2CLAPS Wake up on double hands-clap or any character received WAKE_ON_3CLAPS Wake up on triple hands-clap or any character received enum ClapSense Hands-clap sensitivity for wakeup from sleep mode. Use in combination with WAKE_ON_2CLAPS WAKE_ON_3CLAPS User Manual (1.0.11) EasyVR 3...
  • Page 46 Noise rejection level for SonicNet token detection (higher value, fewer results) Enumerator REJECTION_MIN Lowest noise rejection, highest sensitivity REJECTION_AVG Medium noise rejection, medium sensitivity REJECTION_MAX Highest noise rejection, lowest sensitivity enum ErrorCode Error codes used by various functions EasyVR 3 User Manual (1.0.11)
  • Page 47: Constructor & Destructor Documentation

    (Stream & Creates an EasyVR object, using a communication object implementing the #Stream interface (such as #HardwareSerial, or the modified #SoftwareSerial and #NewSoftSerial). Parameters: the Stream object to use for communication with the EasyVR module User Manual (1.0.11) EasyVR 3...
  • Page 48: Member Function Documentation

    Sets the operating distance of the microphone. This setting represents the distance between the microphone and the user's mouth, in one of three possible configurations. Parameters: dist (1-3) is one of values in Distance Return values: true if the operation is successful EasyVR 3 User Manual (1.0.11)
  • Page 49 WakeMode, optionally combined with one of the values in ClapSense Return values: true if the operation is successful bool addCommand (int8_t , int8_t group index Adds a new custom command to a group. User Manual (1.0.11) EasyVR 3...
  • Page 50 Parameters: mask is a variable to hold the group mask when the function returns Return values: true if the operation is successful int8_t getCommandCount (int8_t group Gets the number of commands in the specified group. EasyVR 3 User Manual (1.0.11)
  • Page 51 Retrieves the name of a command contained in a custom grammar. It must be called after dumpGrammar() Parameters: name points to an array of at least 32 characters that holds the command label when the function returns Return values: true if the operation is successful User Manual (1.0.11) EasyVR 3...
  • Page 52 Gets the recognised word index if any, from built-in sets or custom grammars. Return values: (0-31) is the command index if recognition is successful, (-1) if no built-in word has been recognized or an error occurred EasyVR 3 User Manual (1.0.11)
  • Page 53 Configures an I/O pin as an output and sets its value Parameters: (1-3) is one of values in PinNumber (0-1) is one of the output values in PinConfig, or Arduino style HIGH and LOW macros Return values: true if the operation is successful User Manual (1.0.11) EasyVR 3...
  • Page 54 (int8_t , uint8_t , uint16_t bits token delay Schedules playback of a SonicNet token after the next sound starts playing. Parameters: bits (4 or 8) specifies the length of trasmitted token EasyVR 3 User Manual (1.0.11)
  • Page 55 Return values: true if the operation is successful bool playPhoneTone (int8_t , uint8_t tone duration Plays a phone tone and waits for completion User Manual (1.0.11) EasyVR 3...
  • Page 56 It can be aborted by sending a question mark ('?') on the target port. Parameters: port is the target serial port (usually the PC serial port) EasyVR 3 User Manual (1.0.11)
  • Page 57: Easyvr Commander

    – custom set of SI commands (created with Quick T2SI Lite software). Grammar On some systems the EasyVR Commander can automatically upload the “bridge” program to the host board once connected. That applies to Robonova controller board and Parallax Basic Stamp. User Manual (1.0.11) EasyVR 3...
  • Page 58: Speech Recognition

    If any error happens, command training will be cancelled. Errors may happen when the user’s voice is not heard correctly, there is too much background noise or when the second word heard is too different from the first one. Figure 3 – Alert dialog in case of conflict EasyVR 3 User Manual (1.0.11)
  • Page 59 Note: If you want to re-train a command you need to erase the previous training first. Note: "Vocal passwords" (Group 16) are much more sensitive to environment noise and distance from the microphone: be sure to train and to verify the password in similar conditions. User Manual (1.0.11) EasyVR 3...
  • Page 60: Recognition Settings

    The “Save” button makes the EasyVR Commander remember your settings and automatically apply them to every connected device. The module itself does not store any option. EasyVR 3 User Manual (1.0.11)
  • Page 61: Phone Tones Generation (Dtmf)

    Two kinds of tokens can be selected: a short version, with up to 16 different tokens, and a long version that provides up to 256 tokens. Figure 7 – Interface for testing SonicNet features The EasyVR module can listen for incoming tokens continuously, or for as long as about 28 seconds User Manual (1.0.11) EasyVR 3...
  • Page 62 Finally, you can also export all the tokens of the specified length to some folder on your PC as Wave files (.WAV format) by using the “Generate…” button. You can then use those files to embed SonicNet tokens into other software or external sound sources (such as portable players, CDs or DVDs, etc…) EasyVR 3 User Manual (1.0.11)
  • Page 63: Using Custom Data

    SX-2 8.7 minutes 7.5 minutes SX-3 7.6 minutes 6.6 minutes SX-4 6.8 minutes 5.9 minutes SX-5 6.1 minutes 5.2 minutes SX-6 5.6 minutes 4.8 minutes 4-bit ADPCM 87 seconds 8-bit PCM 45 seconds 38 seconds User Manual (1.0.11) EasyVR 3...
  • Page 64: Speaker Independent Custom Vocabularies

    For assistance on using the QuickT2SI™ Software, please refer to the software help file. EasyVR 3 User Manual (1.0.11)
  • Page 65: Updating Custom Data

    “Download” button will be enabled and the flash update process can start. The default format of generated data is suitable for the EasyVR 3. For previous versions of the module or the shield please make sure to check the option “Old Format (EasyVR 2.0)”.
  • Page 66 This is the only case where SD and SI commands are mixed together and does not apply to custom trigger vocabularies. Arduino UNO (and other boards with USB/Serial adapter based on ATMEGA8U2) need the option “Slow transfer” enabled EasyVR 3 User Manual (1.0.11)
  • Page 67: Updating Firmware

    If the firmware passes the verification step, then the “Download” button will be enabled. Figure 13 - Interface for updating EasyVR firmware Note: After a new firmware is downloaded to the module, the custom data already present is erased and it must be downloaded again if necessary. User Manual (1.0.11) EasyVR 3...
  • Page 68: Quickusb Adapter Cable

    Type Name Description Asynchronous Data Receive line RTS# Request To Send flow control line Power and signal ground Power 5V power output (USB VBUS) Asynchronous Data Transmit line CTS# Clear To Send flow control line EasyVR 3 User Manual (1.0.11)
  • Page 69: Operating Conditions

    Just plug the cable on the target board first, then plug the USB connector to a free port on your PC. The adapter will be visible as a new USB Serial Port device and a virtual COM port on Windows. This COM port number is the one to use with the EasyVR Commander. User Manual (1.0.11) EasyVR 3...
  • Page 70: How To Get Support

    If you cannot find an existing solution on the FAQ, please contact us using the contact form on our website at http://www.veear.eu/support. The more detail you provide, the better support we can give. VeeaR © RoboTech srl, all rights reserved.

Table of Contents