标签: onset-detection

注意起病检测

我正在开发一个系统来帮助音乐家进行转录.目的是在单个乐器单声道录音上执行自动音乐转录(它不一定是完美的,因为用户将在以后纠正错误/错误).这里有没有人有自动音乐转录的经验?或一般的数字信号处理?无论您的背景如何,都非常感谢任何人的帮助.

到目前为止,我已经研究了使用快速傅里叶变换进行音调检测,并且MATLAB和我自己的Java测试程序中的大量测试表明它足够快速和准确以满足我的需求.需要解决的任务的另一个要素是以乐谱形式显示制作的MIDI数据,但这是我现在不关心的事情.

简而言之,我正在寻找的是一种用于音符开始检测的好方法,即信号中新音符开始的位置.由于慢速开启可能很难正确检测,我最初将使用带有钢琴录音的系统.这也部分归因于我弹钢琴的事实,应该处于更好的位置以获得合适的录音进行测试.如上所述,该系统的早期版本将用于简单的单声道录音,根据未来几周取得的进展,可能会在稍后进行更复杂的输入.

audio signal-processing onset-detection

31
推荐指数
1
解决办法
2万
查看次数

录制的一个音符的音频会产生多个开始时间

我使用Librosa库进行音高和起始检测.具体来说,我正在使用onset_detectpiptrack.

这是我的代码:

def detect_pitch(y, sr, onset_offset=5, fmin=75, fmax=1400):
  y = highpass_filter(y, sr)

  onset_frames = librosa.onset.onset_detect(y=y, sr=sr)
  pitches, magnitudes = librosa.piptrack(y=y, sr=sr, fmin=fmin, fmax=fmax)

  notes = []

  for i in range(0, len(onset_frames)):
    onset = onset_frames[i] + onset_offset
    index = magnitudes[:, onset].argmax()
    pitch = pitches[index, onset]
    if (pitch != 0):
      notes.append(librosa.hz_to_note(pitch))

  return notes

def highpass_filter(y, sr):
  filter_stop_freq = 70  # Hz
  filter_pass_freq = 100  # Hz
  filter_order = 1001

  # High-pass filter
  nyquist_rate = sr / …
Run Code Online (Sandbox Code Playgroud)

python signal-processing pitch-tracking librosa onset-detection

8
推荐指数
1
解决办法
737
查看次数

音乐转录

我正在制作一个复音音乐转录项目.我已经阅读了一些论文,并阅读了解释类似任务的文章.我对问题领域的许多方面感到非常困惑.希望有人能够帮助我.

到目前为止,我已经从给定的mp3获得了解码音频数据流.

我已经了解起病检测是转录的第一步..是否有可用的Java库可用于检测开始.

接下来,如我所读,使用FFT也可以检测基频.

我想知道在这些任务中使用FFT.(我对FFT不熟悉).是否必须执行FFT以进行起始检测和F0检测.如果不是其他方式.我可以在我的音频流上执行FFT,或者是否需要执行其他操作才能操作这些音频数据.

非常感谢.

java audio fft onset-detection

2
推荐指数
1
解决办法
1575
查看次数