I would like to know where one could get started with speech recognition. Not with a library or anything that is fairly "Black Box'ed" But instead, I want to know where I can Actually make a simple speech recognition script. I have done some searching and found, not much, but what I have seen is that there are dictionaries of 'sounds' or syllables that can be pieced together to form text. So basically my question is where can I get started with this?
Also, since this is a little optimistic, I would also be fine with a library (for now) to use in my program. I saw that some speech to text libraries and APIs spit out only one results. This is ok, but it would be unrealiable. My current program already checks the grammar and everything of any text entered, so that way if I were to have say, the top ten results from the speech to text software, than It could check each and rule out any that don't make sense.
Dragonfly provides a clean framework for speech recognition on Windows. Check their Documentation for example usage. Since you aren't looking for the big scale of features Dragonfly provides you might want to take a look at the no longer maintained PySpeech library.
Their source code looks easy to understand and maybe that's what you want to look at first
Pocketsphinx is also a good alternative. There are Python bindings provided through SWIG that make it easy to integrate in a script.
For example:
I know the Question is old but just for people in future:
I use the
speech_recognition
-Module and I love it.The only thing is, it requires Internet because it uses the Google to recognize the Speech. But that shouldn't be a problem in most cases.The recognition works almost perfectly.EDIT:
The
speech_recognition
package can use more than just google to translate, including CMUsphinx (which allows offline recognition), among others. The only difference is a subtle change in the recognize command:https://pypi.python.org/pypi/SpeechRecognition/
Here is a small code-example:
There is just one thing what doesn't work well for me: Listening in an infinity loop. After some Minutes it hangs up. (It's not crashing, it's just not responding.)
EDIT: If you want to use Microphone without the infinity loop you should specify recording length. Example code:
UPDATE: this is not working anymore
because google closed her platform
--
you can use https://pypi.python.org/pypi/pygsr
example usage:
If you really want to understand speech recognition from the ground up, look for a good signal processing package for python and then read up on speech recognition independently of the software.
But speech recognition is an extremely complex problem (basically because sounds interact in all sorts of ways when we talk). Even if you start with the best speech recognition library you can get your hands on, you'll by no means find yourself with nothing more to do.
For those who want to get deeper into the subject of speech recognition in Python, here are some links: