Multi-purpose speech recognition module designed to easily add versatile, robust and cost effective speech recognition capabilities to almost any application
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)
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”...
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)
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...
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...
= -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 ...
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)
(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.
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)
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...
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...
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.
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...
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...
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)
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...
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)
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 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)
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...
# 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)
# 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...
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...
五 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...
(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)
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...
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)
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)
(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...
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)
– 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...
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...
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)
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)
“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)
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...
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)
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...
Need help?
Do you have a question about the EasyVR 3 and is the answer not in the manual?
Questions and answers