I'm planning on writing a program for Linux that uses text to speech and speech recognition. What are the best tools/libraries for this? Should I use Windows instead to be able to use better tools? The tools need to be easily callable from a console or C program.
Nuance Dragon is not available for Linux but there are plenty of alternatives that runs on Linux with similar functionality. The best Linux alternative is Dictanote, which is free.
For speech recognition there are the various Sphinxes. The different variants have different pros and cons, there is a comparison here Comparison of Sphinx versions. Sphinx 4 is Java, but the others are C, I believe.
It depends quite a bit on what speech you are trying to recognize.
This is an article from 2005 that explains some of the difficulties in creating a dictation program: http://www.cs.cmu.edu/~archan/personal/whyNoOpenSourceDictationDraft4.html . If you want that, the Julius speech recognition engine seems promising, but you will need to add your own acoustic and language models. You might be able to use the voxforge acoustic model.
If you are not trying to write a dictation program then you have a much easier task. Command programs have limited vocabularies, for example 'If you would like to continue in English, say "English"'.
I was able to get pretty good results using pocketsphinx and gstreamer to make a program that automatically edits most occurrences of the word "twitter" out of the TWiT podcast. It didn't work at all until I used my own language model based on transcripts of the podcast; the machine transcriptions from the speech recognizer are useless/hilarious but they do an okay job of finding the keyword.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With