Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取两个音频输入流之间的差异-java_Java_Audio_Speech Recognition_Javasound_Sphinx4 - Fatal编程技术网

获取两个音频输入流之间的差异-java

获取两个音频输入流之间的差异-java,java,audio,speech-recognition,javasound,sphinx4,Java,Audio,Speech Recognition,Javasound,Sphinx4,我正在开发一个使用语音识别的软件(java) 为了减少干扰,我想在两个不同的麦克风上录制两个声音(一个用于扬声器(A),另一个用于录制“环境”(B)),然后进行A-B操作以获得一个“无干扰”的声音,我将其发送给斯芬克斯进行识别。我认为java.sound可以做类似的事情,但我真的不知道怎么做 你认为这种解决办法行得通吗 有可能实时完成吗?如果是,它需要什么样的硬件配置 你有我的案例的一些有用的链接/代码吗 Java Sound本身无法进行此类信号处理。但您可以从麦克风中实时获取原始音频数据,自

我正在开发一个使用语音识别的软件(java)
为了减少干扰,我想在两个不同的麦克风上录制两个声音(一个用于扬声器(A),另一个用于录制“环境”(B)),然后进行A-B操作以获得一个“无干扰”的声音,我将其发送给斯芬克斯进行识别。我认为java.sound可以做类似的事情,但我真的不知道怎么做

  • 你认为这种解决办法行得通吗
  • 有可能实时完成吗?如果是,它需要什么样的硬件配置
  • 你有我的案例的一些有用的链接/代码吗

    • Java Sound本身无法进行此类信号处理。但您可以从麦克风中实时获取原始音频数据,自己处理,然后传递到Sphinx4

      要访问2个麦克风,请在
      Audio System
      中查询可用的混音器,然后选择与这两个麦克风对应的2个混音器。从每个混音器中,获取一条
      SourceDataLine
      ,并使用它捕获音频数据

      您可以实时处理数据,只需确保在
      SourceDataLine
      上使用合适的缓冲区大小即可。对应于20ms的缓冲区大小应适用于大多数系统

      大多数硬件都可以正常工作。Windows和Linux上有“direct”
      SourceDataLine
      。您在OSX上的里程将有所不同(取决于Java实现)


      有许多编程示例。

      这个问题似乎离题了,因为它是关于数字信号处理,而不是编程本身。