Jac*_*arn 6 c# speech-recognition noise
我SpeechRecognitionEngine在我的程序中使用MSDN .问题是它将背景噪声识别为语音.
例如,如果用手指敲击,敲击桌子,或移动我的椅子,它会将其作为语音选择.
为什么在世界上它会将背景噪声识别为语音.
我对齐我的手指听起来不像我说的"记事本"!
这是代码
using System;
using System.Threading;
using System.Speech;
using System.Speech.Synthesis;
using System.Speech.Recognition;
namespace SpeachTest
{
public class MainClass
{
static void Main()
{
MainClass main = new MainClass();
SpeechRecognitionEngine sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));
Choices choiceList = new Choices();
choiceList.Add(new string[]{"Open", "Close", "Then", "Volume", "Up", "Firefox", "Notepad", "Steam","turn", "the", "now" } );
GrammarBuilder builder = new GrammarBuilder();
builder.Append(choiceList);
Grammar grammar = new Grammar(new GrammarBuilder(builder,0, 10) );
sre.SpeechRecognized += main.sreRecognizedEvent;
sre.SpeechDetected += main.sreDetectEvent;
sre.SpeechRecognitionRejected += main.sreRejectEvent;
sre.RecognizeCompleted += main.sreCompleteEvent;
sre.InitialSilenceTimeout = TimeSpan.FromSeconds(0);
sre.BabbleTimeout = TimeSpan.FromSeconds(0);
sre.EndSilenceTimeout = TimeSpan.FromSeconds(0);
sre.EndSilenceTimeoutAmbiguous = TimeSpan.FromSeconds(0);
sre.SetInputToDefaultAudioDevice();
sre.LoadGrammar(grammar);
while(true){
sre.Recognize();
}
}
void sreRecognizedEvent(Object sender, SpeechRecognizedEventArgs e){
Console.Write("Reconized ~ " + e.Result.Text + " ~ with confidence " + e.Result.Confidence);
Console.WriteLine();
}
void sreDetectEvent(Object sender, SpeechDetectedEventArgs e){
Console.WriteLine("Detected some type of input");
}
void sreRejectEvent(Object sender, SpeechRecognitionRejectedEventArgs e){
Console.WriteLine("Rejected Input ~ " + e.Result.Text) ;
}
void sreCompleteEvent(Object sender, System.Speech.Recognition.RecognizeCompletedEventArgs e){
Console.WriteLine("Completed Recongnization");
}
}
}
Run Code Online (Sandbox Code Playgroud)
原来我的麦克风灵敏度太高了。准确地说,非常非常高。它的值为 100,这意味着它会拾取最小的声音(例如背景噪音)。
我的猜测是,这些微小的声音会被放大到如此高的程度,以至于人们SpeechRecognitionEngine很难将其与实际的语音区分开来。
将灵敏度调低到 20 或 30 左右就可以了。

| 归档时间: |
|
| 查看次数: |
2123 次 |
| 最近记录: |