我正在使用Sphinx4 API使用语音识别的软件(使用Java)。
为了减少干扰,我想在2个不同的麦克风上录制2种声音(一个用于扬声器(A),另一个用于录制“环境”(B)),然后执行AB以获得“无干扰”声音,我给予Sphinx认可。我认为java.sound可以做类似的事情,但是我真的不知道该怎么做。
Java Sound本身无法执行此类信号处理。但是您可以从麦克风实时获取原始音频数据,自己进行处理,然后传递给Sphinx4。
要访问2个麦克风,请查询中的可用混音器AudioSystem
,然后选择与两个麦克风相对应的2个混音器。从每个混音器中获取一个,SourceDataLine
并使用它来捕获音频数据。
您可以实时处理数据,只需确保在上使用合适的缓冲区大小即可SourceDataLine
。对应于20ms的缓冲区大小在大多数系统上都应工作。
大多数硬件都可以正常工作。SourceDataLine
在Windows和Linux上有“ direct” 。您在OS X上的花费会有所不同(取决于Java实现)。
www.jsresources.org有许多编程示例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句