Closed terriyu closed 6 years ago
Here are some plots showing the differences. Blue circles are from Google's REAPER and red dots are from pyreaper. I've only plotted valid frequencies (frequencies of -1 are invalid).
REAPER's -s
option means suppress applying high pass filter
, so in pyreaper you need to set do_high_pass=False
. With this change I can get np.allclose(f0s_by_pyreaper, f0s_by_reaper) == True
with a speech sample. Let me know if it solve your issue.
Yes, that fixes it. Thank you!
Hi, I ran pyreaper and the original Google REAPER on some wav files. The F0 results are very similar, but there are a few small differences even though I think I am using the same parameters. Do you know why there are differences?
For pyreaper, I'm running the following commands in my Python script:
from scipy.io import wavfile
from pyreaper import reaper
fs, y = wavfile.read('my-wavfile.wav')
pm_times, pm, F0_times, F0, corr = reaper(y, fs, minf0=40.0, maxf0=500.0, do_high_pass=True, do_hilbert_transform=False, inter_pulse=0.01, frame_period=0.001)
For Google's original REAPER, I'm running this on the command line:
$ ./reaper -i my-wavfile.wav -f f0.txt -p pitchmarks.txt -c corr.txt -s -e 0.001 -x 500.0 -m 40.0 -u 0.01 -a