我是否可以找到一种方法来获取每个帧的频率,如.mp3或.wav或任何其他声音格式使用“fmod”或“cwave”库甚至其他库? 如何在C / C ++中找出这个频率?
答案 0 :(得分:2)
FFTW库是一组非常快速的不同傅里叶变换实现。
答案 1 :(得分:0)
如果你有大量的数字化音频样本,那么你的样本总共有很多频率和阶段。假设您只有两个音频样本。为了忠实地代表它们,你需要一个频率和一个阶段 - 所以再次,两个值。没有“单一”频率来表示多个数字化音频样本。
当然,您可以类似于“我如何获得特定视频帧的颜色?”的问题,询问平均频率是多少。或者您可以询问最突出的频率是什么(振幅最高的频率)。或者你可以问一下它的谐波在信号中携带最多能量的频率是多少(假设信号是物理的,就像电流在时间上采样一样)。
在所有这些情况下,您可能希望使用内部使用FFT或类似离散变换的预制库来将信号从时域获取到频率或类似域(quefrency domain,例如,它不是一个错字)。很难从纯FFT获得你想要的东西,你需要一些数学训练来处理原始FFT结果到你想要的东西。我确定有它的库,我现在想不出来。也许处理此类工作的人可以编辑答案。