在UnspecifiedError
对象实例上到达waveIn.StartRecording()
方法时,我收到以下NAudio.Wave.WaveInEvent
:
NAudio.MmException:'UnspecifiedError调用waveInOpen'
适用的NAudio代码如下:
var waveIn = new NAudio.Wave.WaveInEvent();
waveIn.DeviceNumber = 0;
waveIn.WaveFormat = new NAudio.Wave.WaveFormat(16000, 1);
waveIn.StartRecording(); // Here's where the Exception is thrown
由于这是一个UnspecifiedError,所以我没有太多事情要做。到目前为止,这是我在故障排除中尝试过的方法:
耳机
通过Nuget的NAudio版本
设备编号
NAudio.Wave.WaveFormat()
的参数测试
参数1:采样率 -16000(因为它是Google Cloud示例代码中包含的“默认”值-这篇文章底部的信息) -44100(真正的实际采样率,如果这不起作用,将有任何采样率吗?)
Param2:位 -我尝试提供3参数重载,其中我明确提供了16位,但仍然无济于事
Param3:频道 -1(鉴于我的两个麦克风均为单声道输入,应该是正确的) -2(经过良好测试)
最后,我还尝试完全注释掉waveIn.WaveFormat = new NAudio.Wave.WaveFormat(...);
行代码,该行使用WaveFormat
的默认新实例,并通过Console.WriteLine()
验证为16位/ 8kHz / 1通道。但仍然无济于事。
感谢您的帮助。
更新:TLDR-不受GCP影响。
我正在将与Google Cloud有关的所有信息移到此处,因为它提供了一些上下文信息,但是事实证明,它不会直接影响我收到的NAudio错误。
我正在尝试使用Google Cloud语音转文本流音频功能。我定义了Google's Cloud docs here中的public static async Task<object> StreamingMicRecognizeAsync(int seconds)
函数。
在一个单独的异步函数中,我运行以下代码行,其中包含调用waveIn.StartRecording()
的代码。
object r = await StreamingMicRecognizeAsync(15);