Traditional Machine Learning for Pitch Detection
TABLE III: Gross pitch error rate (in %) for the various F0 estimation techniques.
['CREPE', '[ITALIC] F0 [ITALIC] AC', '[ITALIC] F0 [ITALIC] SSH', '[ITALIC] F0 [ITALIC] SRH', '[ITALIC] F0 [ITALIC] AC− [ITALIC] MS', '[ITALIC] F0 [ITALIC] SSH− [ITALIC] MS', 'Linear Regr.', 'Tree', 'KNN', 'MLP,reg', 'MLP,idx', 'Med. Filt.']
Out of the 7 pitch estimators generated by our feature extraction scheme, F0CPP and F0CPP,MS were discarded as they led to a GPE rate beyond 30%. Across our experiments, we have tried to include the voicing measurements (i.e. the 16 features used for voicing detection) as additional input to the regressor. We have also experimented with reducing the set of F0 estimators, as F0SRH and F0SSH,MS gave higher GPE and could hence impair the final estimate. Finally, we have tried to include contextual values of the estimators to get more reliable predictions. The outcome of those experiments was that: i) considering voicing measurements does not help, ii) keeping only the 3 best estimators (F0AC, F0SSH and F0AC,MS) gave better results, iii) contextual frames gave more robust results. As a result, we used only the 3 estimators with a context of ±2 frames. Those 3 methods are the KNN regressor, the MLP predicting the index of the most accurate F0 estimator and the median filter. It is interestingly observed that a simple combination of the 3 estimators by median filtering outperformed all other approaches (including CREPE). One area that we have not explored though is dynamic programming. Both RAPT and CREPE use Viterbi decoding to smooth the F0 contour. Disabling it for CREPE degraded the GPE from 3.51% to 4.48%.