【发布时间】:2020-09-15 18:00:07
【问题描述】:
我正在开发一个应用程序,它会等待麦克风检测到某个频率。据我研究,我认为最好的方法是对实时音频信号执行快速傅立叶变换(如果有人认为有更好的方法,我很想听听你的意见)。它在 iOS 上运行良好,但我找不到让它在 watchOS 上运行的方法
我在 iOS 和 Swift 5 上实现了著名的 tempi-fft 没有问题,问题来自于不同的库不存在或限制在 watchOS SDK,因为我不能使用 AudioUnit,AURenderCallback 来检测缓冲区上的新数据,可以'不要将首选缓冲区持续时间和采样率调整为 WatchOS 上的 AudioSession 等。我根本不是“音频工程”方面的专家,所以我不知道如何解决这个问题。我研究了很多,但我没有找到 watchOS 上的实现。
我只发现了这个项目AccelerateWatch,但这是几年前在watchOS 上还没有Accelerate 框架时上传的。
对此的任何帮助将不胜感激。
【问题讨论】:
-
欢迎来到 SO :) 你的问题很模糊,我想如果你能具体说出你尝试过的和没用的,你会得到更多有用的答案
-
如果您只对特定频率感兴趣,那么 FFT 就太过分了 - 请考虑改用 Goertzel 滤波器。
标签: swift fft watchos accelerate-framework vdsp