gpt4 book ai didi

Azure 语音识别未检测到麦克风 SPXERR_MIC_NOT_FOUND

转载 作者:行者123 更新时间:2023-12-03 04:01:54 30 4
gpt4 key购买 nike

我有一个小示例应用程序来测试语音识别。它在某些机器上有效,但在其他机器上无效。在我第一次安装必要软件包的开发环境中,一切都 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 中的所有其他情况下都可以工作,并且 Naudio 检测到它很好。

有什么想法吗?

谢谢你。

最佳答案

您正在创建 UWP 应用程序吗?如果是这样,您需要以不同的方式检索音频设备 ID:

var devices = await DeviceInformation.FindAllAsync(DeviceClass.AudioCapture);

foreach (var device in devices)
{
Console.WriteLine($"{device.Name}, {device.Id}\n");
}

请参阅此处的文档以获取更多信息: https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/how-to-select-audio-input-devices#audio-device-ids-on-uwp

如果您仍然遇到问题,我们需要获取 SDK 日志以进一步调试。有关如何打开日志记录的说明可以在此处找到: https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/how-to-use-logging

关于Azure 语音识别未检测到麦克风 SPXERR_MIC_NOT_FOUND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62006306/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com