I am using Window's voice recognition API, and it keeps detecting very low background noise as the word "if" repetitively. I have been trying to find a way to put a minimum volume requirement for it to start accepting input, but all its members are set to read-only.
How can I set a minimum cut off for the microphone's volume?
Edit: Figured out a way to get the average and ignore the text if it's under the average I want
public void hRecognition_AudioStateChanged(object sender, AudioStateChangedEventArgs e)
{
if (e.AudioState == AudioState.Stopped)
{
volumeAverage /= volumeCount;
}
else if (e.AudioState == AudioState.Speech)
{
volumeAverage = 0;
volumeCount = 0;
}
}
public void hRecognition_AudioLevelUpdated(object sender, AudioLevelUpdatedEventArgs e)
{
volumeAverage += e.AudioLevel;
volumeCount += 1;
}
Make sure your headset or microphone is plugged in, then right-click the speaker icon in the lower- right corner of the Windows taskbar. Click Recording Devices. Speak into the microphone at the same volume and distance you will use when recording. While you are speaking, watch the Input Level for the microphone.
Select the one you'd like to adjust, then click the “Properties” button. In the “Properties” window that appears, click the “Levels” tab. In the “Levels” tab, use the Microphone slider to adjust the input level of the microphone. The higher the level, the louder your microphone signal will be while it's in use.
Good question, i had to a little work on some sound analyses software. And you could implement a sound filter, sound filters. I have no experience with windows voice recognition but with i hope this helps, look into signal proccesing simple noise filters
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With