android - processing human voice -
i trying make android app checks whether recorded voice of person of high frequency or not.i have completed till recording part don't know how proceed further. after searching found fft algorithm must used problem how array values must passed input algorithm. can please?
assuming have defined meant "contains high frequency", , merely need measure of (no need visualize frequency content in graph), there no need calculate fft.
i calculate rms values of signal (a measure of total energy), apply low-pass filter on data (in time domain) , calculate rms values again on filtered signal. comparing loss of energy measure of how high frequency content responsible initial energy value.
reply comment:
you need data in order process it! perhaps dont understand question? of wish "get exact values of" have stated "completed recording part" assume have signal stored in memory, need calculate total energy of signal in order either a) calculate change of energy after filtering or b) compare energy predefined hardcoded value (bad idea btw).
either way, should done in time-domain if want measure/value. stated parseval's theorem, there no need perform cpu intensive processing , go on frequency domain calculate energy of signal. http://en.wikipedia.org/wiki/parseval's_theorem
elaboration:
when record user's voice (collect data signal) need ensure data not lost , stored in memory (in array-type object) , have reference array. once data collected, dont need convert signal values, stored sequence of values. therefore, ready perform calculation in order measure of "how high frequencies there are"...
the rms (root mean square) value standardized way of measuring total energy of signal - take "square-root of average of values squared". see http://mathworld.wolfram.com/root-mean-square.html
the rms quick , easy calculate, gives energy of total signal, low frequency components , high frequency components , there no way of knowing if high rms value due alot of high frequency components or low frequency components. therefore, suggest, remove high frequency components , calculate rms value again see how total energy changed in doing so, ie. how high frequencies responsible initial "raw" rms value. dividing 2 values high frequency ratio measure... im not sure want do, do.
in order perform low pass filtering need pick frequency value fcut , on considered "high", apply low pass filter cut off point set fcut, applying filter done in time domain means of convolution.
Comments
Post a Comment