TarsosDSP 简介

1.什么是 TarsosDSP?

  • TarsosDSP 是一个用于音频处理的Java库。
  • 它的目标是提供一个易于使用的界面,以便在纯Java中尽可能简单地实现实用的音频处理算法,而无需任何其他外部依赖。

  • 这个库试图在能够完成任务,但足够简洁。

  • TarsosDSP 的特点是实现了一个冲击起始检测器和一些间距检测算法:YIN,Mcleod Pitch方法和一个“动态小波算法间距跟踪”算法。
  • 它还实现了Goertzel DTMF解码算法,时间拉伸算法(WSOLA),重采样,滤波器,简单合成,一些音频效果和变调算法。

2.TarsosDSP 都能实现哪些功能?

  • 声音检测器:显示如何响度计算可以完成。当输入声音超过限定的事件被触发。

  • 音高检测器:这个演示应用程序显示实时音高检测。当检测到音调时,赫兹值以概率一起打印。

  • 敲击检测器:显示敲击的检测。拍手会导致一个敲击事件。这个演示应用程序还显示了这两个参数对算法的影响。

  • UtterAsterisk:是一个唱与目标尽可能接近旋律的游戏。从技术上讲,它使用YIN或MPM实时检测音高。

  • Goertzel DTMF(双音多频):解码Goertzel算法的实现。

  • 音频时间拉伸 : 在纯 Java 中实现使用WSOLA实现一个时间拉伸算法。 WSOLA可以在不改变音高的情况下改变音频的播放速度。播放速度可以随时改变,即使有音频正在播放。
  • 音频特征提取:一个命令行应用程序来做简单的特征提取。
  • 音频合成:一个命令行应用程序来做简单的音频合成。
  • 音高移动:一个示例应用程序,无论是实时麦克风输入还是录制的音频,都可以进行音高移位。还包括一个命令行应用程序来做音高转换。

3.TarsosDSP 是如何工作的?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
AudioDispatcher dispatcher = AudioDispatcherFactory.fromDefaultMicrophone(22050,1024,0);
PitchDetectionHandler pdh = new PitchDetectionHandler() {
@Override
public void handlePitch(PitchDetectionResult result,AudioEvent e) {
final float pitchInHz = result.getPitch();
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView text = (TextView) findViewById(R.id.textView1);
text.setText("" + pitchInHz);
}
});
}
};
AudioProcessor p = new PitchProcessor(PitchEstimationAlgorithm.FFT_YIN, 22050, 1024, pdh);
dispatcher.addAudioProcessor(p);
new Thread(dispatcher,"Audio Dispatcher").start();

4.如何获取和使用 TarsosDSP

点击此链接跳转至官方网站