Want to Detect Human Cry Does is Possible.

I am working on project, where i want to detect cry of Dementia Patient. Does it possible? if yes then, what hardware are required? i am using microphone(to get analog signals) with arduino nano. i am having problem with cry detection using these hardware’s?
I am getting notification on android mobile when my hardware get HIGH pitch sound, i am using HC 05 for communication between smartphone and Arduino. But actually i want to differentiate other loud sound and human cry. i want that my hardware send notification only if it detect human Shout/Cry.Need HELP.
thanks in advance

ArduinoNanoFront_3_sm.jpg

Very difficult task, even with a PC.

You have to figure out what makes a human cry different from other loud noises.

Perhaps you can buy or borrow a digital voice recorder that has a "VOX" (voice activated) function. That will record noises above a certain level. Then you can classify them into 'cry' and 'not cry' and try to find a difference you can detect easily. Perhaps it's the volume envelope or the frequency pattern.

It sounds like you're trying to design a device that's intended summon aid when a patient, who's otherwise incapable of taking action for self-preservation, cries out. Based on what you've said about the patient, that outcry might be in response to something interesting, like maybe that the curtains ablaze, or it may be based on nothing in particular that an attendant could see.

What are the consequences if the device fails to detect an outcry? Could the patient suffer serious injury or death? If so, then devices manufactured for the hobby market would be inappropriate for this application, as would an inexperienced designer. If the consequences of failure could be dire, I'd recommend that you give up this effort immediately, and leave it to others who are skilled in the art, can test the device extensively, and get it listed for its purpose.

You don't say whether this project is intended for a specific patient, or whether it's intended to be generally applicable for any patient. Given the range of frequencies for human voices, and the range of effects of dementia on vocalization, coming up with a general device will be a lot harder.

You ask about distinguishing an outcry from other loud sounds in the room. I'd be surprised if a dementia patient's room has so many other loud sounds that it's necessary to make the distinction. I'd expect, for example, that an attendant would want to check the room if there were a loud sound, to determine that the noise wasn't the patient's body hitting the floor after he fell out of bed. If excessive loud sounds are a problem for this project, I'd think that you'd want to do something about the noise in the room before you'd undertake this project.

Finally, I'm not seeing any evidence that you've made any progress at all in this project. No code, no schematic, and the photographs are advertising shots.

Is this an academic assignment?

jremington:
Very difficult task, even with a PC.

but its not impossible right?

johnwasser: You have to figure out what makes a human cry different from other loud noises.

Perhaps you can buy or borrow a digital voice recorder that has a "VOX" (voice activated) function. That will record noises above a certain level. Then you can classify them into 'cry' and 'not cry' and try to find a difference you can detect easily. Perhaps it's the volume envelope or the frequency pattern.

what if, i want to recognize words like FOOD , WATER , SLEEP etc and send alert to care taker on his android phone, if and only if patient use any of these words more two time. lets suppose that patient is not able to do there own. lets not talk about the reasons behind because there could be many. What hardware's would be required, except Arduino nano and microphone.

Xeeshan: What hardware's would be required, except Arduino nano and microphone.

Something more in the GHz range with an OS and 1GB or RAM at least...and a whole load of programming or voice recognition software.

This seems to be somewhat out of your experience level the way you are coming across. Have you tried to Google "Voice recognition Software" ?

Xeeshan: but its not impossible right?

Pretty much impossible on an Arduino. Its analog sampling rate is way too low to get decent audio. This audio (volume vs time) has to be constantly converted to volume vs frequency, using FFTs (Fast Fourier Transforms), in order to compare their frequency pattern to a known set of cries. This is not feasible with the limited resources the Arduino has, and you're missing a large part of the high spectrum (where most screams are) due to low sampling rates.

A computer is much more suitable for this kind of tasks, since it has a sound card with a high sampling frequency, lots of processing power for the FFTs and enough memory to store a lot of 'reference cries' to compare to.

It's basically speech recognition what you're trying to do. But cries are much more diverse, so your system won't be reliable.

Read tmd3's reply, he's right about a lot of things.

tmd3:
Finally, I’m not seeing any evidence that you’ve made any progress at all in this project. No code, no schematic, and the photographs are advertising shots.

Is this an academic assignment?

i am working on it, i am getting notification if the patient shouts, if the power of sound exceed the thresholds.

*void setup() *
{

  • // Open serial communications and wait for port to open:*

  • mySerial.begin(9600);*

  • mySerial.println(" Bluetooth On ");*

  • pinMode(A0, INPUT);*

  • mySerial.begin(9600);*
    }
    void loop() // run over and over
    {

  • //sending data from arduino to ANDROID*

  • A0val = analogRead(A0);*
    // mySerial.println(A0val);

  • if (mySerial.available())*

  • Serial.write(mySerial.read());*

  • while (Serial.available()) *

  • mySerial.write(Serial.read());*
    //Serial monitor print

  • // mySerial.print(A0val);*

  • //mySerial.println(">>");*
    //delay (10);

  • if ((A0val>380) && (A0val < 430)){*

  • // mySerial.println(A0val);*

  • mySerial.print(“Voice Power is (”);*

  • mySerial.print(A0val);*

  • mySerial.println(")and its LOW");*

  • }*

  • if ((A0val > 431) && (A0val < 475)){*

  • mySerial.print(“Voice Power is (”);*

  • mySerial.print(A0val);*

  • mySerial.println(")and its MEDIUM");*

  • mySerial.println(" ----------------------------");*

  • }*

  • if ((A0val > 476) && (A0val < 550)){*

  • mySerial.print(“Voice Power is (”);*

  • mySerial.print(A0val);*
    _ mySerial.println(")and its LOUD");_

  • mySerial.println(" ----------------------------");*

  • }*

Johnny010: Something more in the GHz range with an OS and 1GB or RAM at least...and a whole load of programming or voice recognition software.

what if i send data/frequency through bluetooth module HC 05, which have detected by hardware in patient side and use Voice recognition software there in android phone to recognize words?

Please don't put a human being's well being at the mercy of your ignorance. :confused:

Get a baby monitor to transmit all sounds to the care taker and make the care taker's brain do the voice recognition.

Xeeshan: what if i send data/frequency through bluetooth module HC 05, which have detected by hardware in patient side and use Voice recognition software there in android phone to recognize words?

But then why use the Arduino? If you're planning to use an Android device, just use its microphone, it's many times better than what the Arduino can do. And sending it over bluetooth will make it even slower than it is now.

I seriously think you have to rethink your idea: this is not reliable, and prone to failure. What if the smartphone crashes or runs out of battery? And again: Google needs a huge database to recognize words, cries are even more diverse, what if he cries and it is not recognized? If he is in danger because of that, who is responsible? You, the creator of the device?

There's plenty of dedicated solutions like alarm buttons and fall detection sensors that have prooved to be reliable in countless tests.

I think you are a danger to others.

I do not think this discussion should continue.

You should NOT, in any way shape or form, be making devices that could harm others.

Johnny010:
You should NOT, in any way shape or form, be making devices that could harm others.

okay!! you shape it,so that can help others, CAN YOU.between i am trying and will make it better and helpful as much as i can.

Xeeshan: okay!! you shape it,so that can help others, CAN YOU.between i am trying and will make it better and helpful as much as i can.

Give me about $10B USD, an R&D team with over 100 years experience in various health, IT and computing fields, the lawyers in patent and health sector and no sleep till next year then yeah...we have a deal.

Johnny010: Give me about $10B USD, an R&D team with over 100 years experience in various health, IT and computing fields, the lawyers in patent and health sector and no sleep till next year then yeah...we have a deal.

I'll cure dementia for half that.

INTP: I'll cure dementia for half that.

I was being pedantic :P.

Been attempting to do some drum recognition with an Arduino and have pretty much abandoned it. The Arduino can do a 256 point FHT (128 frequency bins) at 37.5 Hz/bin up to 4800Hz and 75 Hz/bin to 9600 Hz but each FHT takes about 15msec. so while detecting a continuous, constant waveform would be possible, detecting something dynamic like a cry that's changing its frequency content pretty quickly would appear to be very difficult with inconsistent results. An Arduino doesn't have a whole lot of memory and the FHT alone takes close to half, leaving not a lot for the recognition code.

Something like a Teensy, however, has about 5 times the clock speed and memory, and might be capable of this task. It's compatible with the Arduino ITE, runs Arduino code, is less expensive than a genuine Arduino, and has an extensive audio library.