I am currently an electronics engineering student and doing a project at the moment. My proposed project is this, "Cry Detection System". To detect if a sound is a cry or not, I have already used the neural network in Matlab. Now, the problem is to be able to process the real time recording of a baby (i.e. if the baby is sleeping, I will place a microphone connected to a laptop and leave it there). My solution for this is to divide the input sound recorded by the microphone every 10 seconds so my neural network can process it, but I have no idea how to do it. Any suggestions on how to do this? What software can I use? Or have you guys thought any other way on how to process the input sound? Thanks in advance.
Solution 1: Use Matlab functions for sound recording. This is a simplest solution in your case, however, Matlab is very slow and you will get some gaps between sound buffers.
Solution 2: Read about waveIn functions of Windows API.
Solution 2: Read about waveIn functions of Windows API.
I agree, MATLAB is probably the best choice. It can be pretty fast actually, but it depends very much on your program design and the machine you're running it on. Even more complex realtime audio processing is possible, if you keep the sampling rate down to reasonable values (maybe 8 kHz).
If you want to stay in MATLAB, I would suggest you use either the package pa_wavplay (to be precise, the pa_wavrecord function from it, you can get it for free - for example through the mathworks homepage) which supports ASIO and is a lot more reliable than the original sound-recording functions. This way, you will at least get clean audio for processing. On the other hand, these functions are locking, so you can't process while your next segment is being recorded. The integrated MATLAB recording supports non-locking operation as far as I remember, but it did not work well for me.
The alternative is to use MATLAB SimuLink. This way, you can build your algorithm as a graphical model (which can contain embedded MATLAB functions if you need them) into which you feed your audio data. The DSP Toolbox contains "From sound device" blocks for that purpose. Though you should have some experience with simulink already, getting into it and building fast-running models right away is pretty hard.
If you want to stay in MATLAB, I would suggest you use either the package pa_wavplay (to be precise, the pa_wavrecord function from it, you can get it for free - for example through the mathworks homepage) which supports ASIO and is a lot more reliable than the original sound-recording functions. This way, you will at least get clean audio for processing. On the other hand, these functions are locking, so you can't process while your next segment is being recorded. The integrated MATLAB recording supports non-locking operation as far as I remember, but it did not work well for me.
The alternative is to use MATLAB SimuLink. This way, you can build your algorithm as a graphical model (which can contain embedded MATLAB functions if you need them) into which you feed your audio data. The DSP Toolbox contains "From sound device" blocks for that purpose. Though you should have some experience with simulink already, getting into it and building fast-running models right away is pretty hard.
Does the system have to respond only to cries? I was thinking a simple system based on a schmitt trigger circuit that just gives an alarm when a sound comes above a certain threshold. I would think that sufficient since the babies room would be mostly quiet except for when the baby cries. Of course it would not discriminate against a sibling sneezing or your baby crying but it would cover 90% of the situation.
Originally Posted by BremenPhD
Hello, I'm a post graduate at Universität Bremen. I'm doing a research on paralinguistic sounds and I chose to analyze cry signals and Cry Detection System - I found a couple of resources by a German paralinguist and dissertation writer Felix Burkhard, from German Research Center for Artificial Intelligence. Any book recommendations? Thank you beforehand.
Otto
Hi Otto,
You may find an example of ICDRS in this book: Advances in Signal Processing and Intelligent Recognition Systems >> start with 2.2 Design Details of the Cry Detection System. Hope it helps.
Does the system have to respond only to cries? I was thinking a simple system based on a schmitt trigger circuit that just gives an alarm when a sound comes above a certain threshold. I would think that sufficient since the babies room would be mostly quiet except for when the baby cries. Of course it would not discriminate against a sibling sneezing or your baby crying but it would cover 90% of the situation.
This would be a very simple solution. I made a similar device for when my dog barks. Above a certain threshold, it emits an ultrasonic pulse which lets the dog know that she needs to take it down a notch.
If your project needs to be more advanced, then have you considered using a machine learning program like TensorFlow for the classification?
I remember a project a while back, that might give you some inspiration: Sound Classification using Deep Learning - Mike Smales - Medium
This one is a bit more advanced than what you are looking to implement, but might be worth your while reading anyway: Automatic classification of infant cry: A review - IEEE Conference Publication
Last edited: