首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对特定音高的Android语音识别

针对特定音高的Android语音识别
EN

Stack Overflow用户
提问于 2011-03-24 14:04:41
回答 2查看 2.4K关注 0票数 3

我们可以使用Android语音识别API来检测“尖叫”或“响亮的声音”等吗?或者,有没有其他软件/第三方工具可以做到这一点?

谢谢,卡普斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-25 01:08:07

你是说实现一个clapper?

不需要使用花哨的数学或语音识别API。只需使用MediaRecorder及其getMaxAmplitute()方法即可。

以下是您需要的一些代码。该算法记录一段时间,然后测量振幅差。如果它很大,那么用户可能发出了很大的声音。

代码语言:javascript
复制
public void recordClap()
{
    recorder.start();

    int startAmplitude = recorder.getMaxAmplitude();
    Log.d(D_LOG, "starting amplitude: " + startAmplitude);
boolean ampDiff;
do
{
    Log.d(D_LOG, "waiting while taking in input");
    waitSome();
    int finishAmplitude = 0;
    try
    {
        finishAmplitude = recorder.getMaxAmplitude();
    }
    catch (RuntimeException re)
    {
        Log.e(D_LOG, "unable to get the max amplitude " + re);
    }
    ampDiff = checkAmplitude(startAmplitude, finishAmplitude);
    Log.d(D_LOG, "finishing amp: " + finishAmplitude + " difference: " + ampDiff );
}
while (!ampDiff && recorder.isRecording());

}

代码语言:javascript
复制
private boolean checkAmplitude(int startAmplitude, int finishAmplitude)
{
    int ampDiff = finishAmplitude - startAmplitude;
    Log.d(D_LOG, "amplitude difference " + ampDiff);
    return (ampDiff >= 10000);
}
票数 4
EN

Stack Overflow用户

发布于 2011-03-24 14:10:17

如果我试图检测尖叫或响亮的声音,我只会寻找通过麦克风发出的声音的高均方根值。我想你可以试着训练语音识别系统来识别尖叫声,但这似乎有点过头了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5415376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档