# Suggested algorithms for detecting voiced / unvoiced signals [duplicate]

This question is an exact duplicate of:

Right. I'm trying to understand the concepts for determining where the signal contains voiced and unvoiced parts.

I have created a spectrogram (STFT) of a signal and I'm trying to separate from voiced and unvoiced.

I have tried calculating this using the total energy for each bin, and, applying some threshold value for this, however, this concept does not work since determining the threshold requires interaction and and the system should detect this automatically.

Can I therefore use some kind of estimation in order to calculate which bins contain voiced or unvoiced? Let's say, for example:

1) Calculate abs magnitude of STFT Bin
2) Take the 1st, 2nd bins and [form some kind of estimation]
4) use the estimation (2) to detect whether the signal contains voiced


Or could anyone recommend any algorithms, or, reading materials (that are very mathematical intensive) to separating voiced from unvoiced signals without using a threshold value?

Thanks

## marked as duplicate by hotpaw2, Peter K.♦Mar 21 '14 at 0:11

This question was marked as an exact duplicate of an existing question.

• It sounds like you're a little bit confused. What do you mean by automatic and no interaction? Do you know the difference between supervised and unsupervised training? – Aaron Feb 1 '14 at 20:47
• @Aaron Yea, unsupervised training (k-means clustering etc..) The problem is that, I need to identify two types of "calls" made by an animal, with hardly any interaction from the user. I have: Frequency ranges, and amplitudes of each of the calls, as a training data set. Would it therefore be an idea to use a HMM to train these? – Phorce Feb 1 '14 at 20:50
• I don't understand why you can't use a threshold. If you are doing supervised training then you would learn the threshold and apply it during testing, which would require no interaction from the user. – Aaron Feb 1 '14 at 20:52
• @Aaron But, how (if I'm doing supervised training) would I therefore infer a threshold? This is what I've been trying to calculate / workout.. I cannot find any material out there, which, would enable me to do this. Could you give an example, based on what I know about the data? I.e. Would the frequency ranges be enough to be able to perform a threshold to determine the two types of calls? – Phorce Feb 1 '14 at 20:55

Voiced frames may tend to have magnitude peaks that are more narrow-band than unvoiced spectral peaks, and with potential harmonic spacing of multiple spectral peaks. You can iterate on a threshold that divides using the above tests most clearly into 2 or 3 clusters.

• So I can determine a threshold value, based off some estimation of the first 2 bins of the STFT which will give me a respected estimation into the noise/voiced ratio? – Phorce Feb 1 '14 at 21:07
• Depending on voice source, FFT length, sample rate, etc., a voiced signal may appear in a lot more than just 2 bins, due to strong overtones and harmonics. – hotpaw2 Feb 1 '14 at 21:28
• Please see my edit, there is the spectrogram I'm currently working with and trying to get voiced/unvoiced samples from, mainly interested in the areas/bins where the power is the most – Phorce Feb 1 '14 at 21:35

Maybe you try spectral reassignment. Voiced sounds will have a higher ratio of $d \omega \over dt$.

• Hey thanks for this.. Would this be a useful paper for this method?google.co.uk/… what is $dw$ and $dt$ inside your equation? – Phorce Feb 4 '14 at 5:15
• The paper looks good. $dw$ and $dt$ are the corrections to the frequency and time coordinates of a given STFT ,,bin''. – user7358 Feb 4 '14 at 10:09
• Hey, thank you for the reply. Do you think that this will maybe help in the segmentation of these calls? :) – Phorce Feb 4 '14 at 11:53
• Oh, that's You. Hi! I think it could help. You should try it. – user7358 Feb 4 '14 at 18:22
• "Oh that's you" should I be worried? :P – Phorce Feb 4 '14 at 18:37