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