Click here to Skip to main content
15,889,200 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello,

I want to make a program that reads a given English word in real time.
I have 2 ideas to make it but I need some guidance threw them

1) is to make have a database with all the English words and a pronunciation for each word, so given a word I will have to look for it in the DB and play the word

Problems that I face:
A) I cant find a DB with all the pronunciation of English words
B) I am afraid that searching in such DB would take long time to be a Real Time Program, but it shouldn't be that bad as maximum number of words would be around 450,000 words.


2) is to have a pronunciation for each alphabetical letter (maybe stored in a DB) and for each combination of letters that have different pronunciation like 'oo' and 'o' etc...
Problems:
A) The same first problem, is there such a DB ??
B) will this way work with good performance ??

Thanks in advance,
Posted
Comments
ridoy 2-Dec-12 5:57am    
Do you know about SAPI which works fairly well?It is efficient enough to read a word and it is called text to speech recognition.

The "DB with all the pronunciation of English words" does exist (well, "all words" would be some exaggeration :-)). It is called DictationGrammar:
http://msdn.microsoft.com/en-us/library/system.speech.recognition.dictationgrammar.aspx[^].

Now, here is the trouble: I tried it with both SpeechRecognizer and SpeechRecognitionEngine (please see http://msdn.microsoft.com/en-us/library/ms554855.aspx[^]), on Windows 7. Small per-application grammars work fairly well, large grammars cause trouble, and the quality of recognition with dictation is so poor that it does not worth the effort. Try it to see.

Reportedly, recognitions engines with decent dictation quality exist, but the one downloadable for Windows looks like rotten good. It's good only for simple recognition chores, not dictation. Pity.

[EDIT]

In response to the follow-up question:

Now, the opposite: nothing much to seek for: use the same assembly and the peer namespace: System.Speech.Synthesis:
http://msdn.microsoft.com/en-us/library/system.speech.synthesis.aspx[^].

Apparently, this is much easier. :-)

—SA
 
Share this answer
 
v3
Comments
Kasparov92 3-Dec-12 0:30am    
Thanks for your great reply, I will use that for sure but in another phase later. For now I am seeking the opposite, I will provide a text and I want to make a program that reads this text (The class in the first link process spoken user input into text).

About Dictation, I will use a filter algorithm first and then check what is said, and I want to manually make this filter .. any ideas about that ?
Sergey Alexandrovich Kryukov 3-Dec-12 1:16am    
Well, never tried filtering in speech input, cannot tell anything. If you get some results, please update me by commenting on this post.
--SA
Sergey Alexandrovich Kryukov 3-Dec-12 1:20am    
See the update to the answer, after [EDIT].
--SA
AmitGajjar 3-Dec-12 1:45am    
5+ good reference.
Sergey Alexandrovich Kryukov 3-Dec-12 3:55am    
Thank you, Amit.
--SA
Hi

sorry for your first answer, Hope first solution helps you in that.

For your second question, you can rate each word by their frequency of use. by that way you can filter out lease frequently used words. so you do not need to fetch 450000 words from the database. Although i have never try so try from your side and don't forget to post your review.

hope this information helps you.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900