笔记本的客户端麦克风分析

时间:2011-06-24 13:18:38

标签: java flash audio javafx

所以我希望建立一个RIA,允许在任何给定的时间点分析来自用户麦克风的音频流,这样我就可以检测到它是什么音符。我想我可以很容易地用频率进行音符检测,但这种即时处理似乎不可能在flash中(我的首选)而且我没有找到太多关于它我能以java的形式理解小程序(不太喜欢,但确定)。

有人能指出我正确的方向吗?有没有办法在没有巨大延迟的情况下通过将其发送到我的服务器并返回来进行闪存?如果没有,我怎么能用Java做呢?

由于

2 个答案:

答案 0 :(得分:1)

您可以使用SoundMixer计算频谱。要检测实际音高,您需要进一步处理频谱。

SoundMixer.computeSpectrum(ba,true,0);

http://en.wikipedia.org/wiki/Pitch_detection_algorithm

使用频谱,您可以在客户端的ActionScript中执行此操作。计算很简单,所以不会打扰用户。

答案 1 :(得分:1)

您可能也想查看我的频谱分析仪代码。 https://gerrybeauregard.wordpress.com/2010/08/06/real-time-spectrum-analysis/ 它使用FFT类和实时麦克风输入。要制作一个非常简单的音高检测器,您可以找到幅度谱中的最高峰,并对峰值和两侧的二进制位进行二次插值,以获得子仓频率分辨率。如果你试图识别单个音符,使用最高峰可以正常工作,并且乐器泛音结构使得基波是最强的谐波(通常是这种情况)。