问候, 我正在尝试用Python编写一个程序,每次在麦克风中敲击时都会打印一个string。 当我说'点击'时,我的意思是一个巨大的突然噪音或类似的东西。 我在SOsearch,发现这个职位: 认识audio的音调 我认为PyAudio库会适合我的需求,但我不太清楚如何让我的程序等待audio信号(实时麦克风监控),当我得到一个如何处理它(我是否需要使用傅立叶变换像在上面的post中有教导)? 提前感谢您的帮助,您可以给我。
我试图用Snow Leopard上的Java Sound录制/处理三个USB麦克风的audio(但是如果修复了问题,可以切换到Windows)。 问题是,当我尝试使用与USB麦克风相对应的调音台时,Java Sound告诉我该行不受支持。 具体来说,这是说… 可用的混音器: Java声音audio引擎 USBMIC串行#041270067 内置input内置麦克风 Soundflower(2ch) Soundflower(16ch) 线程“AWT-EventQueue-0”中的exceptionjava.lang.IllegalArgumentException:线路不支持:接口TargetDataLine支持格式PCM_SIGNED 96000.0 Hz,8位,立体声,2字节/帧, 当我要求它selectUSBMIC调音台时: Mixer mixer = AudioSystem. getMixer(mixerInfo[1]); 我已经尝试将audio格式与麦克风(16位,44100Hz,立体声)的确切规格进行匹配,并没有任何区别。 问题在这里出现: final TargetDataLine line = (TargetDataLine) mixer.getLine(info); 这似乎是搅拌机和TargetDataLine不喜欢对方。 有什么办法让这两个“匹配”,相处? 我使用的麦克风无疑是有点奇怪的。 他们被制作成名为SingStar的卡拉OKvideo游戏。 麦克风本身具有标准的单声道线路input连接器,可插入一个小型集线器(两个集线器),将其转换为一个单独的USB连接器。 除了奇怪之外,他们似乎和Audacity一起工作的很好,因此多渠道logging显然是可能的,也许不是Java。 我也考虑过使用像Soundflower这样的程序来共享不同程序之间的audio。 不过,我不能确定这将工作,因为我不知道如何使USB麦克风input到Soundflower,然后将它们pipe入Java。 一个快速实验告诉我,我可以从麦克风录制Audacity中的audio,通过Soundflower将其导出,然后在我的Java程序中进行处理。 不过,我想要做的是在Java中实时发生。 有人熟悉这种问题吗?