我正在尝试制作类似人类的波斯语言词典(db),所以我试着说话并让c#发音,但问题是我无法找到任何事件来找到我说的话。例如,我们有SpeechRecognized
事件,但在识别语音后它被触发。这是我的代码示例:
<pre>
<code>
SpeechRecognizer rec = new SpeechRecognizer();
public Form1(){
InitializeComponent();
rec.SpeechRecognized += rec_SpeechRecognized(rec_SpeechRecognized); // this will fire after recognize
rec.SpeechDetected +=new EventHandler(rec_SpeechDetected); // this will fired each time but with no return
rec.enabled = true;
}
</code>
<pre>
注意: 我希望c#产生我说的语音值,而不是识别它。
答案 0 :(得分:3)
我认为System.Speech.Recognition不会对您所说的内容进行语音解释。 Windows识别器使用特定于语言的模型来尝试匹配指定语言的单词。
Windows 7中的语音引擎支持以下语言:中文(简体),中文(繁体),法语,德语,日语,西班牙语,英国英语和美国英语。见http://msdn.microsoft.com/en-us/goglobal/ee426904
Microsoft服务器语音引擎支持26种语言。我不相信波斯人会受到支持。见http://www.microsoft.com/downloads/en/details.aspx?FamilyID=F704CD64-1DBF-47A7-BA49-27C5843A12D5
也许使用C ++和SAPI可以获得底层音素。如果您搜索“SAPI音素提取”,您可能会发现一些有用的东西。特别要看一下 Speech Recognition with SAPI: Custom Language Support through phenomes描述了构建自定义语法以尝试从备用语言中提取音素。
我在http://developer.valvesoftware.com/wiki/Phoneme_Tool和http://www.mail-archive.com/hlcoders@list.valvesoftware.com/msg19793.html
看到的其他有趣的参考资料