iOS Speech - audioEngine inputNode генерирует ошибку тайм-аута сообщения Маха - PullRequest
0 голосов
/ 15 января 2019

Я играю с распознаванием речи iOS и добавил запрос на использование микрофона в моем Info.plist. При записи приложение отображает всплывающее окно для запроса доступа, как и ожидалось

MyApp would like to access the microphone

Однако, если я жду ответа более нескольких секунд, приложение вылетает с сообщением об ошибке: RPCTimeout.mm: 55: _ReportRPCTimeout: Initialize: Тайм-аут сообщения Маха. Видимо в тупик. Отмена сейчас.

Код, вызвавший сбой, - это строка let node = audioEngine.inputNode

let node = audioEngine.inputNode 

let recordingFormat = node.outputFormat(forBus: 0)

node.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { buffer, _ in
    self.request.append(buffer)
}

Я провел некоторые исследования, и единственное решение этой ошибки - убедиться, что в настройках звука на Mac установлены встроенные динамики для ввода и вывода, которые у меня уже есть.

Если я устанавливаю защиту на узле, как показано ниже, XCode выдает ошибку: Значение типа 'AVAudioInputNode' не имеет члена 'inputNode'

guard let node = audioEngine.inputNode.inputNode else {
    return
}
...