Boa noite Igor, Obrigado por responder.
Eu queria poder utilizar um microfone público e outros privados.
Sendo que o reconhecimentos destes privados limitaria comandos de voz.
Minha ídeia era pegar a lista de microfones dentro de um for e repetir esse método abaixo pra cada microfone.
Modificar ele pra passar o Stream toda vez que encontar um microfone ativo dentro do laço for
LoadSpeechRecognition(stream);
private void LoadSpeechRecognition()
{
GrammarBuilder gb = new GrammarBuilder();
SQLiteConnection conn = new SQLiteConnection("Data Source=Data.sdb");
conn.Open();
string sql = "SELECT primeirafrase,segundafrase FROM comandos";
SQLiteCommand cm = new SQLiteCommand(sql, conn);
SQLiteDataReader dr = cm.ExecuteReader();
Choices cn = new Choices();
while (dr.Read())
{
cn.Add(dr.GetString(0));
cn.Add(dr.GetString(1));
}
conn.Close();
cn.Add("Tau");
cn.Add("silêncio");
gb.Append(cn);
Grammar g = new Grammar(gb);
sre.SetInputToDefaultAudioDevice();
sre.BabbleTimeout = TimeSpan.FromMilliseconds(100);
sre.LoadGrammar(g);
sre.RecognizeAsync(RecognizeMode.Multiple);
sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(RecognitionEvent);
}