我有一些来自System.Speech.Recognition
的简单代码可以正常工作:
using (var recognizer = new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
recognizer.LoadGrammar(new DictationGrammar());
recognizer.SpeechRecognized += recognizer_SpeechRecognized;
recognizer.SetInputToDefaultAudioDevice();
recognizer.RecognizeAsync(RecognizeMode.Multiple);
}
private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
textBox1.Text = "Recognized text: " + e.Result.Text;
}
使用Windows 7时,我会在"Control Panel" -> "Speech Recognition" -> "Train your computer to better understand you"
进行语音培训。
我的程序是否自动使用已完成的任何培训? 培训的好处是基于用户还是机器? 这些语音“简介”可以(轻松)移动吗?
答案 0 :(得分:2)
是的,培训(尤其是听写)很有用。通过培训,准确度可提高20-50%。 (如果用户有重音,则尤其如此。)
培训的好处是每个用户。
微软有一个复制语音配置文件的工具,但它是为旧版本的SR引擎(XP时代)而构建的,据我所知,微软的任何人都不愿意更新或担保它。较新的SR引擎。如果您想尝试一下,请选择Bing for“Speech Profile Manager”,它会立即弹出。
答案 1 :(得分:1)
答案 2 :(得分:0)
我认为当你使用听写语法时,训练会有所帮助。如果您使用的是更有限的应用语法,那么培训的价值就会降低。
请记住,Windows客户端语音识别API(System.Speech)与服务器语音识别API(Microsoft.speech)之间的主要区别之一是服务器API旨在成为多用户且无法接受培训(想想语音自动电话系统,你无法为每个来电者进行培训)。如果您感到好奇,这个问题可能会有所帮助 - What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?