I am having a project using Arduino UNO to detect and recognize baby cry signal. I already made a sensitive microphone to detect the baby cry. The main purpose of this project is to differentiate the baby cry and human speech based on the fundamental frequency. For baby cry, the fundamental frequency varies from 300 Hz to 600 Hz after doing some literature review.
However, I have searched everywhere on the Internet and I found a website http://vtchl.illinois.edu/node/557 using FHT method to determine the fundamental frequency. It works perfectly when a single tone signal (eg:500 Hz) is used with a function generator. But during the trials, several baby cry sample signal were emitted to the microphone respectively and the results vary from 400 Hz to 1000 Hz (sometimes up to 1500 which is too high).
For your information, the FHT size is 256 and sampling rate is 8000 Hz. Hence, the frequency resolution is 31-32 Hz.
Is there any other possible way to determine the fundamental frequency of speech signals with an acceptable tolerance? If FFT is suggested, where can I get the library and coding example? Have anyone tried with human speech signal processing using Arduino before? Your help is very much appreciated.