我在网上找到了许多用于在iOS中处理音频的例子,但是大多数都已经过时了,并不适用于我想要完成的任务.这是我的项目:
我需要从两个来源捕获音频样本 - 麦克风输入和存储的音频文件.我需要对这些样本执行FFT以产生整个剪辑的"指纹",以及应用一些额外的过滤器.最终目标是构建一种类似于Shazam等的歌曲识别软件.
在iOS 8中捕获单个音频样本以执行快速傅里叶变换的最佳方法是什么?我想最终会有大量的这些,但我怀疑它可能不会像那样.其次,如何使用Accelerate框架处理音频?它似乎是在iOS中对音频执行复杂分析的最有效方式.
我在网上看到的所有例子都使用旧版本的iOS和Objective-C,但我无法将它们成功转换为Swift.iOS 8是否为这类东西提供了一些新的框架?
我是 iOS 编程新手,我想使用 Swift 3 将 Android 应用程序移植到 iOS。该应用程序的核心功能是从麦克风读取字节流并实时处理该流。因此,将音频流存储到文件并在录音停止后对其进行处理是不够的。
我已经找到了可以工作的 AVAudioRecorder 类,但我不知道如何实时处理数据流(过滤、将其发送到服务器等)。AVAudioRecorder 的 init 函数如下所示:
AVAudioRecorder(url: filename, settings: settings)
Run Code Online (Sandbox Code Playgroud)
我需要的是一个类,我可以在其中注册一个事件处理程序或类似的类,每次读取 x 个字节时都会调用该类,以便我可以处理它。
AVAudioRecorder 可以做到这一点吗?如果没有,Swift 库中是否还有另一个类可以让我实时处理音频流?在 Android 中我使用 android.media.AudioRecord 所以如果 Swift 中有一个等效的类那就太好了。
问候