How to detect when a person is talking?

I want the arduino to know when a person is talking. I can have sensors on the person's body which I think will be needed. I'm currently thinking of analog resistive bend sensors or a magnet with a hall effect sensor.

I will be sure to use a battery and not a wall wart.

How about using a microphone and some sort of audio level sensor?

PeterH:
How about using a microphone and some sort of audio level sensor?

I've got fans generating a lot of noise. so that is not going to work.

Sound-cancelling mic near to the speaker?

what not an eq after the microphone ? you select a band fequency in the medium spectrum .

Do a Fourier transform and look for a repeating common pattern. Narrow the parameters if you're concerned with false positives. Widen if false negatives. Experiment!

The fan noise could be greatly attenuated with a high-pass filter.

Ufoguy:
I've got fans generating a lot of noise. so that is not going to work.

What's the purpose of knowing when they're speaking? This might give a clue to sensible ways to achieve it. For example, if you ultimately want to hear what was said, perhaps a throat mike or noise canceling mike would make sense.

I actually don't want yet need to hear or record what is being spoken. I just need to know if the mouth is opening.

Its for monitoring sleep talks.

And I think sound processing especially with arduino is going to be difficult. If there is an easy way to do it with arduino I am willing to do it.

But I think using some kind of sensor to know if the mouth has opened like flex sensor or a magnet and hall effect sensor would be easier.

If any body can tell if there is an easy way process sound in arduino that would be great too.

Thanks a lot for all the replies!

PeterH:

Ufoguy:
I've got fans generating a lot of noise. so that is not going to work.

What's the purpose of knowing when they're speaking? This might give a clue to sensible ways to achieve it. For example, if you ultimately want to hear what was said, perhaps a throat mike or noise canceling mike would make sense.

Can you please tell me where to get a noise cancelling mic and throat mics too?

Edit: I googled them. They are not available in India and are very expensive.

A noise-canceller is usually two mics, mounted back-to-back, with one facing the speaker and the other facing outwards.

Throat mics?
Never seen them for sale at the usual distributors.
Defence surplus? Aircraft comms specialists? (Plantronics etc)

Throat Mic Headset, Radioshack, $39.99

  • Single action throat microphone headset features built-in vibration sensors
  • Features an inline Vox push-to-talk switch with a dual pin connector
  • Acoustic sound tube with built-in vibration sensors
  • Acoustic audio cable eartube is discrete and perfect for covert operations
  • Throat microphone provides clear voice transmission without background noise

Olympus Microphone ME-12 Noise Cancelling Mic, Scantracker.com, $19.50

Olympus 145031 Noise-Cancellation Microphone (ME-12) Digital voice recorders provide great solutions for
voice recognition applications, however background noise will sometimes cause a problem. The ME-12 plugs
into your digital recorder's 3.5mm microphone jack for uni-directional recording in high-noise environments.
It will cut down on much of the background noise and result in a more accurate transcription.

http://secure.scantracker.com/Olympus-Microphone-ME-12-Noise-Cancelling-Mic-OLY-145031-ME12/productinfo/DI-OLM-ME12/

Moderator edit: Facile cheap-shot elided.

Ok, guys throat mics and noise cancellation mics are off because (1) They are not easily available in India (2)They are too expensive for my budget (3)I don't think arduino can do voice processing very well.

I may consider doing it in the future but for now they're off.

So, please suggest something else.

sonnyyu:
...
Moderator edit: Facile cheap-shot elided.

Thank you.

Ufoguy:
please suggest something else.

The microphones being suggested are the ones that give you the best chance of success. If those are not available to you, you could try using a plain old cheap mic but don't be surprised if the results are unusable in a noisy environment.

It is possible to buy voice activated recorders for less than the cost of a standard Arduino, and I think this would give you the cheapest solution. I don't suppose any of these cheap recorders would come with throat mics or noise cancelling mics, but you might conceivably find one with support for an external mic. If not, you could consider breaking in to the connection to the internal mic and looking for a way to connect an external mic instead.

How about reed switch and a magnet? Have user wear a light mask that holds the lightweight components on place.