Androidaudio分析实时

我在网上search了这个,但是还是有点困惑(因为我相信别人会想到这样的事情)。 我想说,这不是作业和/或利润。

我想创build一个应用程序,可以听你的微波炉准备爆米花。 当popup窗口之间有一定的时间间隔(比如说5-6秒)时,它会发出警报。 再次,这只是一个让我占领的项目 – 不是为了一个class级。

无论哪种方式,我都很难试图找出如何实时分析audio的摄入量。 也就是说,我需要一个logging“pop”出现的时间的方法。 所以,你们不认为我没有做任何研究,我已经检查了这个问题,并广泛search了AudioRecord函数列表。

我在想,我可能不得不对read()的一个版本做一些事情,然后每2秒钟将录制的audio与“pop”的录制audio进行比较(即如果70%或更多byte [] audioData数组与popup的声音相同,然后logging时间)。 任何有Androidaudioinput经验的人都可以告诉我,如果我至less在正确的轨道上? 这不是我想要你为我编码的问题,而是一个问题,关于我是否在正确的轨道上,如果不是,我应该换一个方向。

Solutions Collecting From Web of "Androidaudio分析实时"

检查此代码(忽略回放部分): 实时播放来自麦克风的声音

基本上这个想法是,你将不得不采取每个16位样本的价值(这对应于当时的波的价值)。 使用采样率,您可以计算峰值之间的时间间隔。 我认为这可能会达到你想要的。

我想我有一个更简单的方法。

您可以使用MediaRecorder的getMaxAmplitude方法。

任何时候你的logging器检测到一个大幅度的跳跃,你已经发现了一个玉米stream行!

这可能有点矫枉过正,但是麻省理工学院媒体实验室提供了一个名为funf的框架: http : //code.google.com/p/funf-open-sensing-framework/
他们已经创build了audioinput和一些分析(FFT等)的类,也保存到文件或上传,据我所见,实现了手机上的大部分传感器。 你也可以从他们写的代码中获得启发,我认为这很好。

我们已经在Github上发布了一个开源Android频谱分析仪,它可以计算来自麦克风的audio的FFT并显示2D频谱图。

你可以在https://youtu.be/yU05fsgOYO4看到一个video

在这里输入图像说明

用于读取话筒和计算audio频谱的关键代码可在v2.x / … sciShowcase / Viewmodels / AudioAnalyzer