Foreach en SpeechRecognizer

Iniciado por rigorvzla, 10 Febrero 2018, 11:52 AM

0 Miembros y 1 Visitante están viendo este tema.

rigorvzla

utilizo el SpeechRecognitionEngine
con el la propiedad de "SetInputToDefaultAudioDevice" necesito que me ayuden a realizar una busqueda de los microfonos activos por medio de un foreach
aqui muestro dos metodos con los que me resulta la obtencion de los dispositivos pero ninguno resulta al yo seleccionar el microfono no me lo cambia, algo falta pero no se que es, segun es recargar el SetInputToDefaultAudioDevice luego de un Disposed pero no se como hacerlo.

private void CargaMicro()
       {
           ManagementObjectSearcher mo = new ManagementObjectSearcher("select * from Win32_SoundDevice");

           foreach (ManagementObject soundDevice in mo.Get())
           {
               //Console.WriteLine(soundDevice.GetPropertyValue("DeviceId"));
               //Console.WriteLine(soundDevice.GetPropertyValue("Manufacturer"));
               mic.Items.Add(soundDevice.GetPropertyValue("Name"));              
           }
           //MMDeviceEnumerator names = new MMDeviceEnumerator();
           //var devices = names.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active);
           //foreach (var device in devices)
           //{
           //    mic.Items.Add(device.FriendlyName);
           //}
       }

ya que por defecto me toma el microfono predeterminado, espero puedan ayudarme, estoy usando estos codigos ambos me dan en el combobox la lista de los dispositivoos de captura de sonido, pero no encuentro la forma que al yo seleccionarlo funcionen

antes de eso cargo este metodo

private void ActivarEscucha()
       {
           escucha.SetInputToDefaultAudioDevice();
           escucha.RecognizeAsync(RecognizeMode.Multiple);
           escucha.SpeechRecognized += Escucha_SpeechRecognized;
           escucha.AudioLevelUpdated += Escucha_AudioLevelUpdated;
       }

MeTaD

Mi pana!, no he leído tu código, mañana lo leo bien. Pero... ¿has probado ejecutando como Administrador?

rigorvzla

si pero no funciona por lo siguiente, inicialmente carga el microfono que tiene por default el sistema operativo, y asi se queda, la cosa es que al yo seleccionar el del combobox , deberia cargar ese microfono pero para eso, se debe cancelar el que ya se cargo y volver a cargar el "nuevo" . Pienso que es asi mas , en caso que fuera asi no se como lograrlo.

Gracias por la respuesta y espero puedas ayudarme