I’m trying to analyze changes voice. I’m doing this for a project where i simply need to differentiate voice into two categories, hostile versus calm/nurturing voice.
To determine this i’m using two criteria; changes amplitude and changes in frequency. I need these values to be relative to average high vs average low. I can’t use an absolute scale because I will never have a constant volume (distance from the mic) nor similar voice (male vs female frequency range) , so i must rely on the measured difference between average high and low over time.
This becomes challenging when trying to calculate the average low because often it simply becomes the noise floor or the gate level . In the case of frequency, the average low becomes the resonant freq of the room or noise floor.
To calculate these values I’m simply using a fiddle~ object which works well for average high. But I’m at a loss on how to calculate the average low.
Do you any of you have any suggestions or possible different approaches to calculate the average low rms and freq that doesn’t bottom out at the noise floor?
Thanks a lot! -splnlss
p.s. attached is simple patch on the freq analysis that i’m working on to solve this problem. There is an extensive noise gate before this patch that will filter out some of issues…
Hi, though I cant directly suggest anyway to do this. I can suggest a few things. first rather than using fiddle, you could have a look at pitch~ -a kind of edited version of fiddle (though not easy to get hold of)
Secondly, for the relative volume rather than averaging, you could have a look at analyzer~ which does onset detection (exactly what you described) as well as loudness, brightness and Noisesness – all using some awfully pretty FFT!
It also does pitch, so you wouldnt need to use pitch as well.
If the pitch analysis on either of these doesnt go low enough, have a look around the forum- I have heard of a piece that used fiddle to find the pitch of four tubas – so it can be used at low pitch with some filtering and stuff.