我想知道如何在 C# 中使用 System.Speech 降低麦克风灵敏度。
为了解释我自己,我有一个语法文件,当我说 SIVRAJ(我的程序名称)时,我的应用程序应该开始记录我
但是,我可以说一些完全不同的东西,我的应用程序会理解一些“SIVRAJ”......
我的 XML 文件中有一部分:
<rule id="mouskie" scope="public">
<item>
<one-of>
<item>SIVRAJ</item>
</one-of>
</item>
<ruleref special="GARBAGE" />
<one-of>
<item>
<one-of>
<item>quit</item>
</one-of>
<tag>$.mouskie={}; $.mouskie._value="QUIT";</tag> // quit programm when i say SIVRAJ + quit
</item>
..... etc etc
这是启动识别引擎的功能:
SrgsDocument xmlGrammar = new SrgsDocument("Grammaire.grxml");
Grammar grammar = new Grammar(xmlGrammar);
ASREngine = new SpeechRecognitionEngine();
ASREngine.SetInputToDefaultAudioDevice();
ASREngine.LoadGrammar(grammar);
ASREngine.SpeechRecognized += ASREngine_SpeechRecognized;
ASREngine.SpeechRecognitionRejected += ASREngine_SpeechRecognitionRejected;
ASREngine.SpeechHypothesized += ASREngine_SpeechHypothesized;
最后,我在这里恢复数据:
recoText.Text = e.Result.Text;
devine.Text = "";
affiche.Text = "";
string baseCommand = e.Result.Semantics["mouskie"].Value.ToString();
commandText.Text = baseCommand;
if (baseCommand.Equals("QUIT"))
{
m_SpeechSynth.Speech("au revoir", VoiceGender.Male, VoiceAge.Adult);
Environment.Exit(0);
}