Simple speech recognition for Python. Run the script, say some things into your microphone, and then see what you said (or an approximation).
Download sphinxbase and extract the files.
cd sphinxbase ./configure;make clean all;make install cd python python setup.py install
You may need to use sudo for make install or python setup.py install.
Download pocketsphinx and extract the files.
cd pocketsphinx ./configure;make clean all;make install cd python python setup.py install
Packages (Linux only)
cd speech-recognizer sudo xargs -a apt-packages.txt apt-get install
Now, download the right version of pyaudio and install it.
You will need to put the acoustic model into
scribe/hmm, and the language model into
The filetree should look like this for english:
scribe ├── dict │ └── cmu07a.dic ├── hmm │ ├── feat.params │ ├── feature_transform │ ├── mdef │ ├── means │ ├── mixture_weights │ ├── noisedict │ ├── README │ ├── transition_matrices │ └── variances ├── lm │ └── cmusphinx-5.0-en-us.lm.dmp
For other languages, check here, or see below on training your own model. If you use different language models, acoustic models, or dictionaries, you will want to change these paths in
HMDIR = os.path.join(BASE_PATH, "hmm") LMDIR = os.path.join(BASE_PATH, "lm/cmusphinx-5.0-en-us.lm.dmp") DICTD = os.path.join(BASE_PATH, "dict/cmu07a.dic")
To run, you just have to:
cd speech-recognizer python recognizer.py
You should be able to talk for a few seconds, after which it will spend some time processing, and the show you what you said.
There are some options that you can modify at the top of
recognizer.py. The easiest one to modify is
To find out more, read up on sphinx.
You can train the language models to make them more accurate, use unsupported languages, or be more domain-specific.