Speech to Phoneme in .Net

吃可爱长大的小学妹 提交于 2019-12-01 19:09:31

Phoneme recognition requires a bit of a specialized set-up compared to word recognition, and most engines don't support it directly (a dictionary of monophonic "words" doesn't usually result in good accuracy). A big reason for that is that phoneme recognition is much less accurate than word recognition, since word recognition is more constrained (it filters out all phone combinations which don't map to real words, which is most of them). But HTK does support it. You can use it by executing shell commands (there's nothing evil in doing that from C#) or pinvoking the libraries.

Try using the System.Speech.Recognition.DictationGrammar constructor that takes a string argument, and pass "grammar:dictation#pronunciation" as the argument. Alternatively, raw SAPI (using the SpeechLib interop assembly) can specify the pronunciation grammar via ISpRecoGrammar::LoadDictation and specifying "Pronunciation" as the dictation topic.

You can bind Hidden Markov Model Tool Kit with pinvoke to your c# code or try to use Accord.net framework, which is managed and has HMM classes, but no concrete methods to extract phonemes.

Is this for vanilla .net, or can you use SAPI (you know, speech API)? The speech api is nice, and it seems to have what you are looking for. Most of all, in a windows environment, it is easily obtained than the external libraries(not to mention that there is not much of a licencing issue regardless of application).

Did you notice System.Speech.Recognition.RecognizedWordUnit? That seems to be roughly what you are looking for.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!