Java TarsosDSP Clap检测
我决定尝试为android studio开发,并设计了一个应用程序,它可以监听掌声,然后执行某种动作。我的问题在于使用TarsosDSP 我想将Java TarsosDSP Clap检测,java,android,tarsosdsp,Java,Android,Tarsosdsp,我决定尝试为android studio开发,并设计了一个应用程序,它可以监听掌声,然后执行某种动作。我的问题在于使用TarsosDSP 我想将Listener类作为IntentService运行,这样我就可以锁定手机,它仍然可以监听。但是,我在设置AudioDispatcher和TarsosDSPAudioInputStream时遇到问题 以下是迄今为止的onHandleIntent: protected void onHandleIntent(Intent Intent) {
Listener
类作为IntentService
运行,这样我就可以锁定手机,它仍然可以监听。但是,我在设置AudioDispatcher
和TarsosDSPAudioInputStream
时遇到问题
以下是迄今为止的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
对象。说这是一个界面,但我不知道它是如何工作的。我对Android工作室和java超级超新近,但C++有一年的经验,因为它是我的专业。 TARSOSDSP已经有Android的实现。它们有一个类和fromDefaultMirror(…)方法
因此,您可以使用此方法初始化audio dispatcher实例,并向其添加任何可用的处理器。在你的情况下,敲击式无探头 AudioDispatcher dispatcher = AudioDispatcherFactory.fromDefaultMicrophone(22050,1024,0);
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,"Audio Dispatcher").start();
好吧,我现在明白了。所以你可以忽略当撞击探测器检测到拍击声时会发生什么。然后将此实现放入
mDispatcher
,并在最后一行启动线程。这是有道理的,谢谢。理解新的库总是一件痛苦的事。不劳无获:)幸运的是,tarsosdsp是一个文档丰富的库。感谢作者们。