aubioを使用してピッチを取得するサンプルコードが見つかりましたが、ピッチを2番目のインクリメントで表示するにはどうすればよいかわかりません:aubioを使用して、一連のトーンで各トーンの周波数を取得する方法
import sys
from aubio import source, pitch, freqtomidi
if len(sys.argv) < 2:
print "Usage: %s <filename> [samplerate]" % sys.argv[0]
sys.exit(1)
filename = sys.argv[1]
downsample = 1
samplerate = 44100/downsample
if len(sys.argv) > 2: samplerate = int(sys.argv[2])
win_s = 4096/downsample # fft size
hop_s = 512/downsample # hop size
s = source(filename, samplerate, hop_s)
samplerate = s.samplerate
tolerance = 0.8
pitch_o = pitch("yin", win_s, hop_s, samplerate)
pitch_o.set_tolerance(tolerance)
pitches = []
confidences = []
total_frames = 0
while True:
samples, read = s()
pitch = pitch_o(samples)[0]
pitch = int(round(pitch))
confidence = pitch_o.get_confidence()
#if confidence < 0.8: pitch = 0.
print "%f %f %f" % (total_frames/float(samplerate), pitch, confidence)
pitches += [pitch]
confidences += [confidence]
total_frames += read
if read < hop_s: break
また、wavファイルの代わりに出力から直接行うことはできますか?