我想要完成的工作基本如下:
我花了大约三天时间,通过在线论坛,书籍和API仔细搜索无济于事。我陷入了最关键的一步 - >确定音频块(缓冲区)的功率电平。
阅读了大部分即将到来的Core Audio book后,我对AudioQueues,Audio Units的低级环境以及某种程度上的OpenAL感到满意。但是,我所看到的所有示例和解释(在本书和网络上的其他地方)都涉及在播放或录制音频文件时(即实时)确定功率电平值。
然而,我的目的是快速有效地确定磁盘上给定文件的这些值,而无需实时回放。我非常感谢您对我需要查看的库,功能的任何指导。
感谢。
答案 0 :(得分:1)
有几种方法可以实现这一目标。您可以将整个文件读入内存,然后应用分析。或者读取文件的块并使用AudioFile.h中的AudioFileReadPackets(...)获取每个块的平均级别。
答案 1 :(得分:0)
你坚持哪一部分?我还没有玩过阅读或写入文件,所以其他人可以帮助你解决这个问题。但就实际处理音频流而言,您将需要使用加速框架。它包含用于获取所需数据的函数。为了获得功率水平,我不确定你是否需要首先对信号进行FFT。
如果你这样做,我就如何使用加速框架进行FFT编写了一篇冗长的答案Using the Apple FFT and Accelerate Framework。
我记得通过功能列表查看 - 有功能可以找到信号中的峰值功率和平均功率。您可能希望将音频信号作为一组浮点读入,以便利用这些功能。