Portaudio:将声音示例导入我的缓冲区

时间:2012-06-05 18:25:40

标签: audio buffer signal-processing simulation portaudio

我再次需要你的帮助。

简短版本 你能把声音片段导入Portaudio吗?如果没有,我在哪里可以获得“真实的”声音示例,将其转换为离散值,我可以将其存储到声音缓冲区中?

长版: 作为小型项目的一部分,我决定实施HRTF。为此,我使用的是PortAudio(http://www.portaudio.com/),这是一个用于声音处理的C / C ++库。作为其中的一部分,我试图模拟ITD(Inneraural Time Difference)。为此,PortAudio生成一个正弦波并将其存储到缓冲区中,尽管正弦波用于测试是有问题的。 这就是为什么我需要一个“现实的”声音例子。问题是,我似乎无法找到任何允许我导入声音片段并将它们存储到我的缓冲区中的PortAudio函数。 作为第二种选择,我可以查找一个声音片段,该片段被转换为离散值并存储到数组中。然后我可以将该数组复制到我自己的缓冲区中,虽然我不知道在哪里寻找这样的数组,我甚至不知道它们是否存在。

所以问题是: PortAudio是否允许您导入自己的声音片段,如果没有,我在哪里可以找到声音片段以离散值存储的阵列。

如果对我的问题有任何疑问,请求。 最诚挚的问候 - Marc Pilgaard

1 个答案:

答案 0 :(得分:3)

PortAudio只是一个音频播放/录制库。它既不会操纵声音,也不会带来任何加载/存储声音的设施。它只是实现缓冲 - >扬声器和麦克风 - >缓冲液中。

如果我理解你正确,你正在寻找一个库,让你将wav或mp3文件加载到缓冲区中,而缓冲区又可以由portaudio播放。由于您处于C世界,因此最好的步骤是使用libsndfile,它基本上模仿标准C文件访问接口,用于加载和写入pcm文件,例如wav。