IQ FM Demodulation of Wow and Flutter Signal in Software
Frequency is the derivative (or 1st difference) of phase.  To get an IQ signal from which you can get phase angles, first multiply your wave file samples by a cosine at 3.15kHz and a sinewave at a frequency of 3.15kHz.  That will hetrodyne your signal down to baseband IQ.  Use atan2 of the IQ array to get an array of  angles, take the 1st difference between successive angles, and note that big jumps in phase differences will likely need to be unwrapped to a smaller range.  Then low pass filter (with a 200 Hz cutoff) the result. That's a simplified FM demodulator .  See if that looks close to what you are looking for.