I want to identify male or female voice in a speech signal

55 views (last 30 days)
Safi Khan
Safi Khan on 1 Oct 2016
Answered: Brian Hemmat on 12 Apr 2020
I have taken the speech signal as input using 'audiorecorder' function and converted it into a double precision array.. At the end of execution, i want to display whether the voice is male's or female's.. How to do this? Plz tell me step by step. Can we acheive this using fft plot?

Accepted Answer

Star Strider
Star Strider on 1 Oct 2016
Do some online research and determine the characteristic speech frequencies for adult males and females, or calculate the fft (link) of representative male and female voices, and use that as your guide. Then design bandpass filters for those frequency bands.
There are several ways to design filters in MATLAB with the Signal Processing Toolbox. The designfilt function is probably the easiest to use. My general recommendations (and specific approach to designing IIR filters) are here: How to design a lowpass filter for ocean wave data in Matlab?
Note that classification always involves false positives and false negatives (misclassification), and classification is actually a much more involved process than I’ve outlined here.
This is a relatively straightforward problem otherwise. Have fun with it!

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!