我有一个小示例应用程序来测试语音识别。它适用于某些机器,但不适用于其他机器。在我第一次安装必要的软件包的开发环境中,一切都 100% 正常工作,没有任何问题。但是,我的团队成员无法通过安装我们包含此代码的软件来使其正常工作。我们有混合环境,在某些情况下,我们使用远程桌面和在远程机器上运行的应用程序(因此通过 RDP 进行设备集成)。而且在本地没有 RDP。在这两种情况下,它都不会检测到麦克风。Windows 检测到麦克风。录音机应用程序工作并测试所有工作,所以我们知道麦克风正在被 Windows 识别。
但是,语音 SDK 无法识别它。
我尝试了两种方法。首先,使用FromDefaultMicrophoneInput
但不起作用,我将其FromMicrophoneInput
改为并指定了麦克风 ID。
使用 NAudio 枚举麦克风,检测到麦克风并列出:
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 中的所有其他情况下都可以正常工作,并且 Nadio 可以正常检测到它。
有什么想法吗?
谢谢你j。