Project 3: Speech Processing and Equal Loudness
PART 1: Speech Processing
I recorded my voice and plotted the time waveform, the wideband spectrogram and the narrowband spectrogram. The resulting plots are shown below:
Part 1 M-File
The spectrogram images were constructed by utilizing the MATLAB function "spectrogram" and adjusting the various parameters. In the
wideband spectrum, there is more accuracy in the time domain, and less accuracy in the frequency domain. In the narrowband spectrum, there is
more accuracy in the frequency domain, and less accuracy in the time domain.
'A' in 'Alison'
The graphs below shows a 30 milisecond clip at sample 3500, which is the 'A' in 'Alison'. Plotted also
are the magnitude spectra and phase spectra of this clip.
'e' in 'Mattek'
The graphs below shows a 30 milisecond clip at sample 21100, which is the 'e' in 'Mattek'. The magnitude
spectra and phase spectra are also plotted.
PART 2: Equal Loudness
I generated a 5 second chirp in MATLAB that swept from 20 Hz to 20k Hz. The chirp maintained a constant amplitude.
Below are graphs representing the chirp:
Wav File of 5 second chirp
In order to generate an equal loudness curve, I utilized a MATLAB function designed by Jeff Tacket, entitled ISO 226.
This function returns a 29 point Fletcher-Munson curve. Using interpolation in MATLAB, I expanded the 29 points into
200001 points, so it was the same length as the chirp. Then I performed an element by element multiplication of the curve
with the chirp. This resulted in a chirp with equal loudness over all of the frequencies. Below is a graph of the equal
loudness curve and the equal loudness chirp:
Wav File of 5 second equal loudness chirp
I also applied the equal loudness curve in the frequency domain. I did this by taking the fft of a sound clip
(vega.wav) and doing an element by element multiplication with the equal loudness curve. I then took the ifft of the resulting
vector in order to obtain a signal with equal loudness in all frequencies. Below is the code which I used to implement PART 2:
Equal Loudness M-File
Vega clip
The code that implemented equal loudness in the frequency domain did not run correctly, so I do not have a resulting wav
file with equal loudness.
CONCLUSIONS
Part 1 displays the differences between wideband and narrowband spectrograms. When utilizing a spectrogram, one must choose between accuracy in
frequency or accuracy in time, because it is impossible to have both. Part 1 also shows the different characteristics of vowel phonemes.
Part 2 explores equal loudness in both the time domain and the frequency domain. Although my code took infinitely long to run and I did not see
the final results, I am able to grasp the concept that equal loudness can be applied accurately in either the time domain or the frequency domain. Only in the
case of a chirp can equal loudness be applied in the time domain. For all other signals, it MUST be applied in the frequency domain.
REFERENCES
Tacket, Jeff. "ISO 226 Equal-Loudness Level Contour Signal." 01 March 2005.
http://www.mathworks.com/matlabcentral/fileexchange/7028
Project by Alison Mattek for Engineering Acoustics: MMI361/EEN502