views:

192

answers:

4

I'm not much into audio engineering, so please be easy on me. I'm receiving an audio file as input, and need to detect whether the speaker is male or female. Any ideas how to go about doing this?

I'm using php, but am open to using other languages, and don't mind learning a little bit of sound theory as long as the time is proportionate to the task.

+5  A: 

I can't really provide specific insight to this problem , but I'd start by reading the following article: Gender Classification from Speech.

That should at least give an idea of the concepts / methodologies involved (this article describes this quite well as far as I can tell).

ChristopheD
That's a great article =)
David Thomas
+2  A: 

I'm with Christophe, both in that I don't have too much experience with this and also think some research would be your best path.

If I had to take a stab at this though, I would guess that it would involve computing the frequency spectrum of the sample using Fourier transforms, and then figuring out where the mean frequency lay. Build up a large sample of male vs female, for different cultures and languages, and then compare your specific sample's mean frequency to established means for male vs female.

I could be completely wrong though, so research is really your best bet.

Mark Peters
A: 

One approach would be to use artificial neural networks. You provide the neural net with some examples for training and it should hopefully learn to correctly classify the voices. You will probably have to do some feature extraction using Fourier transforms to get the data into a suitable form.

There are several papers about this kind of approach if you search on Google for "neural network speaker identification" but unfortunately I am not familiar enough with them to recommend any particular one.

Dan Dyer
+3  A: 

First of all you will have to find pitch values and one great algorithm for finding pitch values for voice can be find on this article: http://www.fon.hum.uva.nl/paul/papers/Proceedings_1993.pdf .

It's amazingly accurate.

Nemeth