【问题标题】:Detect the beginning of a sound or voice in Android在 Android 中检测声音或语音的开头
【发布时间】:2011-06-08 10:40:04
【问题描述】:

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

【问题讨论】:

  • 你有没有得到任何地方?
  • 是的,实际上我确实在启动语音时激活了它。我从来没有完成过这个项目,也没有用 Java 做过任何(其他)Android 应用程序。我仍然能找到的是:pastebin.com/2QDUxXHj 不确定是否有用,但祝你好运......
  • @nizzle。你找到答案了吗?

标签: android audio


【解决方案1】:

嗯,困难的部分是让手机识别出它的声音。您可以将语音识别系统设置为输入,而不是麦克风,它可能可以做到这一点。不过我不这么认为,因为(我昨天实际上阅读了所有相关内容)手机实际上并没有进行识别,它只是向Google 服务器,它们会进行识别。

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

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

此外,您可以通过使用语音搜索看到,声音的响度也会有很大的波动。您可以寻找它,但它不会那么可靠。

总之,如何你分析它?好吧,您必须在看起来像声音的频率中寻找一种模式。你是怎么做到的那个?好吧,老实说,我不确定。对不起。

【讨论】:

  • 这是一个很棒的回应!感谢那。我确实在谷歌板上遇到了 SpectralView,听起来我应该研究一下。我将尝试按照您的建议制作一个 500 毫秒的样本,看看它在哪里登陆。谢谢!
  • 不客气,很高兴为您提供帮助!祝你好运。这并不容易。 :)
  • @Brandon。我想让我的应用程序检测语音单词,例如“测试”并做一些检测。那么,你能给我你的建议吗?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-14
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 2015-10-01
相关资源
最近更新 更多