Voice recognition module

Who will be making this one? All you need is a moudle with dsPIC!
http://ww1.microchip.com/downloads/en/devicedoc/dspic_speech_recognition_user_guide_70140a.pdf

Or this is better http://www.veear.eu/ …now, is that dsPIC hidden under the epoxy? :slight_smile:

Hi Gus !
I am working on a driver for the easyvr module shield. Should be available within a few weeks !
Original thread: http://www.tinyclr.com/forum/2/4791/

Great. Let us know how good/bad it works.

As far I have seen right now (I will spend more time when on vacations starting dec 16th :wink: ) the easyvr module is a really basic speech recognition module.

  • It can recognize a set of 26 words from 6 different languages “voice independently” (“action”, “forward”, “stop”…).
  • You can program up to 32 specific words “speaker dependant”. If I say “GHI” and you say “GHI”, it will recognize my voice, but probably not yours.
  • Can fingerprint pre-recorded voice passwords
  • Can playback several minutes of sound you pre-recorded to it

It is more or less an avaluation package, to drain people to their more advanced product, the “SmartVR”. But I think it is a good product for start, with an attractive price, to test a speech recognition software. I think we are really going to have fun playing with it with the kids ( we intend to build a lego robot the kids will be able to talk to doing things). This is our christmas hollidays project :stuck_out_tongue:

I published on code yesterday the “CDC to serial port bridge” ( http://code.tinyclr.com/project/397/cdc-to-serialport-bridge/ ) which I am basicaly using to talk / program the easyvr shield from my PC using their easyvr “commander” software.

Will let you know :wink:

Hi Nicolas,
I’ve ported the easyvr’s arduino library to netmf (almost every method). I’m trying to send command to the board from a fez panda using COM1 but I don’t receive any reply. (I’m using standard pins)

Any idea?

Cheers
Federico

I rewrote it better than just porting it, many things shall be adapted. I am in good progress to have a final driver available, however no time to finalize it yet. Maybe next week.

The easyvr shield has a bug when you try to make it work with 3v3 TTL levels on the RST pin : it considers that because it is not 5V, it is a “reset”. I reported it to the VEEAR web site forum, asking some schematics to better understand it and adapt it. They answered me that this is an “arduino only shield” not made for “any other clone”. I didn’t try to talk to them any more.

Anyway, if you want to solve your problem, just remove the D2 and D3 transistors (close to the RST pin), you’ll solve the bug.

Have fun :wink:

I’m not very practiced with hardware so I’ll wait for your driver, and, a tutorial to solve the problem if you can :slight_smile:

Thanks!
Federico

I’m happy to have someone to troubleshoot code for that module !
Right now I have a library autodetecting and setting parameters to the module, and performing “SI” recognition correctly (“Speaker Independant” words, without need of training).

I am a bit disapointed by the SI part, you sometimes need a little tuning to make it work. The default settings are not bad. However I get a lot of “false positives”. For an example, if I select SI wordset 0 (only the word “robot”), whatever I say is pretty much recognized as “robot”. However for the other groups it works not too bad. If I tune the recoginition engine to “tighter”, I get less false positives for my own voice (french or english), however, more for my wife’s.

But the thing is not too bad considering the noisy home environnement I work within (children…)

I should have a full beta driver available by next week end. If you want to test some snapshot, just let me know. About your hardware problem, just get rid of the transistors D2 and D3 on the “arduino shield” (you are not concerned if you are using the module directly…)

I’ve spend a lot of time on the other end of the spectrum - text-to-speech. I am very interested in your work Nicolas and looking forward to see the results.

I am very interested as well. Maybe this can be part of the gadgeteer offers

1 Like

That should be very easy to integrate inside a gadgeteer module. Most of the electronics on the arduino shield is useless for a FEZ with 3v3 TTL signals. You should only connect the serial port to any true UART, add a jumper for the bootloader mode (to program built in sounds using the Sensory’s quick synthetysis software) and maybe one or 2 leds (awaken, talk), and a few connectors (skeaker, a jack for line out, and of course a microphone).

Right now a problem I am facing with the fez panda/domino is with the 115200 UART baudrate. As stated in other posts, the 115200 speed may not be accurate enough (the lowest possible speed in boot loader mode), and I can’t “flash” the module directly from the FEZ board (in CDC bridge mode). Working on that part. With faster CPUs on gadgeteer boards, that may not be a problem at all. I have seen a post about reducing the onboard CPU to 24 Mhz to get accurate baudrate, at least temporary for the boot mode, but then the FEZ might not be fast enough at least in managed code. Well : only for the boot mode, an external FTDI cable might be fine without adding too much complexity to the thing. It is not affecting the “voice recognition” part, only the “sound replay” functionality…

The documentation of this thing is definitly not at its best. It will definitly need some kind of wiki entry :wink:

Nicolas, I’m very interested in testing your code, so you can send me a snapshot if you want :slight_smile:
Could you send a me a photo on how to dry out contacts? (sorry but I’m a newbie on hardware stuff)

My email is: degrandis.federico@ gmail.com

Tnx!
Federico

Frederico and all,

I published an early beta driver here : http://code.tinyclr.com/project/408/easyvr-speech-recognition-shield-driver/

Bug corrections, updates, and how to information to come by the end of the year. Don’t hesitate to report any bug to me via this forum, or ask any question.

Have FUN :smiley:

Tnx for sharing your code! Could you provide a photo of your shield so I can understand how to dry out pins and play with the code?

Cheers
Federico

It works :smiley:
I can run your test program but when I wire AN0 to GND I can’t use easy commander sw. It enters on bridge mode but Easy Commander goes to a “Not responding” status when I select the port and click on connect. I can use your driver only with the Hardware mode.

Thanks
Federico

Here we go !

As you can see on this picture, I was not sure what to do at the beginning, so I partialy unsoldered the valves D2 and D3 (red circle).

However, you don’t need to do that.

What I would suggest is to cut the small coper wire from the reset pin to these valves, with a sharp knife or cutter, as shown here with the little red line. If will take you no tools and 10s to perform. Just be caraful to cut only that stripe…

Have FUN :stuck_out_tongue:

  • To work with EasyVR commander, you shall not be in V C# debug mode. Deploy your software. Stop the debugging mode. Reset the board. A new COM port should be installed/available. Then only now start the EasyVR commander. Be carefull to close EasyVR commander before reseting the board or deploying another software, because it may lock the “virtual” com port on the PC and will have problems to use it the next time. Even in bridge mode, you should always keep the jumper in “HW” position (SW has another function). The only time you will change from “HW” to “UP” is when you will use a FTDI cable to program onboard sounds.

  • I updated both the driver and the example. It should be stable. I will try to add a video shortly.

@ Gus,

If you make a gadgeteer module using the EasyVR module, I suggest:

  • Connecting all 3 GPIOs to LEDs (inputs are useless here). One could be : “Awaken”, another one “Speak !” and a third one maybe “Triggered” or “Error”.
  • It should have only a 2 positions switch / jumper : either “normal mode” (==HW on the shield) or “programming mode” (==UP on the shield).
  • The really best would be to have an onboard FTDI chip + mini USB connector to be able to flash it directly from the PC. But that would add costs. Or at lest a little connector to connect a regular FTDI external cable !
  • Keeping both Speaker and line out different outputs.
  • All the electronics on the shield is useless, don’t bother. Just the EasyVR module (without shield) connected with 4 wires to any FEZ works betters (3v3, GND, RX, TX…)

I saved these notes a side. Thanks

I wonder… Since there are ultimately going to be lots of Gadgeteer modules that need their own firmware updates (i.e. DaisyLink) would it be possible to start thinking about an addition to the Gadgeteer spec that would allow a USB module to be connected to other modules in order to flash their chips w/o having to build in unique FTDI configuration into every module? A different connector or color of socket would be ideal but maybe there would be a smarter way using existing connector after a little thought.