I'm trying to find abrupt changes in the spectrogram of an audio using the findchangepts function. However, every time I get the error: Expected input number to be finite.

3 views (last 30 days)
[y, Fs] = audioread('vocals.wav');
findchangepts(y,'MaxNumChanges',10,'Statistic','rms')
[s,f,t,pxx] = spectrogram(y,128,120,128,Fs, 'yaxis');
findchangepts(pow2db(pxx),'MaxNumChanges',50)

Answers (1)

Walter Roberson
Walter Roberson on 8 Dec 2022
Suppose that somehow one of the output powers in pxx were exactly 0. Then pow2db() would be -inf there, but findchangeptrs() cannot accept infinite inputs.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!