Я пытаюсь написать музыкальное приложение, в котором обнаружение тональности является основой всего этого. Я видел решения этой проблемы, а также приложения в AppStore. Однако большинство из них довольно устарели, и я бы хотел сделать это, это Swift. Я рассматривал AVAudioEngine как способ сделать это, но я считаю, что документация не хватает или, может быть, я не выглядел достаточно сложно.Можно ли использовать AVAudioEngine для определения высоты тона в реальном времени?
То, что я обнаружил, что я могу нажать на автобус inputNode так:
self.audioEngine = AVAudioEngine()
self.audioInputNode = self.audioEngine.inputNode!
self.audioInputNode.installTapOnBus(0, bufferSize:256, format: audioInputNode.outputFormatForBus(0), block: {(buffer, time) in
self.analyzeBuffer(buffer)
})
Автобус сливают 2-3 раза в секунду и буфер содержит более 16000 поплавки для каждого крана. Являются ли эти амплитудные выборки из микрофона?
Документах по крайней мере, утверждает, что это выход из узла: «Параметр буфер представляет собой буфер аудио захваченный с выхода на AVAudioNode.»
Можно ли использовать AVAudioEngine для обнаружения тона в реальном времени или я должен пойти по этому пути?
Были ли вы реализованы в Swift? если возможно, вы можете поделиться созданным файлом для определения высоты тона или образца проекта? Я использую AVAudioRecorder для записи звука –