我已经在网上搜索过这个了,但我还是有点困惑(我相信如果其他人想到这样的事情,他们肯定会这么做)。我首先要说的是,这不是为了家庭作业和/或利润。
我想创建一个应用程序,可以在你准备爆米花的时候听你的微波炉。当pops之间有一定的时间间隔(比如5-6秒)时,它将通过发出警报来工作。再说一遍,这只是一个让我忙碌的项目--而不是一个课程。
不管是哪种方式,我都很难弄清楚如何实时分析音频的摄入量。也就是说,我需要一种方法来记录"pop“发生的时间。这样你们就不会认为我没有对这件事做任何研究了,我已经检查了这所以问题,并且广泛地搜索了AudioRecord函数列表。
我在想,我可能需要对读()的一个版本做些什么,然后每2秒左右将录制的音频与"pop“的录制音频进行比较(也就是说,如果70%或更多的byte[] audioData数组与弹出式声音相同,那么记录时间)。有Android音频输入经验的人能让我知道我至少在正确的轨道上吗?这不是我想让你为我编码任何东西的问题,而是一个问题,我是否在正确的轨道上,如果没有,我应该朝哪个方向前进。
发布于 2011-09-14 02:03:39
查看以下代码(忽略回放部分):实时播放麦克风发出的声音
基本上,我们的想法是,你必须得到每个16位样本的值(对应于当时的波动值)。使用采样率,您可以计算之间的峰值之间的体积时间。我觉得这能实现你想要的。
发布于 2011-10-05 12:59:01
我想我有更简单的方法。
您可以使用MediaRecorder的getMaxAmplitude方法。
每当你的录音机检测到一个大幅度的跳跃,你已经检测到一个玉米爆!
发布于 2013-05-26 21:40:08
这可能有点过分,但麻省理工学院媒体实验室有一个名为funf:http://code.google.com/p/funf-open-sensing-framework/的框架。
据我所见,他们已经为音频输入和一些分析(FFT等)创建了类,并保存到文件或上传,并处理电话上可用的大多数传感器。您也可以从他们编写的代码中获得灵感,我认为这是非常好的。
https://stackoverflow.com/questions/7404828
复制相似问题