Я занимаюсь разработкой приложения для iOS, которое использует преобразование речи в текст для получения аудиовхода от пользователя. Однако, поскольку я тестировал несколько реальных сценариев, мое приложение зависало каждый раз, когда я подключал внешнюю Bluetooth-гарнитуру к телефону. Я заметил, что сбой происходит при установке крана на inputNode
в объекте AVAudioEngine
.
func configureAudioTap() {
let audioEngine = self.audioEngine
let inputNode = audioEngine.inputNode
let inputNodeFormat = inputNode.outputFormat(forBus: 0)
audioEngine.inputNode.installTap(onBus: 0, bufferSize: 1024, format: inputNodeFormat, block: { [unowned self] buffer, time in
self.recognitionRequest?.append(buffer)
})
}
В консоли я получаю следующую ошибку
exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: format.sampleRate == hwFormat.sampleRate'
При отладке я заметил, что моя гарнитура Bluetooth и встроенный микрофон имеют разные частоты дискретизации. Я также просмотрел документацию к руководству по программированию аудиосеанса, в частности, раздел Ответ на изменение маршрута , но тщетно.
Любые отзывы будут высоко оценены!