在Android中检测声音或语音的开头

时间:2011-01-11 16:09:52

标签: android audio

我想听麦克风(我想使用AudioRecord)并在一个人开始说话的那一刻执行一些动作。我知道我可以使用AudioRecord缓冲音频,但我该如何分析呢?

1 个答案:

答案 0 :(得分:9)

嗯,困难的部分是让手机识别出它的声音。您可以将语音识别系统设置为输入,而不是麦克风,这可能是可以做到的。我不这么认为,因为(我实际上已经阅读了昨天的所有内容)手机实际上没有进行识别,它只是打开一个直播(如电话)到谷歌服务器,他们进行识别。

此外,我到目前为止发现的信息表明Android不支持从麦克风分析现场音频。所有这些看似“活着”的其他应用程序实际上只是采集了一些小样本并快速分析它们以便它们看起来像现场一样。每300毫秒500毫秒的样本似乎很常见。

幸运的是,在我的编程工作方面,我也是一名声音技术员,所以我可以告诉你(如果你愿意投入工作)有一种方法来检测实际的声音,而不仅仅是声音。每个声音都被分成几个不同的频率比,这些频率都结合在一起,使我们听到的声音,每个声音的比率保持相当稳定,而每个声音的比例都不同(这就是基于语音的密码工作的原因)。因此,如果您能够采样,将其分解为每个约10hz的频率,并观察每个频率的幅度,并且当您获得看起来类似于声音而不仅仅是“白噪声”的频率/幅度模式时“,你会做生意。然而, DOING 似乎并不容易。之前使用名为SpectralView的应用程序做了类似的事情,它显示了所有分解的音频频谱。

此外,正如您可以通过使用语音搜索看到的那样,语音也会因声音的大小而波动很大。你可以寻找它,但它不会那么可靠。

总之, 如何分析它?那么,你必须寻找看起来像声音的频率模式。你是如何的?嗯,说实话,我不确定。抱歉。