1

I am using the command line tool aubiopitch to analyze voice recordings. My goal is to determine the fundamental frequency of the voice recorded. I know, of course, that the frequency varies – that's why I want to calculate an "average" in Hz over a 30-second recording.

My question: aubio uses different methods to determine the pitch of a recording: Schmitt trigger, harmonic comb, yin, yinfft etc. Which one of those would be my preferred choice when dealing with pure human voice recordings (no background music, atmo etc.).

Armin Hierstetter
  • 1,078
  • 2
  • 12
  • 27

2 Answers2

2

I would recommend using yinfast or yinfft (default). For a discussion of the algorithms, their parameters, and their performance, see Chapter 3 of this document.

Note that the median is better suited than the average in this case.

piem
  • 390
  • 2
  • 11
  • 1
    piem (Paul) is author of `aubio` and certainly knows what he's talking about. Also, I have had very good experience with the algorithm Paul developed - `yinfft`. – Lukasz Tracewski May 27 '19 at 20:03
  • I did a test series on different voice recording (all studio quality). Settings have been "-s 24". I calculated the median over frequencies detected between 1 and 500 Hz and ignored the rest. Notice the "outbreak" of the last yinfft test. That was the recording of a VERY deep male voice and it got it completely wrong – not sure why. Schmitt trigger works fastest (by far) and the results are pretty close to yin. mcomb – except for the last test, does even better at slightly higher cost than Schmitt. – Armin Hierstetter May 29 '19 at 06:38
  • Here is the test series ... yin 133, 138, 129, 105, 124, 128, 97, 221, 266, 169, 123, 69 yinfft 135, 140, 132, 113, 127, 137, 115, 223, 269, 173, 135, 253(!!) mcomb 140, 138, 131, 108, 128, 132, 101, 224, 270, 166, 129, 89 schmitt 143, 146, 139, 110, 139, 141, 103, 227, 281, 175, 138, 69 – Armin Hierstetter May 29 '19 at 06:38
  • I think yin works best but is expensive. Torn between yin and Schmitt now. By the way: What a great tool! – Armin Hierstetter May 29 '19 at 06:54
  • Sorry for the flood: I found my champion! I will go for yin, but with a hop-rate of 2048. That saves a lot of time and the result are basically the same as "normal" yin! – Armin Hierstetter May 29 '19 at 07:38
  • yinfast would yield the same results, but at a much lower computational cost. – piem May 30 '19 at 21:58
-1

CREPE is good and outperforms many others since it uses advanced neural-network machine learning for pitch prediction. It might be unstable in unseen conditions though and might not be very easy to plug since it requires tensorflow.

For more traditional and lightweight solution oyu can try REAPER.

Nikolay Shmyrev
  • 24,897
  • 5
  • 43
  • 87