Hi, I have a C # project that I want to add to that unique voice recognition feature.
In this project, I have to have a database of different people's voice samples and compare the incoming sounds in terms of parameters with the sounds in the database, but I don't know how to extract these parameters from the sounds? And how do I compare them?
I've heard that it's possible to do this using machine learning topics, but I don't know anything about them yet.
Dear friends, can you introduce me some resources or tutorials for this?
Or if you can guide me?
Thank you.....
What I have tried:
So far, I've only been able to implement a text-sensitive voice recognition program, but that's not enough because it's not sensitive to a specific sound:
public partial class EnVoiceUC : UserControl
{
public EnVoiceUC()
{
InitializeComponent();
}
string[] dialogs = Program.dlgArr;
private void Recorder_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Form1 f1 = new Form1();
string recText = e.Result.Text;
for (int i = 0; i < dialogs.Length; i++)
{
if(dialogs[i]==recText)
{
try
{
((Form)this.TopLevelControl).Hide();
f1.ShowDialog();
((Form)this.TopLevelControl).Close();
} catch {;}
}
}
}
private void DoRecord_Click(object sender, EventArgs e)
{
System.Media.SystemSounds.Beep.Play();
VoiceRecorder(true);
}
public void VoiceRecorder(bool enable)
{
Choices voices = new Choices();
SpeechRecognitionEngine recorder = new SpeechRecognitionEngine();
voices.Add(dialogs);
Grammar gramer = new Grammar(new GrammarBuilder(voices));
label2.Visible = enable;
if (enable)
{
try
{
recorder.RequestRecognizerUpdate();
recorder.LoadGrammar(gramer);
recorder.SpeechRecognized += Recorder_SpeechRecognized;
recorder.SetInputToDefaultAudioDevice();
recorder.RecognizeAsync(RecognizeMode.Multiple);
}
catch { return; }
}
else
{
try { recorder.UnloadGrammar(gramer); } catch { return; }
}
}
}