Update: Whistled Platform Upgraded For Simple Word Recognition

Some people may remember the whistled platform I [limpkin] designed a while back, which recognizes different whistles to control your lighting. Recently, I designed a firmware that transforms the board into a word recognition device, as the 50MHz ARM Cortex M4’s processing capabilities are good enough to do so.

The simple algorithm works by correlating successive Fast Fourier Transforms (FFT) of the amplified microphone output with the FFTs of a template word previously stored in memory. Simply connect the Whistled to your power supply, say the word you’d like it to recognize and you’re good to go.

As you will see in the video embedded after the break (sorry for the accent…), I briefly explain basic principles about word/sound recognition and what you can do to improve your algorithm performances. The source files can be downloaded, as well as the code for my whistle detection algorithm which wasn’t available the first time we looked at the project.

http://www.youtube.com/watch?v=s4OKan-Szqw

20 thoughts on “Update: Whistled Platform Upgraded For Simple Word Recognition

          1. Relax, he’s actually complimenting the current quality of the site, and you managed to find the cloud in the silver lining. A free website still likes having visitors, especially if it hosts ads, and a good free website – like any other endeavour – would rather get feedback than to lose its users. So something being free doesn’t mean, “Shut up and read.”

  1. As if they COULD defend themselves indeed… Some of the stuff that comes out of the heads of the editors of this site is at times pretty lacking. Having a look-see at the backgrounds of these guys explains a lot. A non-realworld-education in electronics for one. Yes even the guy thats going to school for engineering, as engineers from my experience have a lot of books smarts for crap that they’ll never use in the real world. I guess I’m biased by the fact I have 30+ years experience with electronics and I am a tech, and the fact I spend most days re-teaching engineers electronics so they don’t hurt themselves or worse yet, millions of dollars of equipment. If you are an engineering student – TAKE A LAB OR TWO FOR GODS SAKES!!! Too many just take the core and never learn past anything past useless theory.

    A lot of people are “google smart” or “arduino smart” as well. They don’t know enough to come up with an original idea or look a schematic and figure out the T.O., but give them google and they “can do anything!” or a library to steal code from, but have them try to write a simple piece of code and watch out! sparks will fly…

    1. But oh, this thing is pretty cool. As for whistles, you don’t really need an ARM or DSP for that, there are a tone of other simpler ways of doing it, but the voice recog is pretty neat. I could think of a lot of things to do with this.

    2. Your advice to your co-workers might be more effective if you directed it to them instead of us.

      “If you are an engineering student – TAKE A LAB OR TWO FOR GODS SAKES!!! ”

      We have a name for this sort of thing, we call it “preaching to the choir”

  2. Hey Mathieu,
    Very nice work, very good short explanation. Would you like to do a more detailed explanation of the matching algorithms you mentioned in the last minute of your video, preferably in a new video?

  3. The nice thing here is that when you completely make and control it yourself the thing is unlikely to become a damn NSA (and such) spying device and it allows you to have a mic in use without such shenanigans. Unlike the xbox one (I think ONE might be an acronym for Open NSA Exploration, that’s why everything is dubbed ‘one’ these days.)

  4. Hi Mathieu,

    Very nice to see this works on such a relatively low speed chip.

    To improve the algorithm, you could try and calculate the mel-frequency cepstrum (see wikipedia) and use the first 12 or so values and use that to match trained utterances.The complexity is equal to applying a log and cos (maybe lookup tables for speedup) and then running another fft over the fft result.

Leave a Reply to FCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.