f0curvePyinVamp

maelzel.snd.freqestimate.f0curvePyinVamp(sig, sr, fftsize=2048, overlap=4, lowAmpSuppression=0.01, onsetSensitivity=0.7, pruneThreshold=0.1, threshDistr='beta15', unvoicedFreqs='nan')[source]

Calculate the fundamental using the pyin vamp plugin

Parameters:
  • sig (ndarray) – the signal as numpy array

  • sr (int) – the sr

  • fftsize – with sizes lower than 2048 the result might be unstable

  • overlap – hop size as fftsize//overlap

  • lowAmpSuppression – supress low amplitude pitch estimates, 0.01=-40dB, 0.001=-60dB

  • onsetSensitivity – onset sensitivity

  • pruneThreshold – totalDuration pruning threshold

  • threshDistr – yin threshold distribution (see table below) - One of uniform, beta10, beta15, beta30, single10, single20-

  • unvoicedFreqs – one of ‘nan’, ‘negative’. If ‘nan’ unvoiced frequencies (frequencies for segments where the f0 confidence is too low) are given as nan. If ‘negative’ unvoiced freqs are given as negative.

Return type:

tuple[BpfInterface, BpfInterface]

Returns:

a tuple (f0 bpf, probability bpf), where f0 is a bpf with the detected fundamental. Whenver the algorithms detects unvoiced (noise) or absence of a fundamental, the result is negative.

thresh_distr

Description

uniform

Uniform

beta10

Beta (mean 0.10)

beta15

Beta (mean 0.15)

beta30

Beta (mean 0.30)

single10

Single value 0.10

single15

Single value 0.15

single20

Single value 0.20