У меня есть небольшой образец приложения для проверки распознавания речи. Он работает на некоторых машинах, но не работает на других машинах. В моей среде разработки, где я впервые установил необходимые пакеты, все работало на 100% без проблем. Но мои товарищи по команде не могут заставить его работать с установкой нашего программного обеспечения, в котором есть этот код. У нас смешанные среды, в которых в некоторых случаях мы используем удаленный рабочий стол с приложением, работающим на удаленном компьютере (то есть при интеграции устройства через RDP). А также локально без RDP. В обоих случаях mi c не определяет. Windows обнаруживает mi c. Приложение для записи работает и все тестирует, поэтому мы знаем, что mi c распознается windows.
Однако речевой SDK его не распознает.
Пробовал 2 способа. Во-первых, с использованием FromDefaultMicrophoneInput
, но с этим не работает, я изменил его на FromMicrophoneInput
вместо этого и указал идентификатор микрофона.
Используя NAudio для перечисления микрофонов, mi c обнаруживается и отображается :
var enumerator = new MMDeviceEnumerator();
string specifiedMicID = string.Empty;
foreach (var endpoint in
enumerator.EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active))
{
if (endpoint.FriendlyName != this.MicName)
continue;
else
{
specifiedMicID = endpoint.ID;
break;
}
}
audioConfig = AudioConfig.FromMicrophoneInput(specifiedMicID);
Но при попытке создать экземпляр SpeechRecognizer с этой аудио-конфигурацией:
using (var recognizer = new SpeechRecognizer(config, audioConfig))
{
...
}
Мы получаем SPXERR_MIC_NOT_FOUND. Даже подумал, что он явно там и работает во всех других случаях в windows и с Naudio, обнаруживающим это нормально.
Есть идеи, что здесь происходит?
Спасибо j.