图书馆分析声音

时间:2010-04-11 13:23:36

标签: c++ audio

我需要分析系统输出声音运行时间。操作系统:Linux。我需要的第一件事是获得不同的频率值。编程语言:c ++。

2 个答案:

答案 0 :(得分:1)

问题有点模糊,但这里有一些可能有用的信息。

PCM编码的WAV文件是pretty easy to parse;你真的不需要一个库。

对于频率分析,我会使用FFTW进行傅里叶变换。

答案 1 :(得分:1)

想到从多个来源获取所有声音的一种半便携式*方式是PulseAudio。 (在这种情况下,半便携式意味着使用许多声卡,不使用不同的操作系统,尽管有一个WinXP版本的PulseAudio)。其中一个PulseAudio modules提供了一个管道接收器。希望您的所有输出都与PulseAudio兼容 - 几乎所有与ALSA相配的都应该没问题。然后,您应该只需从该管道中读取即可获得输入。

然后,您可以使用像FFTW这样的库(由Thomas的答案首先提出)进行快速傅里叶变换,假设这是“获取频率值”的意思。

<子> *在这种情况下,半便携式意味着使用许多声卡,不使用不同的操作系统,虽然有一个WinXP版本的PulseAudio(我自己没有尝试过)。