ECE 310 Signal And System Final Project Voice Recognition Name Date :Chin-Heong KHOR : 5/9/2001 Objective The objective of this project is Get hands-on experience on signal processing in time and frequency domain. Get familiar with fundamental MATLAB programming, including the usage of important functions, matrix / vector operations, file I/O. string operation, function definition, control structures, etc. Get a little bit understanding on the principles of speech analysis. Learn how to write a report. Introduction Signal and system is very important subject in the real world. In a physical phenomenon, signal is the human voice. In the modern world, high-speed signals are the voltages on the telephone wires, the electric fields emanating from radio or television transmitters and variations of light intensity in an optical fiber on a telephone or computer network. “Noise”, which is sometimes called a “random signal”, is like a signal in that it is a time varying physical phenomenon, but unlike a signal it usually does not carry useful information and is almost always considered undesirable. Understanding signal and system, we can do the basic speech analysis in this project and recognize wave files generated from the same speaker. Furthermore, we can edit the speech (cutting, copying, pasting) the original speech. In another word, we can change the speech from the original speech to speech which we desirable. We can add some noise to the original speech. It is very useful because we can make an environment we desirable. Also, we can filter the “noise” speech by using the filter to get the “clear” speech. There have four kinds of filters we can be used; there are low pass filter, high pass filter, band pass filter, and band stop filter. We can filter the speech to get the speech as you wanted. Moreover, we can find the pitch characterizes the peak energy levels of the signals and use the formant analysis to recognize speech from the different speakers. Approach I separate this project into a few part, so it is east to analysis each of them. A. Speech editing In this section, we want to find my speech file first in the 1st round with a slower speed and try to edit the speech with cutting, copying and pasting. The original speech of this file is “ Signal and System ECE 310”. The goal of this section is moving ECE 310 in front of “Signal and System”. Firstly, we need to find the interval “Signal and System ECE 310”, and then we just can find the interval of “ECE 310”. State the interval of “ECE 310” as the date1, and “Signal and System” as the data2. Paste the data1 in front of data2. B Speech Degrading The purpose of this section is to find my speech file recorded in the 1st round with a faster speed and add “Gaussian” noise to the speech signal at a variance specified by user. Firstly, using FFT and FFTshift function to shift your speech in the middle of y-axis. Then we can obtain “Gaussian” noise by using MATLAB function “randn” to generate “Gausisan”noise. Furthermore, we add the “Gaussian” noise to the fast speech. So, this means we can create the noise and add it into the signal. C. Speech Enhancement The purpose of this section is to find your speech file recorded in the 2nd round with a noisy background and filter this file. Filters waveform at cutoff frequency specified by the user. The matlab function “butter() will generate appropriate filters you specified. Another matlab function “filter()” will apply the filter generated from “butter()”. Then plot the FFT of the original signal and filtered signal. D. Pitch analysis The purpose of this section is to find your speech file recorded in the 1st round with a slower speed and use the pitch to analysis this file. Pitch characterizes the peak energy levels of the signal. Pitch can be obtained by obtaining the peak of autocorrelation. Usually the original speech file is segmented into frames and pitch contour can be derived by plot of peaks from frames. In this section, we call the pitch function to analysis the pitch. Another word, we can use it to recognize which voice is girl’s voice and which voice is man’s voice. We can recognize these voices by determine the pitch. E. Formant analysis The purpose of this section is to find your speech file recorded in the 1st round with slower speed and use the formant to analysis this file. Formant characterizes the first few peaks in the PSD (Power Spectral Density). The PSD has the same relation to power signals as energy spectral density has to energy signals. Another word, we can see from graph to determine the level of energy in speech. So, we can use it to recognize the level of energy in speech. F. Waveform Comparison Use the speech file recorded in the 1st round with a slower speed as a reference, find the closest three other files recorded by you. In order to find the closest ones in pitch, using MATLAB sprintf function to call the all the files in the 1st round out by using For loop. Then, use the MATLAB function of pitch to calculate each file’pitch in the for loop function. Later, call the function of NORM to calculate the distance of the pitch of each file with my pitch. Last, using the sort function to ascend all the files and show each file index. So, it is easily to find the closest of three files’ location. Discussion This project is considered completely successful. Each requirement from this project is done. From this project, we can learn a lot of function from the MATLAB to solve the signal and system problem such as filter, wavread, wavwrite, sound, butter, sprintf, sort, and etc. We know how to import the wave file to MATLAB and hot to write the wave file in the MATLAB environment. Also, we know what is going on the sound wave and we can modify them by adding noise, filter the noise. From the signal, we also can verify this voice come from the man’s voice or girl’s voice. We also know that how much energy to have this voice. Understanding these theories, we can apply this knowledge into communication area or reduce the noise signal in designing the chip, so we can get the accurate signal which we wanted. Time is not enough for this project and problem of this project insufficient. So, adding some parts that help us to understand more about these problems are very important. Conclusion From this project, I can easily to understand what I learn from the class and it help me to understand some parts which I got confused in class. Also, I learn a lot of MATLAB function in this project which I never learn it before. Furthermore, I understand a little bit of the principles of speech analysis in this project. It is very useful to me when I learn advanced course in the future. Learning editing the speech, speech degradation, speech enhancement, pitch analysis, and formant analysis to help me understand what is going on cell phone function, receptor function and some basis principles of speech analysis knowledge. Reference Distance Measures for speech processing by Augustine H.Gray Speech Production, Labeling and Characteristics Introduction of MATLAB Signal And System EE310 by M.J.Robert