Dynamically Changing Frame Widths to Perfect FFT Results
(Windowing is Bad, So Don't Do It)

FFTs are strongly biased towards starting and ending the input data at precisely the beginning and end of a "cycle" that repeats indefinitely. Failure to do this requires windowing which is a tragic irreversible alterating (i.e. losing) of the input data. Windowing is fine for looking at frequencies originating from time signals that do not repeat, but some phonemes (especially vowels) are strongly repeating. If you have 10 or 20 cycles to capture and FFT, then there's little harm done, but with only 2 or 3 available in a phoneme, a lot is lost. The technique below captures vowel phonemes as God intended. A "perfect" repeating phoneme cycle is found and marked by endpoints that cross zero, and then the time signal is "shrunk" in time (not amplitude) to fit 128 points for the FFT. This causes an increase in frequency but it's across the board so that the shape of the envelope does not change. The freq shift can be taken out by shifting the entire freq spectrum by adding a constant. It was a multiplier in time domain, so it's addition in freq waveform. Here is a response from someone knowledgeable: "[Scott is] using source synchronous framing so he is part way to being able to get away without a smooth window. The FFT is still a problem though. Even if you zero pad everything [i am not zero padding] outside the current glottal cycle the results are not always very good but generally they are not too bad. Better to use a general DFT that can take any length input. I use the Goertzel algorithm and get about a 30% time penalty realtive to FFT at worst for comparable frame size. If you use a longer frame with the FFT you quickly loose any speed advantage. With the SS-Goertzel approach a Cosine window produces very little improvement (I use one though) and the spectra are much better than you get using fixed frames and FFT."

Analyzing file: abert.wav
uncompressed PCM
mono
16000 samples / second
8 bits / sample
320 bytes of wav data
"Base frequency" for this speaker is approximately 101 Hz

"Start" is the byte position in the wav file where the data first went negative.
"Frame Width" is the number of bytes that were selected (beginning with the start position) as a complete, repeating cycle of the phoneme. The end point is determined by finding where the base frequency and a negative zero crossing occur in close proximity (within plus or minus 15% of base frequency). Quiet samples are troublesome because they cross more often.

Start: 65
Frame Width: 164
This phoneme frame appears to be: er
Power SpectrumRaw Wav DataNormalized Data
0 0 0
1 97................................... 329
2 195................................... 345
3 292................................ 169
4 390...................................... 712
5 487........................................ 1176
6 585........................ 21
7 682........................... 50
8 780.................... 8
9 878.................. 5
10 975................. 3
11 1073................... 6
12 1170..................... 9
13 1268............................... 135
14 1365......................... 31
15 1463......................... 32
16 1560........................ 25
17 1658................. 3
18 1756.......... 0
19 1853..... 0
20 1951......... 0
21 2048. 0
22 2146..... 0
23 2243...... 0
24 2341.. 0
25 2439..... 0
26 2536 0
27 2634.... 0
28 2731.. 0
29 2829.. 0
30 2926. 0
31 3024.. 0
32 3121.... 0
33 3219.. 0
34 3317.. 0
35 3414.... 0
36 3512 0
37 3609... 0
38 3707. 0
39 3804. 0
40 3902. 0
41 4000 0
42 4097. 0
43 4195 0
44 4292. 0
45 4390 0
46 4487 0
47 4585 0
48 4682 0
49 4780. 0
50 4878 0
51 4975 0
52 5073 0
53 5170 0
54 5268 0
55 5365 0
56 5463 0
57 5560 0
58 5658 0
59 5756 0
60 5853 0
61 5951 0
62 6048 0
63 6146 0
64 6243 0
0--------------------------------128
2---------------------------110
4----------------------------114
6---------------------------------132
8------------------------------------147
10-------------------------------------151
12------------------------------------146
14------------------------------------147
16--------------------------------------154
18-----------------------------------------165
20------------------------------------------171
22-----------------------------------------166
24--------------------------------------155
26------------------------------------144
28-----------------------------------141
30-----------------------------------142
32-----------------------------------142
34---------------------------------134
36------------------------------120
38---------------------------109
40--------------------------105
42--------------------------107
44---------------------------110
46--------------------------106
48-------------------------100
50-----------------------93
52----------------------91
54----------------------88
56--------------------83
58------------------72
60--------------57
62----------41
64-----23
66-----21
68-----20
70-------------54
72-----------------------------119
74-------------------------------------------173
76-----------------------------------------------189
78-------------------------------------------174
80-------------------------------------------172
82-------------------------------------------------198
84---------------------------------------------------------231
86---------------------------------------------------------229
88--------------------------------------------179
90-----------------------------117
92--------------------83
94---------------------85
96------------------------98
98----------------------90
100----------------65
102------------51
104----------------64
106-------------------------102
108----------------------------------139
110---------------------------------------159
112-----------------------------------------167
114------------------------------------------170
116-------------------------------------------173
118-------------------------------------------175
120-------------------------------------------173
122------------------------------------------168
124--------------------------------------154
126--------------------------------129
128-------------------------101
130--------------------81
132-------------------79
134----------------------90
136------------------------98
138-----------------------95
140----------------------91
142-------------------------100
144---------------------------------132
146-------------------------------------------173
148--------------------------------------------------200
150--------------------------------------------------202
152-----------------------------------------------190
154---------------------------------------------180
156---------------------------------------------180
158--------------------------------------------179
160-----------------------------------------167
162-----------------------------------143
0++++++++++++++++++++++++++++++++++++++++ 0
2+++++++++++++++++++++++++++++++++++ -21
4++++++++++++++++++++++++++++++++++++++ -5
6++++++++++++++++++++++++++++++++++++++++++++ 20
8+++++++++++++++++++++++++++++++++++++++++++++ 26
10++++++++++++++++++++++++++++++++++++++++++++ 21
12+++++++++++++++++++++++++++++++++++++++++++++ 26
14++++++++++++++++++++++++++++++++++++++++++++++++ 43
16+++++++++++++++++++++++++++++++++++++++++++++++++ 49
18+++++++++++++++++++++++++++++++++++++++++++++++ 38
20++++++++++++++++++++++++++++++++++++++++++++ 21
22+++++++++++++++++++++++++++++++++++++++++++ 15
24+++++++++++++++++++++++++++++++++++++++++++ 17
26++++++++++++++++++++++++++++++++++++++++++ 11
28++++++++++++++++++++++++++++++++++++++ -8
30+++++++++++++++++++++++++++++++++++ -23
32++++++++++++++++++++++++++++++++++ -25
34+++++++++++++++++++++++++++++++++++ -21
36++++++++++++++++++++++++++++++++++ -26
38++++++++++++++++++++++++++++++++ -36
40+++++++++++++++++++++++++++++++ -42
42++++++++++++++++++++++++++++++ -46
44++++++++++++++++++++++++++++ -55
46+++++++++++++++++++++++++ -73
48++++++++++++++++++++ -97
50+++++++++++++++ -123
52++++++++++++++ -125
54+++++++++++++++++ -111
56+++++++++++++++++++++++++++++++++++ -20
58+++++++++++++++++++++++++++++++++++++++++++++++++++ 58
60++++++++++++++++++++++++++++++++++++++++++++++++++++ 64
62+++++++++++++++++++++++++++++++++++++++++++++++++ 49
64++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 82
66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 124
68++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 90
70+++++++++++++++++++++++++++++++++++++++ -1
72+++++++++++++++++++++++++++++ -53
74+++++++++++++++++++++++++++++++ -43
76++++++++++++++++++++++++++++++++ -38
78+++++++++++++++++++++++++ -73
80++++++++++++++++++++++ -89
82+++++++++++++++++++++++++++++ -53
84+++++++++++++++++++++++++++++++++++++++++ 5
86+++++++++++++++++++++++++++++++++++++++++++++++ 37
88+++++++++++++++++++++++++++++++++++++++++++++++++ 47
90++++++++++++++++++++++++++++++++++++++++++++++++++ 51
92+++++++++++++++++++++++++++++++++++++++++++++++++++ 55
94++++++++++++++++++++++++++++++++++++++++++++++++++ 51
96++++++++++++++++++++++++++++++++++++++++++++++++ 41
98+++++++++++++++++++++++++++++++++++++++++ 8
100+++++++++++++++++++++++++++++++++ -33
102++++++++++++++++++++++++++++ -57
104+++++++++++++++++++++++++++++ -50
106++++++++++++++++++++++++++++++++ -35
108+++++++++++++++++++++++++++++++ -40
110+++++++++++++++++++++++++++++++ -41
112++++++++++++++++++++++++++++++++++++++ -5
114++++++++++++++++++++++++++++++++++++++++++++++++++ 54
116+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 87
118+++++++++++++++++++++++++++++++++++++++++++++++++++++++ 79
120++++++++++++++++++++++++++++++++++++++++++++++++++++ 62
122++++++++++++++++++++++++++++++++++++++++++++++++++++ 61
124+++++++++++++++++++++++++++++++++++++++++++++++++++ 55
126+++++++++++++++++++++++++++++++++++++++++++++ 26

Start: 263
Frame Width: 183
This phoneme frame appears to be: .
Power SpectrumRaw Wav DataNormalized Data
0 0.............................................. 5368
1 87............................................. 4015
2 174................................ 162
3 262............................ 65
4 349....................................... 882
5 437....................................... 964
6 524.............................. 92
7 612......................... 32
8 699............................. 71
9 786...................... 13
10 874............................. 79
11 961............. 1
12 1049......................... 31
13 1136...................... 12
14 1224..................... 9
15 1311............................. 81
16 1398............................ 54
17 1486......................... 30
18 1573.................... 9
19 1661....................... 19
20 1748.. 0
21 1836................... 5
22 1923................. 3
23 2010................. 3
24 2098................... 6
25 2185........... 0
26 2273................... 6
27 2360.... 0
28 2448.................... 8
29 2535.......... 0
30 2622................... 6
31 2710............. 1
32 2797................ 3
33 2885................ 3
34 2972.............. 1
35 3060................. 3
36 3147....... 0
37 3234................ 2
38 3322......... 0
39 3409............... 2
40 3497.............. 1
41 3584.............. 1
42 3672............... 2
43 3759......... 0
44 3846................. 3
45 3934..... 0
46 4021................. 3
47 4109. 0
48 4196............... 2
49 4284.......... 0
50 4371............. 1
51 4459............. 1
52 4546.......... 0
53 4633............... 2
54 4721.. 0
55 4808................ 2
56 4896..... 0
57 4983............... 2
58 5071.......... 0
59 5158.............. 1
60 5245............. 1
61 5333........... 0
62 5420.............. 1
63 5508..... 0
64 5595............ 1
0--------------------------------128
2-----------------------------116
4---------------------------110
6---------------------------110
8----------------------------112
10---------------------------111
12--------------------------106
14-------------------------100
16------------------------97
18------------------------96
20-----------------------92
22--------------------83
24-----------------71
26--------------59
28-----------45
30-------28
32-----20
34-----20
36------------50
38----------------------------114
40------------------------------------------170
42-----------------------------------------------188
44-------------------------------------------175
46-------------------------------------------172
48-------------------------------------------------197
50---------------------------------------------------------230
52---------------------------------------------------------231
54----------------------------------------------186
56-------------------------------125
58----------------------89
60----------------------89
62------------------------99
64-----------------------92
66----------------67
68-------------52
70---------------63
72------------------------98
74---------------------------------134
76---------------------------------------156
78-----------------------------------------165
80------------------------------------------169
82-------------------------------------------173
84--------------------------------------------176
86-------------------------------------------175
88------------------------------------------171
90-------------------------------126
92-------------------------------126
94-------------------------------126
96-------------------------------126
98-------------------------------126
100-------------------------------126
1020
1040
1060
1080
1100
1120
1140
1160
1180
1200
1220
1240
1260
1280
1300
1320
1340
1360
1380
1400
1420
1440
1460
1480
1500
1520
1540
1560
1580
1600
1620
1640
1660
1680
1700
1720
1740
1760
1780
1800
1820
0++++++++++++++++++++++++++++++++++++++++ 0
2++++++++++++++++++++++++++++++++++++ -18
4+++++++++++++++++++++++++++++++++++ -21
6++++++++++++++++++++++++++++++++++++ -18
8+++++++++++++++++++++++++++++++++++ -23
10+++++++++++++++++++++++++++++++++ -33
12++++++++++++++++++++++++++++++++ -36
14+++++++++++++++++++++++++++++++ -42
16++++++++++++++++++++++++++++ -59
18++++++++++++++++++++++++ -79
20+++++++++++++++++++ -103
22++++++++++++++ -126
24+++++++++++++++ -124
26++++++++++++++++++++++++++++++ -48
28+++++++++++++++++++++++++++++++++++++++++++++++++ 49
30+++++++++++++++++++++++++++++++++++++++++++++++++++++ 65
32++++++++++++++++++++++++++++++++++++++++++++++++++ 51
34++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 94
36++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 124
38+++++++++++++++++++++++++++++++++++++++++++++++++++ 55
40+++++++++++++++++++++++++++++++++ -33
42++++++++++++++++++++++++++++++ -45
44+++++++++++++++++++++++++++++++++ -34
46++++++++++++++++++++++++++ -68
48++++++++++++++++++++++ -87
50++++++++++++++++++++++++++++++ -46
52++++++++++++++++++++++++++++++++++++++++++ 12
54+++++++++++++++++++++++++++++++++++++++++++++++ 39
56+++++++++++++++++++++++++++++++++++++++++++++++++ 48
58+++++++++++++++++++++++++++++++++++++++++++++++++++ 55
60+++++++++++++++++++++++++++++++++++++++++++++++++++ 55
62+++++++++++++++++++++++++++++++++++++++++++ 16
64+++++++++++++++++++++++++++++++++++++++ -2
66+++++++++++++++++++++++++++++++++++++++ -2
68+++++++++++++++++++++++++++++++++++++++ -2
70+++++++++++++++++++++++++++++++++++++ -13
72+++++++++ -150
74+++++++++ -150
76+++++++++ -150
78+++++++++ -150
80+++++++++ -150
82+++++++++ -150
84+++++++++ -150
86+++++++++ -150
88+++++++++ -150
90+++++++++ -150
92+++++++++ -150
94+++++++++ -150
96+++++++++ -150
98+++++++++ -150
100+++++++++ -150
102+++++++++ -150
104+++++++++ -150
106+++++++++ -150
108+++++++++ -150
110+++++++++ -150
112+++++++++ -150
114+++++++++ -150
116+++++++++ -150
118+++++++++ -150
120+++++++++ -150
122+++++++++ -150
124+++++++++ -150
126+++++++++ -150