При получении метода waveIn.StartRecording()
для экземпляра объекта NAudio.Wave.WaveInEvent
я получаю следующее UnspecifiedError
:
NAudio.MmException: 'UnspecifiedError вызывает waveInOpen'
blockquote>Применимый код 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
, определенная, как можно найти в Google Cloud Cloud здесь .В отдельной асинхронной функции я запускаю следующую строку кода, которая содержит код, который вызывает
waveIn.StartRecording()
.object r = await StreamingMicRecognizeAsync(15);