我想写一个音乐应用程序,其中检测音高是它的核心。我已经看到了这个问题的解决方案以及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辆花车每个水龙头。这些来自麦克风的幅度样本是?
该文档至少权利要求它是从所述节点输出:“buffer参数是从一个AVAudioNode的输出捕获的音频的缓冲器。”
是否有可能使用AVAudioEngine来检测实际音高时间还是应该以另一种方式去做?
你在Swift中实现了吗?如果可行,您可以共享音高检测或示例项目的Created文件吗?我正在使用AVAudioRecorder录制音频 –