我需要分析系统输出声音运行时间。操作系统:Linux。我需要的第一件事是获得不同的频率值。编程语言:c ++。
答案 0 :(得分:1)
答案 1 :(得分:1)
想到从多个来源获取所有声音的一种半便携式*方式是PulseAudio。 (在这种情况下,半便携式意味着使用许多声卡,不使用不同的操作系统,尽管有一个WinXP版本的PulseAudio)。其中一个PulseAudio modules提供了一个管道接收器。希望您的所有输出都与PulseAudio兼容 - 几乎所有与ALSA相配的都应该没问题。然后,您应该只需从该管道中读取即可获得输入。
然后,您可以使用像FFTW这样的库(由Thomas的答案首先提出)进行快速傅里叶变换,假设这是“获取频率值”的意思。
<子> *在这种情况下,半便携式意味着使用许多声卡,不使用不同的操作系统,虽然有一个WinXP版本的PulseAudio(我自己没有尝试过)。 子>