TarsosDSP拍手检测

时间:2016-05-01 20:55:12

标签: java android tarsosdsp

我决定尝试为android studio开发,并设计了一个应用程序来侦听拍手,然后执行某种操作。我的问题在于使用TarsosDSP。

我想将Listener类作为IntentService运行,因此我可以锁定手机并仍然可以监听。但是,我在设置AudioDispatcherTarsosDSPAudioInputStream时遇到了问题。

到目前为止onHandleIntent

protected void onHandleIntent(Intent Intent) {
        AudioDispatcher mDispatcher = new AudioDispatcher(TarsosDSPAudioInputStream, SAMPLE_RATE, BUFFER_OVERLAP);
        double threshold = 8;
        double sensitivity = 20;

        PercussionOnsetDetector mPercussionDetector = new PercussionOnsetDetector(22050, 1024,
                new OnsetHandler() {

                    @Override
                    public void handleOnset(double time, double salience) {
                        Log.d(TAG, "Clap detected!");
                    }
                }, sensitivity, threshold);

        mDispatcher.addAudioProcessor(mPercussionDetector);
        new Thread(mDispatcher).start();
    }

我想更具体地说,我不确定如何定义TarsosDSPAudioInputStream对象。 The documentation说它是一个界面,但我不知道它是如何工作的。我是Android Studio和Java的新手,但有一年的C ++经验,因为它是我专业的一部分。

1 个答案:

答案 0 :(得分:2)

TarsosDSP已经有了针对android的实现。他们有一个AudioDispatcherFactory类和fromDefaultMicrophone(...)方法。

因此,您可以使用此方法初始化音频调度程序实例并向其添加任何可用的处理器。在你的情况下PercussionOnsetDetector

mount -t ext4 xvdp1 /mnt/tmp