系统.语音降低麦克风灵敏度

本文关键字:麦克风 灵敏度 语音 系统 | 更新日期: 2023-09-27 18:12:03

我想知道如何降低系统的麦克风灵敏度。c#中的语音…

为了解释我自己,我有一个语法文件,当我说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);
 }

系统.语音降低麦克风灵敏度

在这种情况下,您真的不是在寻找麦克风灵敏度。我相信你在寻找的是措辞自信。

当引擎返回一个识别结果时,它还返回一个置信度分数。"基本上,这表明我有多相信我听到的就是你说的。"

if (Speech.Recognition.RecognitionResult.Confidence > .20)
{
    //do some good stuff
}
else
{
   // ignore
}

这包含一个从0到1的值,其中1是最自信的,0基本上是引起侦察事件的背景噪声。您将不得不玩弄什么置信度值是有意义的,因为它是高度语法和环境特定的。

你可以做的另一件事是改变触发词。我怀疑语音引擎的词典里有没有SIVRAJ这个短语。在这种情况下,引擎将尝试猜测组成这个单词的音素(如果您有语言背景,您可以在语法中提供它们作为自定义发音)。像"开始录音"这样的功能更有可能给你一个更体面的体验。