在Java的内置声音框架中,音频源流可以有多个消费者吗?

时间:2015-05-17 10:26:10

标签: java audio

使用Java的内置音频框架(javax.sound.sampled.*),是否有一种简单的方法可以让单个Java VM实例内的音频源(例如麦克风线)具有多个独立的并发消费者?由于我无论如何都在使用音频处理库TarsosDSP,它对这个问题有帮助吗?或者我需要实现自己的音频混音器吗?

我目前的问题是,我想要

  1. 使用TarsosDSP处理来自麦克风输入的音频流(以在其他分析中导出频谱图)和
  2. 记录该流的片段以将语音转录为文本,这可能需要观察自动激活的音量阈值。

1 个答案:

答案 0 :(得分:1)

我找到了some information,这部分回答了我的问题:

  

<强> 1.3.2。如何获得多个TargetDataLine

     

Java Sound API的当前实现不支持同一记录源的多个TargetDataLine。没有计划改变这种行为。如果将来支持多声道声卡,则可能会为不同的输入获得不同的TargetDataLine个实例。如果您只想“分割”行,请在您的应用程序中执行此操作。另请参阅Can I use multi-channel sound

因此,这意味着,在撰写本文时,Java不支持同一录制源上的多个消费者,并且将来可能不会支持它。这使我能够实现自己的解决方案或找到一个包含现有解决方案的库。