convert spech into text by easyvr !

hello ! I am using arduino uno R3 and I want to make easyvr convert the speech to the text ! I cant do this , can you help me !!

How ? You haven't posted a schematic or any code. How can we possibly help you. We have no idea what you are doing so how can we know what you are doing wrong. We don't know if you have read the user manual . We don't know what code you are running. We don't know how you connected it. If you want help, you need to give a Situation Report: ie: I have this circuit: (post schematic, photo of hand drawn schematic is fine) I am running this code : (post code using "#" code tags button) I read the manual and followed instructions: The following happens........(describe results)

EasyVR only understands the 32 pre-defined words that you train it to understand plus the 28 pre-programmed commands. If you purchase the QuickT2SI software license then you can change the pre-programmed words to your liking. So that gives you a total of 60 words it can understand. If you can get an EasyVR example to work then it really isn't very hard to have it print text. Partial example:

    group = 0;
    easyvr.recognizeCommand(group);
    while (!easyvr.hasFinished());
    idx = easyvr.getCommand();
    if (idx >= 0) // 0 = Hello
    {
      //Place your code here to print text on whatever device that you have not given info about
    }

Of course no one but you knows the details of your project so it's hard to help any further.

my project : i want to make the user talk to my device that converting user's speech into text that will display on LCD ! so am using arduino uno and easyvr !! so i dont want any command to do ! i read the manual well but i didnt know which code i use ! ! recognation of SD or write new or what?!

Try Google Translate. It has to be easier to understand than your English, which is almost impossible to understand.

HeshamNouby: my project : i want to make the user talk to my device that converting user's speech into text that will display on LCD ! so am using arduino uno and easyvr !! so i dont want any command to do ! i read the manual well but i didnt know which code i use ! ! recognation of SD or write new or what?!

sry for language error , i updated it ! thank u

So any help in this prb

#if defined(ARDUINO) && ARDUINO >= 100
 #include "Arduino.h "
#include "SoftwareSerial.h"
SoftwareSerial port(12,13);
 #else // Arduino 0022 – use modified NewSoftSerial
 #include "WProgram.h"
#include "NewSoftSerial.h"
NewSoftSerial port(12,13);
 #endif

#include "EasyVR.h"

EasyVR easyvr(port);

//Groups and Commands
 enum Groups
 {
 //GROUP_0  = 0,
 GROUP_1  = 1,
 };

enum Group0
 {
 G0_ARDUINO = 0,
 };

enum Group1
 {
 G1_FORWARD = 0,
 G1_REVERSE = 1,
 G1_LEFT = 2,
 G1_RIGHT = 3,
 G1_STOP = 4,

};

EasyVRBridge bridge;

int8_t group, idx;

void setup()
 {
 // bridge mode?
 if (bridge.check())
 {
 cli();
 bridge.loop(0, 1, 12, 13);
 }
 // run normally
 Serial.begin(9600);
 port.begin(9600);

if (!easyvr.detect())
 {
 Serial.println(" EasyVR not detected!");
for (;;);
 }

easyvr.setPinOutput(EasyVR::IO1, LOW);
 Serial.println("EasyVR detected!");
easyvr.setTimeout(5);
 easyvr.setLanguage(EasyVR::ENGLISH);

group = EasyVR::TRIGGER; //<– start group (customize)

pinMode(2, OUTPUT);
 digitalWrite(2, LOW);    // set the LED off
 pinMode(3, OUTPUT);
 digitalWrite(3, LOW);
 pinMode(4, OUTPUT);
 digitalWrite(4, LOW);
 pinMode(5, OUTPUT);
 digitalWrite(5, LOW);
 pinMode(6, OUTPUT);
 digitalWrite(6, LOW);

}

void action();

void loop()
 {
 easyvr.setPinOutput(EasyVR::IO1, HIGH); // LED on (listening)

Serial.print("Say a command in Group");
Serial.println(group);
 easyvr.recognizeCommand(group);

do
 {
 // can do some processing while waiting for a spoken command
 }
 while (!easyvr.hasFinished());

easyvr.setPinOutput(EasyVR::IO1, LOW); // LED off

idx = easyvr.getWord();
 if (idx >= 0)
 {
 // built-in trigger (ROBOT)
 // group = GROUP_X; <– jump to another group X
 return;
 }
 idx = easyvr.getCommand();
 if (idx >= 0)
 {
 // print debug message
 uint8_t train = 0;
 char name[32];
 Serial.print("Command:" );
Serial.print(idx);
 if (easyvr.dumpCommand(group, idx, name, train))
 {
 Serial.print("= ");
Serial.println(name);
 }
 else
 Serial.println(name);

 // perform some action
 action();
 }
 else // errors or timeout
 {
 if (easyvr.isTimeout())
 Serial.println("Timed out, try again…");
int16_t err = easyvr.getError();
 if (err >= 0)
 {
 Serial.print("error");
Serial.println(err, HEX);
 }

group = GROUP_1;
 }
 }

void action()
 {
 switch (group)
 {
 // case GROUP_0:
 // switch (idx)
 //  {
 //  case G0_ARDUINO:
 // write your action code here
 //      group = GROUP_1; //<– or jump to another group X for composite commands
 //    break;
 //  }
 //  break;
 case GROUP_1:
 switch (idx)
 {
 case G1_FORWARD:
 Serial.print("9");
 digitalWrite(2, HIGH);
 break;
 case G1_REVERSE:
 Serial.print("Q");
digitalWrite(3,HIGH);
 break;
 case G1_LEFT:
 Serial.print("X");
digitalWrite(4,HIGH);
 break;
 case G1_RIGHT:
 Serial.print("Y");
digitalWrite(5,HIGH);
 break;
 case G1_STOP:
 Serial.print("Z");
digitalWrite(6,HIGH);
 break;
 }
 break;
 }
 }

i used this code but the text only printed if exists on the group but if any extra word it cant be print it !

Of course not. It has a limited vocabulary. Read the datasheet. This circuit is trained to recognize spoken words on the list ONLY. Imagine talking to a person who only understood 50 words. Every time you said a word that is not their "list" they would just look at you and shrug. That is what is happening. The ONLY words the EasyVr recognizes are the words on the list. period. There is no way around it. There is no programming fix. There is no hardware kludge. It is what it is.

READ Reply#2 HE TOLD YOU THIS ALREADY.

END OF STORY...

but what about "adding new SD command "?

Read Reply#2 and ask your question using the information given there. It states the device allows you to train 32 words of your choosing and 28 pre-programmed words. You have not told us if you have trained it to learn any words. If you have not done that then of course it would not work.. I have no idea what you mean by "SD command". Where did that come from. It is a voice recognition circuit. The INPUT device is a MICROPHONE not an SD card. The OUTPUT is text. I do not understand your question. Please state what you have done with this circuit. Did you or did you not train it to identify any of the 32 user selectable words ? Did you test it with any of the pre-programmed words ? Do you have a list of the device's current vocabulary or not ? Do you understand what a vocabulary is ? You have not used the word vocabulary in any of your posts so we have no idea if you even know what that is. Based on your previous posts, What do you mean by the phrase "recognition of SD" ? If the input is a microphone and the output is text. How do you suppose the device is going to understand something stored on an SD card as text ? I haven't read the manual so if you can explain that then maybe we can figure out what is the problem.

i mean that code where in easyve manual !!

Adding a new SD command 
# insert command 0 in group 3 
SEND 'g' 
SEND 'D' 
SEND 'A' 
IF RECEIVE = 'o' THEN OK ELSE ERROR  
# set command label to “ARDUINO_2009” 
SEND 'g'
 SEND 'D' 
SEND 'A' 
SEND 'Q'
 # name length (16 characters, digits count twice) SEND 'A' SEND 'R' SEND 'D' SEND 'U' SEND 'I' SEND 'N' SEND 'O' SEND '_' # 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

so what ?

The EasyVR cannot do exactly what you want it to do. You want to just talk and have it print what you say on an LCD, but as elac pointed out, it can only have a maximum of 60 words. To do what you want would require a library of at least 100 - 150 words. However if you just keep your sentences [u]very[/u] simple you might be able to do it.

Keep in mind, you need to train the easyVR to understand what your saying, it wont be able to by itself like an iPhone or Android phone.

i mean that code where in easyve manual !!

I believe the OP's above statement was meant to say: "The code I posted (in last post) for adding SD commands was in the manual"

I have not read the manual (nor do I plan to) so I don't know what "adding SD command" means. Maybe someone with more patience can explain that.

SD commands = Speaker dependent command = EasyVR will only understand the person who trained it. The pre programmed words are SI commands = Speaker independent = "Almost" anyone can control EasyVR with those words. So making a robot that everyone can verbally command is possible + SD commands for debug/secret/world domination commands.

@ HeshamNouby, You cannot just continually speak to EasyVR and have it print text. There must be a pause between each spoken word or phrase. This is needed so the EasyVR can tell that speaker is done speaking a command. Then the EasyVr goes back into listening mode. Also it is important to train the EasyVR in the environment that it will be used in. Training in a small room then trying to get EasyVR to respond in a large room or outside is not easy because the room acoustics are different. It is easiest to add your own SD commands using the EasyVR Commander free software from here . Follow directions in this order: 1. Connect EasyVR to the UNO and change EasyVR jumper from HW to PC 3. Connect UNO to PC 4. Start EasyVR Commander 5. Follow instructions starting on page 55 of the manual in the link previously provided.

@elac,

Thank you for that explanation. In retrospect I wonder if the OP had any confusion about the meaning of the abreviation "SD" in view of the fact he is using an "SD" card. If there were no SD card in this post it wouldn't matter but since there is I think he should have clarified that it meant "Speaker Dependent" and not "Secure Digital" (for people who haven't read the manual") (how else would you know , right ?)

Yeah, communication doesn't seem to be the strong point of this conversation.