Open MinhChauNGUYEN opened 5 years ago
Using the second derivative of the electroglottographic signal is probably the way to go here. This is discussed in the README file of the peakdet folder (as of version 1.0.5): the peak you want to pick up (semi-)automatically should be reflected in a pulse in the 2nd derivative, whereas the slower decrease in the 1st derivative at the beginning of the cycle should not be reflected in a pulse in the 2nd derivative.
Implementing this solution in peakdet.m
will take programmer time and it is currently difficult to foresee when this will be possible. (My own available free time for this task seems to have vanished due to multiple other tasks...)
What you could do for now is look at the ddEGG signal to confirm that the peak stands out (as a 'pulse' in the signal) and then change the Oq values manually. (Of course this will need to be explained in the 'Method' section of your research report/thesis.)
If you use the current version of peakdet_inter
, you get the 2nd derivative in Figure 4.
The folowing figures show signals of a glottalized tone
f0 and Oq values are extremely low because of discrete long glottal cycles. However cycles 6 and 7 are detected with unreasonable values of Oq. Considering DEGG signal, there are two small peaks appear late in the cycles, after the hill pattern occur right from the beginning. Although these peaks are not really salient, it's more reasonable to believe they are real opening peaks. If they are detected instead of those hill patterns, we have a perfect continuous Oq curve.
Therefore, I suggest here peakdet should have a function such as manual detection opening peak to deal with this case. We can use DEGG figure to locate the position of the real peaks and indicate vectors for peakdet recalculate these cycles.
(source: syllable /rɔ4/ 'banana flower', speaker M11) (link of audio file: https://www.dropbox.com/s/dz4ultzixkv2698/Method_PeakDet_OP_Hill-Peak_ErroneousDetection_M11_1001_sound.wav?dl=0)