在Android中拍手声音检测

时间:2013-08-05 12:37:08

标签: android-asynctask android-audiorecord

我在StackOverflow和网上搜索了很多关于口哨检测的问题,很多人都尽可能地解释了他们如何检测他们的东西。

Detect Whistle sound in android

Detect the beginning of a sound or voice in Android

但我不知道如何在Android应用中检测到“ Jack Hammer声音计数”? 所需的计数器至少可以计算33次/秒(或2000次/分)。

任何人都可以建议一些解决方案吗?

这是我的doInBackground方法

    @Override
    protected Integer doInBackground(AudioCilpListener... listeners) {

        if (listeners.length == 0) {

            return 0;

        }
        AudioCilpListener listener = listeners[0];        
        AudioClipRecorder recorder = new AudioClipRecorder(listener, this);
//        boolean heard = false;
        int count = 0;        
        for (int i = 0; i < 10; i++) {

            try {

                count = recorder.startRecordingForTime(30,
                                AudioClipRecorder.RECORDER_SAMPLERATE_CD,
                                AudioFormat.ENCODING_PCM_16BIT);
                break;

            } catch (IllegalStateException ie) {

                // failed to setup, sleep and try again
                // if still can't set it up, just fail
                ie.printStackTrace();

            }

        }
        //collect the audio
        return count;

    }

1 个答案:

答案 0 :(得分:2)

请参阅名为“Android Sensor Programming 2012”的书。

在第3部分第14章“使用麦克风”中,您将获得所有相关细节