I know C++ and PHP, I know OOP and usages of Database technologies. I have to make speech recognition software for my own nation Whose symbols are unique but supported by UTF-8. and so far no software company has taken initiative to do so. I need to know what programming language will be perfect to do and which courses should I take to learn the process. I don't like to process the language via SAPI or build in recognition technologies as they are based on English (Problem here the grammar and syntax is so difference- it's Indo-European based). And I want to make it from scratch ( machine level/voice processing- i want to make sound that processed directly be parsed to my symbols (no English transformation )). Hope you will understand cause I am looking forward to it as it's my nation's requirement. This is not to promote any programming language or course. Just I need to know it now. ( if my question does not fit here please where it fit most and be kind enough to move to that forum. I had bitter experience about it)
-
having a sound database for the way to speak words is necessary. This is what's called TTS engine. Last company i worked for we use to create our own TTS because some language/dialect were not availaible on the market. You need 2 intepret, male and female of generic voice tone and there is a specific list of words they need to read and you record them. tis will generate mostly all possible sound you need. Most language will required between 600,000 and 700,000 words to be recorded.– FranckCommented Feb 12, 2015 at 13:10
-
@Franck, Thanks. Our community is ready to contribute those sounds, no matter whatever amount of times that require. By the way what technology was your last company using for developing the system?– Monolord's KnightCommented Feb 12, 2015 at 13:35
-
There was no coding involve as far as i know for recognition and database building. We had a professional recording room where the women as been recording these 700k words for about a 10 month to 1 year. In the end to do speech recognition we had a TTS server that's quite expensive. If i recall it's in the 6 digits and it's a whole OS by itself. We were calling it with C#, asp classic, asp.net, VXML, and some hardware phone system.– FranckCommented Feb 12, 2015 at 13:49
-
1A TTS (Text to speech) engine is the reverse of speech recognition isn't it? TTS enables the computer to produce speech rather than understand it.– Matthew LockCommented Feb 12, 2015 at 23:01
-
I don't know how they fare for speech recognition, but Python and Java have NLP toolkits. Speed-wise, go with C++– Agi HammerthiefCommented Feb 13, 2015 at 16:24
2 Answers
Adding support for a new language is pretty straightforward, you actually just need to follow the documentation and you can get to the point. You also need to have a knowledge of the scripting language which will help you to cut manual work on some steps. Unix command line experience is a big plus, though you can work on Windows too.
1) Read Introduction to become familiar with concepts of speech recognition - features, acoustic models, language models, etc.
2) Try CMUSphinx with US English model to understand how things work. Try to train with sample US English AN4 database following acoustic model training tutorial.
3) Read about your language in Wikipedia.
4) Collect a set of transcribed recordings for your language - podcasts, radio shows, audiobooks. You can also record some initial amount yourself. You need about 20 hours of transcribed data to start, 100 hours to create a good model.
5) Based on the data you collected, create a list of words and a phonetic dictionary. Most phonetic dictionaries could be created with a simple rules with a small script in your favorite scripting language like Python. See Generating a dictionary for details.
6) Segment the audio to short sentences manually or with sphinx4 aligner, create a database with required files as described in training tutorial.
7) Integrate new model into your application and design a data collection to improve your model.
If you have questions, feel free to ask on CMU Sphinx / Forums.
See if any existing speech recognition systems have a way to add a custom language. That will save you years of effort. Even then, collecting a big database of your language's words and grammar will be immense.
Here's some leads to get you started:
If not then you probably will be using C/C++ in order to process the incoming audio fast enough. You can learn more about the principles of speech recognition here: http://en.wikipedia.org/wiki/Speech_recognition
-
thanks for the info. Please let me know any update you receive. I'm trying those out. Commented Feb 12, 2015 at 13:37
-
1Actually a single person can do it in about a month, only passion is required. It is not that complex and C/C++ is not needed. Commented Mar 15, 2015 at 23:51
-