实时录制多声道音频输入

时间:2013-11-06 23:07:50

标签: real-time signal-processing recording audacity

我正在尝试使用PS3 Eye实时实现到达时差。由于它有一个内置的4个麦克风阵列,我已经成功地将阵列重新排列成方阵,并使用MATLAB对信号进行互相关,以获得相对准确的TDOA算法。但是,到目前为止,我一直在记录信号,保存文件(数组中每个麦克风有4个单独的文件),然后将这些文件输入MATLAB以便事后阅读。

我的问题是:MATLAB不能单独识别PS3 Eye的麦克风;它只承认它是一个整体。到目前为止,Audacity是为数不多的实际运作良好的程序之一,但我对使用该程序缺乏经验,并且不了解它的实时功能。有人建议如何以这种方式进行实时信号分析?如果使用PS3之外的其他东西会更好,那么我愿意接受建议。感谢。

3 个答案:

答案 0 :(得分:0)

我对MATLAB或PS3眼睛知之甚少,但各种硬件麦克风允许您捕获包含多个(通常为2个)通道的单个音频流。音频数据将以帧形式出现,每帧包含每个通道的单个样本。

我不确定你的意思"整体识别",但我认为你的意思是MATLAB混合通道,以便设备只产生一个可用的通道。如果您可以捕获要存档的通道,并且它们都来自同一设备(即硬件时钟),那么您应该没问题,除非此解决方案不是"实时"。

Sound Exchange进行了类似的讨论,最终建议Microcone。还有其他各种产品,从麦克风阵列到模拟麦克风源的数字混音器,但你的问题似乎主要是关于如何用软件获取数据。

简而言之,请确保您看到具有多个频道的单个设备。这将确保每个通道使用相同的硬件时钟,并防止漂移问题。

答案 1 :(得分:0)

这只是一个疯狂的猜测,因为我不知道MATLAB的实时输入选项。

也许尝试收割机(http://www.reaper.fm/)..它具有很好的多轨功能,你可以扩展它(我认为脚本语言是python)。很好的文档和第三方贡献,OSC和Rewire支持。所以也许你可以考虑将音频路由到收割机,在python中进行一些数据规范化,然后将数据路由到MATLAB。

或者您可以使用开源且非常开放的PURE DATA,其中包含许多可能放在一起的补丁(基本处理单元)。

HTH

顺便说一下,我绝不是附属机智或PD。

编辑:您可能还想考虑supercollider(http://supercollider.github.io/)或Chuck(http://chuck.cs.princeton.edu/

答案 2 :(得分:0)

这是一个领先者,但我还没有能够测试它。

在Windows上,您可以从Eye with Audacity录制单个4轨道ogg音频文件(使用WASAPI驱动程序选择)。

截至2014年7月23日,pa-wavplay for 32-bit and 64-bit MEX支持WASAPI。您必须重建PortAudio库以按照here所述选择WASAPI接口,并获取MatLab中的所有四个轨道(在Windows中)。

可悲的是,如果您不在Windows上,我也没有任何建议。调整PortAudio构建可能有所帮助,但我只知道WASAPI适用于Eye。