В моем приложении я использую AVAudioEngine для распознавания речи, но мне трудно понять, как правильно настроить inputNode.
Я использовал это руководство в качестве примера для своего кода: https://www.raywenderlich.com/155752/speech-recognition-tutorial-ios
Эта часть кода вызывает у меня головную боль:
let node = audioEngine.inputNode
let recordingFormat = node.outputFormat(forBus: 0)
node.installTap(onBus: 0, bufferSize: 1024,
format: recordingFormat) { [unowned self]
(buffer, _) in
self.request.append(buffer)
}
audioEngine.prepare()
try audioEngine.start()
В основном мое приложение вылетает с этой ошибкой:
AVAEInternal.h:70:_AVAE_Check: required condition is false: [AVAudioIONodeImpl.mm:897:SetOutputFormat:
(format.sampleRate == hwFormat.sampleRate)]
Итак, мой вопрос, как мнеполучить аппаратное значение sampleRate от устройства, на котором запущено приложение, поэтому я могу установить его в свой формат записи для узла?
Кроме того, если запущенное приложение записывается через Mac или отображается на экране Apple TV, я полагаюМне нужно будет получить hw sampleRate для этого устройства, чтобы мое приложение не зависало и в этих случаях?!
Любая помощь очень ценится!