2

如果我在问一些已经问过的问题,我真的很抱歉,但是我到处看了看,没有任何结果。

我正在尝试使用 java sound api 即时读取房间中当前的音量。我注意到我从麦克风混音器获得的控件对此没有帮助,从我所见,人们建议从 TargetDataLine 读取一小段声音并使用均方根算法检查音量。

实际问题:) 问题是,每当我在样本上运行 rms 时(我为此使用 PCM_SIGNED,44100Hz 16 位),当没有背景噪音时,我得到的值在 20-30 之间,当我说话/大喊时,我得到的值高达 60 /讲话。(我尝试从 100-44100 的缓冲区大小读取行,缓冲区大小较小,rms 较低 - 但全部 - 安静在 10 左右,噪音在 30 左右。)

问题是,当我播放刚刚录制的内容时,您可以完美地听到所有内容,并且没有背景噪音。

tl;博士谁能(请)告诉我一种从字节数组读数(PCM SIGNED 44100Hz 16bit)中分辨音量的方法?

先谢谢回答的人!

4

1 回答 1

2

请参阅此回复以了解 RMS。

于 2011-04-27T18:59:59.677 回答