I am looking for a software, a library or an algorithm that can be trained to recognize about a dozen speaker independent voice commands.

The commands will be very distinct phrases of 4-5 words each. They can be chosen to sound very different from each other. Additionally, the commands will be in more than two different languages. The user will be guided to say only the exact phrases and talk slowly, loud and clear in front of the microphone.

I am currently looking for an algorithm that can compare speech spectrograms and give me a matching percentage, but no luck so far. Any ideas?

If it helps, the code can be written for the specific phrases only, and, in worst case, the phrases can be reduced to 3 or 4.

Operating system can be Linux (preferably), Windows or Android. No Internet services.

  • 3
    What's the operating system? Google voice recognition or Siri are speaker-independent on Android/iOS. (but not language independent) Oct 1, 2014 at 18:14
  • 1
    Thank you for your comment Franck. Operating system can be linux (preferably), windows or android. Google voice recognition and Siri are not stand-alone softwares. They are internet services. Unfortunately I can not use them.
    – Sigman
    Oct 2, 2014 at 5:29
  • There's a reason its speaker dependent to an extent. I for one tend to be murder on most voice recognition that I've had to use, even microsoft's activation system. Oct 15, 2014 at 8:38

3 Answers 3


CMU PocketSphinx is specifically designed to work in cases where a small set of voice commands are employed. As it uses a word-dependent phone dictionary, this would allow you to easily map different pronunciations to word actions.

It is possible to further train the system when additional accuracy is required.

Your requirement of an algorithm giving you a "matching percentage" is best described by PocketSphinx with confidence values, which are returned on a per-word basis.


Simon is exactly what you are looking for.

Simon is not a full speech-to-text engine like Dragon Naturally Speaking is, but rather you can program Simon to recognize specific phrases and to perform specific actions. This works even if the phrases are spoken by different people.

Simon runs on all modern Linux distros, and is very easy to install and configure.


You need a software application like, Dragon Naturally Speaking. Dragon Naturally Speaking is one of the original voice recognition programs. I remember hearing of them back when this was a novelty.

Here is their pitch for the professional version:

Command greater productivity.

Perfect for students, teachers, professors, self-employed workers, consultants, professionals, writers/bloggers, and people who spend a lot of time on the computer. Dictate up to three times faster than typing; your words appear on the screen almost instantly. Speak naturally and Dragon recognizes what you say with up to 99% accuracy. Dictate documents, spreadsheets and presentations with no spelling mistakes. Capture notes using a digital voice recorder or compatible iOS® and Android™ devices and Dragon will transcribe the audio for you. Take advantage of wideband Bluetooth® support for superior wireless accuracy. Application support with Full Text Control using Excel® 2010 and 2013 (32-bit and 64-bit). Application support with Menu Tracking, and English Natural Language Commands in Microsoft PowerPoint® 2010 and 2013. Mobile dictation - allows transcription of recordings spoken by one person. Ability to import/export custom word lists and user profiles. Easily create commands to insert frequently used text and/or graphics by voice.

  • 2
    Dragon NaturallySpeaking is speaking-dependent (but great otherwise!). Oct 15, 2014 at 3:42
  • I would think that any such program would be speaking-dependent as it is voice command recognition. Oct 15, 2014 at 10:52
  • @MichaelEakins I think that Sigman is suggesting that, in his situation, his application should not work to dynamically improve accuracy. Can you disable this feature in Dragon?
    – baitisj
    Oct 10, 2015 at 18:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.