FORMANTS
FORMANTS - formant extraction
Usage:
FORMANTS F A M F0 N B T MODE TABLE COL
Inputs:
F, A | peak frequencies (Hz) and magnitudes (dB); vectors of same length |
M | number of peaks in current frame |
F0 | fundamental frequency (in Hz, used for voiced/unvoiced decisions, optional) |
N | maximum number of formant candidates to be saved |
B | bandwidth (bias) for tracking (in Hz) |
T | minimum track duration (in frames) |
MODE | output mode |
TABLE | name of parameter table |
COL | first column of table to be used for formant data |
Outputs:
None; output values are stored in the table
Function:
This module extracts formant tracks from the input peak data. The input vectors F and A are the frequencies and magnitudes of local maxima (peaks) of the LPC- or cepstrum-smoothed spectrum (of a speech signal). While the atom is active (running) the input data is collected and stored in a time-frequency matrix. When the atom is stopped the tracking algorithm is applied to the matrix.
The tracking algorithm tries to create non-crossing formant tracks using a forward/backward search and connection method with a minimum peak-frequency distance criterion. Isolated peaks and chains with a duration shorter than T frames are removed from the matrix. The extracted and sorted formant tracks are stored in the table.
If the F0 input is connected, formants tracks are only computed for voiced frames (with F0>0
).
Table 9: Format of formant data table selected by input MODE
value of MODE | values stored in table
(track index: i = 0..N-1, frame index: t = 0,1,..) |
number of cols. |
0 | frequencies:TABLE[t,COL+I] = fi | N |
1 | frequencies and magnitudes:TABLE[t,COL+2i]=fi and TABLE[t,COL+2i+1]=ai | 2N |
2 | frequencies and magnitudes:TABLE[t,COL+i]=fi and TABLE[t,COL+N+i]=ai | 2N |
The bias B is used in the tracking method for the distance computation:
with:
fi frequency of formant candidate in frame t fj frequency of formant candidate in frame t+1 di,j distance of formant candidates