LabROSA : Projects :

[SAcC icon]

Subband Autocorrelation Classification (SAcC) Pitch Tracker

Byung Suk Lee and Dan Ellis


This page is not up-to-date. Please refer this SAcC page for the most recent release.

This page contains the Subband Autocorrelation Classification (SAcC) Pitch Tracker.

Contents

Get 24 pitch candidates per octave from 60Hz to around 400Hz

fmin = 60; nPitchPerOctave = 24; fmax = 400;
tmax = round(nPitchPerOctave*log2(fmax/fmin))/nPitchPerOctave;
t = 0:(1/nPitchPerOctave):tmax;
pcf = fmin*2.^t;

Run SAcC on a sample audio

SAcC requires audioread to support various input audio formats

addpath('audioread')
in_fn = 'rl001.wav';
map_fn = 'mapping.mat';
wgt_fn ='trKr_sb48k10_h800w1QNLRP0.wgt';
norms_fn = 'trKr_sb48k10.norms';
[pitch,obs] = SAcC_main(in_fn,map_fn,wgt_fn,norms_fn);
sr = 16000;
[x] = audioread(in_fn,sr);
(1/1) Start: 1 End: 24000
Using Slaney-Patterson filterbank, frq=100..800, bpo=16
Elapsed time is 0.085292 seconds.
Autocorrelogram
Elapsed time is 3.751716 seconds.
islice: 1 lac: 148

Plot the input audio and the spectrogram

subplot(211),
xx = (1:length(x))/sr;
plot(xx,x)
subplot(212),
[y,f,t,p] = spectrogram(x,512,256,512,sr,'yaxis');
imagesc(10*log10(abs(y)))
axis xy
set(gca,'XTickLabel',[])
set(gca,'YTickLabel',[])
yax = ylim;
ylim(yax/2)
gthf = dlmread('rl001.gth');
[gthp] = freq2pitch(gthf,pcf,nPitchPerOctave);

Plot the pitch tracking results

subplot(211), imagesc(obs'), axis xy, colormap(1-gray)
set(gca,'XTickLabel',[])
ylabel('Pitch Index');
title('Observation');
subplot(212),
xx = 0.01*(1:length(pitch));
plot(xx,pitch,'g.')
hold on;
xx = 0.01*(1:length(gthp));
plot(xx,gthp,'r')
ylim([0 70])
ylabel('Pitch Index');
xlabel('Time / s')
title('Pitch Tracking');
legend('SAcC','Ground Truth')

Reference:

Byung Suk Lee, Dan Ellis, "Noise Robust Pitch Tracking using Subband Autocorrelation Classification (SAcC)," InterSpeech, September 9-13, 2012.

Notes:

audioread is able to read a wide range of sound file types, but relies on a number of other packages and/or support functions being installed.

Changelog

v0.1 2012-05-15 Initial release.

% Last updated: $Date: 2012/05/15 13:50:12 $
% Byung Suk Lee <[email protected]>

Valid HTML 4.0! Last updated: $Date: 2012/05/30 17:12:04 $
Byung Suk Lee <[email protected]>