NAudio UnspecifiedError при вызове .StartRecording ()

При получении метода waveIn.StartRecording() для экземпляра объекта NAudio.Wave.WaveInEvent я получаю следующее UnspecifiedError:

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, у меня не так много проблем. Вот что я пробовал до сих пор в своем устранении неполадок:

Наушники

  • Использование линейного 3,5-мм микрофона
  • Использование микрофон игровой гарнитуры

Версии NAudio через Nuget

  • версия 1.9.0 (опубликовано в апреле 2019 года)
  • версия 1.8 .5 (опубликовано в октябре 2018 года)
  • версия 1.8.4 (опубликовано в декабре 2017 года)

DeviceNumber

  • 0 (только значение, которое не выдает исключение BadDeviceId)
  • 1, 2, 3 (все из которых выдают исключение BadDeviceId)

Тестирование параметра NAudio.Wave.WaveFormat()

Параметр 1: Частота дискретизации - 16000 (поскольку это значение «по умолчанию», содержащееся в примере кода Google Cloud - информация в нижней части этого поста) - 44100 ( действительно ли дефективная частота дискретизации, если это не сработает, будет ли любая частота дискретизации?)

Param2: Биты - я попытался указать перегрузку с 3 параметрами, где я поставил 16 бит явно, но безрезультатно

Param3: Каналы - 1 (должно быть правильно, учитывая, что оба моих микрофона являются моновходами) - 2 (проверено на хорошую меру)

И, наконец, я также попытался полностью закомментировать строку кода waveIn.WaveFormat = new NAudio.Wave.WaveFormat(...);, которая использует новый экземпляр по умолчанию WaveFormat, проверенный через Console.WriteLine() как канал 16 бит / 8 кГц / 1. Но все равно безрезультатно.

Спасибо за помощь.


Обновление: TLDR - не зависит от GCP.

Я перемещаю сюда всю информацию, связанную с Google Cloud, поскольку она предоставляет некоторую контекстную информацию, но было доказано, что она не оказывает прямого влияния на полученную мной ошибку NAudio.

Я пытаюсь заставить функциональность потоковой передачи аудио Google Cloud Speech to Text работать. У меня есть функция public static async Task<object> StreamingMicRecognizeAsync(int seconds), определенная, как можно найти в Google Cloud Cloud здесь .

В отдельной асинхронной функции я запускаю следующую строку кода, которая содержит код, который вызывает waveIn.StartRecording().

object r = await StreamingMicRecognizeAsync(15);
0
задан Chad 1 July 2019 в 15:47
поделиться