DESIGN OF AUTOMATIC SPEAKER RECOGNITION USING MATLAB By SANDEEP BS Amrita Vishwa Vidya Peetham, Coimbatore
ABSTRACT Speaker Recognition is a process of automatically recognizing who is speaking on thebasis of the individual information included in speech waves. Speaker Recognition is one ofthe most useful biometric recognition techniques in this world where insecurity is a majorthreat. Many organizations like banks, institutions, industries etc are currently using thistechnology for providing greater security to their vast databases.Speaker Recognition mainly involves two modules namely feature extraction andfeature matching. Here, a text-independent speaker identification system is introduced. The well-known Mel Frequency Cepstral coefficients MFCC’s have been used for feature extraction and vector quantization technique is used to minimize the amount of data to be handled.Speakers uttered different words, once in a training session and once in a testing session later.The speaker is identified according to the minimum quantization distance which is calculated between the centroids of each speaker in training phase and the MFCC’s of individual speaker in testing phase. The code is developed in Matlab environment and performs the identification satisfactorily.
INTRODUCTION Speaker recognition is the process of identifying a person on the basis of speech alone. It is a known fact that speech is a speaker dependent feature that enables us to recognize friends over the phone. During the years ahead, it is hoped that speaker recognition will make it possible to verify the identity of persons accessing systems; allow automated control of services by voice, such as banking transactions; and also control the flow of private and confidential data. While fingerprints and retinal scans are more reliable means of identification, speech can be seen as a non-evasive biometric that can be collected with or without the person’s knowledge or even transmitted over long distances via telephone. Unlike other forms of identification, such as passwords or keys, a person's voice cannot be stolen, forgotten or lost. Speaker recognition is basically divided into speaker identification and speaker verification. Speaker identification is the process of determining which registered speaker provides the speech input, while verification is the task of automatically determining if a person really is the person he or she claims to be. The goal of this term paper is a real time text-independent speaker identification, which consists of comparing a speech signal from an unknown speaker to a database of known speakers. The Mel Frequency Cepstral Coefficients and the Vector Quantization algorithms are used to implement the term paper using the programming language Matlab.
DESIGN AND METHODOLOGY SYSTEM OVERVIEW
Figure 1 Schematic diagram of the closed-set speaker identification system Referring to the diagram above, we can see that the input speech will pass through two major stages in order to get the speaker identity, they are: 1- Feature extraction. 2- Classification and Feature matching SPEECH FEATURE EXTRACTION The purpose of this module is to convert the speech waveform to some type of parametric representation for further analysis and processing.MFCCs are based on the known variation of the human ear’s critical bandwidths with frequency,filters spaced linearly at low frequencies and logarithmically at high frequencies have been used to capture the phonetically important characteristics of speech. This is expressed in the mel-frequency scale, which is linear frequency spacing below 1000 Hz and a logarithmic spacing above 1000 Hz. Here the mel scale is being used which translates regular frequencies to a scale that is more appropriate for speech, since the human ear perceives sound in a nonlinear manner. This is useful since our whole understanding
of speech is through our ears, and so the computer should know about this, too. Feature Extraction is done using MFCC processor. MEL-FREQUENCY CEPSTRUM COEFFICIENTS PROCESSOR A block diagram of the structure of an MFCC processor is given in Figure 2. The speech input is typically recorded at a sampling rate above 12500 Hz. This sampling frequency was chosen to minimize the effects of aliasing in the analog- to-digital conversion.
Continu ous speec
Frame Blocking
fram
Windowin g
FFT
spectr um
h
mel cepstru m
Cepstru m
mel spectru m
Melfrequency wrapping
Figure 2:Block diagram of the MFCC processor Frame Blocking In this step, the continuous speech signal is blocked into frames of N samples, with adjacent frames being separated by M (M < N). The first frame consists of the first N samples. The second frame begins M samples after the first frame, overlaps it by N – M samples. This process continues until all the speech is accounted for within one or more frames. The values for N and M are taken as N = 256 (which is equivalent to ~ 30 msec windowing and facilitate the fast radix-2 FFT) and M = 100. Windowing The next step in the processing is to window each individual frame so as to minimize the signal discontinuities at the beginning and end of each frame.
Fast Fourier Transform (FFT) The next processing step is the Fast Fourier Transform, which converts each frame of N samples from the time domain into the frequency domain. Mel-frequency Wrapping As mentioned above, psychophysical studies have shown that human perception ofthe frequency contents of sounds for speech signals does not follow a linear scale. Thus for each tone with an actual frequency, f, measured in Hz, a subjective pitch is measured on a scale called the ‘mel’ scale.One approach to simulating the subjective spectrum is to use a filter bank, spaced uniformly on the mel scale .That filter bank has a triangular bandpassfrequency response, and the spacing as well as the bandwidth is determined by a constant mel frequency interval. Cepstrum As per the National Instruments, Cepstrum is defined as the Fourier transform of the logarithm of the autospectrum. It is the inverse Fourier transform of the logarithm of the power spectrum of a signal. It is useful for determining periodicities in the autospectrum. Additions in the Cepstrum domain correspond to multiplication in the frequency domain and convolution in the time domain.
SPEECH FEATURE MATCHING Once we have produced the feature vectors, the next task is classification, that is to build a unique model for each speaker in the database. The speech produced by the speaker whose identity is to be recognized, will be compared with all speaker’s models in the database. Then, the speaker identity will be determined according to a specific algorithm. VECTORQUANTIZATION Speaker recognition is the task of comparing an unknown speaker with a set of known speakers in a database and finds the best matching speaker. Ideally, storing as much data obtained from feature extraction techniques is advised to ensure a high degree of accuracy, but realistically this cannot be achieved. The number of feature vectors would be so large that storing every single
vector that generate from the training mode is impossible.Vector Quantization is a quantization technique used to compress the information and manipulate the data such in a way to maintain the most prominent characteristics. Vector quantization is the process of mapping vectors from a large vector space to a finite number of regions in that space. Each region is called a cluster and can be represented by its center called a codeword. The collection of all codewords is called a codebook. The data is thus significantly compressed, yet still accurately represented. After the completion of vector quantization, only a few representative vectors remain, and these are collectively known as the speaker’s codebook. The codebook then serves as delineation for the speaker, and is used when training a speaker in the system.
OPTIMIZATION WITH LBG The algorithm is formally implemented by the following recursive procedure: Design a 1-vector codebook; this is the centroid of the entire set of training vectors (hence, no iteration is required here). Double the size of the codebook by splitting each current codebook yn according to the rule
where n varies from 1 to the current size of the codebook, and (we choose
is a splitting parameter
=0.01)
Nearest-Neighbor Search: for each training vector, find the codeword in the current codebook that is closest (in terms of similarity measurement), and assign that vector to the corresponding cell (associated with the closest codeword). Centroid Update: update the codeword in each cell using the centroid of the training vectors assigned to that cell.
Iteration 1: repeat steps 3 and 4 until the average distance falls below a preset threshold Iteration 2: repeat steps 2, 3 and 4 until a codebook size of M is designed. Intuitively, the LBG algorithm designs an M-vector codebook in stages.
It starts first by
designing a 1-vector codebook, then uses a splitting technique on the codewords to initialize the search for a 2-vector codebook, and continues the splitting process until the desired M- vector codebook is obtained.
Figure 3:Flow chart showing the implementation of the LBG algorithm FEATURE MATCHING In the recognition phase an unknown speaker, represented by a sequence of feature vectors {x1,x2,….,xT}, is compared with the codebooks in the database. For each
codebook a distortion measure is computed, and the speaker with the lowest distortion is chosen.The well-known distance measureis Euclidean distance.
The formula used to calculate the Euclidean distance can be defined as following: The Euclidean distance between two points P = (p1, p2…pn) and Q = (q1, q2...qn),
The speaker with the lowest distortion distance is chosen to be identified as the unknown person.
SIMULATION RESULTS A GUI (graphical user interface) allows users to perform tasks interactively through controls such as buttons and sliders. In this termpaper, we used 4 pushbuttons- SPEAK, CHECK, RECORD, and EXIT(Figure 4). To speak, SPEAK is clicked. To record the same, RECORD is pressed, which inturn opens a dialog box as shown in figure 5.Here the speaker gives information about his/her name, age and phone no. To check the validity of speaker, CHECK button is used. And to close, EXIT is used.
Figure 4:MATLABGUI for speaker recognition
Figure5 :Dialog Box where the speaker has to enter details WHEN VALID SPEAKERS ARE CONSIDERED Output:Speaker matches For eg: when a test speaker match with Speaker 1, figure shows the output.
Figure 6:Help Dialog Box when matched WHEN THERE IS AN UNIDENTIFIED SPEAKER Output :Speaker Not Matching
Figure 7:Help Dialog Box when non-matched
EUCLIDEAN DISTANCES BETWEEN THE CODEBOOKS OF SPEAKERS Distance between speaker 1 and speaker 1 is
2.582456
Distance between speaker 1 and speaker 2 is
3.423658
Distance between speaker 1 and speaker 3 is
6.691428
Distance between speaker 1 and speaker 4 is
3.290923
Distance between speaker 1 and speaker 5 is
7.227603
Distance between speaker 1 and speaker 6 is
6.004165
Distance between speaker 1 and speaker 7 is
6.388921
Distance between speaker 1 and speaker 8 is
3.990130
Distance between speaker 1 and speaker 9 is
4.791342
Here, we have chosen threshold distance as 5. If the calculated distance is greater than 5, then the output is ‘Speaker Not Matching’. Otherwise, the speaker corresponding to the minimum distance is identified.
CONCLUSION
The goal of this term paper was to implement a speaker recognition system using MATLAB.The feature extraction is done using Mel Frequency Cepstral Coefficients {MFCC} and the speakers were modeled using Vector Quantization technique. The results obtained in this term paper using MFCC and LBG VQ are satisfactory. Codebooks from all the speakers were collected in a database. A distortion measure based on minimizing the Euclidean distance was used when matching the unknown speaker with the speaker database.The performance factor can be optimized by using high quality audio devices in a noise free environment. There is a possibility that the speech can be recorded and can be used in place of the original speaker .This would not be a problem in our case because the MFCCs of the original speech signal and the recorded signal are different.
REFERENCES [1] Ch.Srinivasa Kumar; “Design Of An Automatic Speaker Recognition System Using MFCC Vector Quantization And LBG Algorithm”, International Journal on Computer Science and Engineering (IJCSE) Vol. 3 No. 8 August 2011. Page(s):2942-2954. [2] A.Srinivasan;“Speaker Identification and Verification using Vector
Quantization
and Mel Frequency Cepstral Coefficients”, Research Journal ofApplied Sciences, Engineering and Technology, 01 Jan. 2012. Page(s):33-40. [3] VibhaTiwari; “MFCC and its applications in speaker recognition”,International Journal
on Emerging Technologies 10 Feb 2010,Page(s):19-22.
[4] Priyanka Mishra;SuyashAgrawal; “Recognition Of Voice UsingMel Cepstral Coefficient & Vector Quantization”,International Journal of Engineering Research and Applications (IJERA) Vol.2,Issue 2,Mar-Apr 2012. Page(s):933-938 [5] Childers, D.G.; Skinner, D.P.; Kemerait, R.C.; “The cepstrum: A guide to processing” Proceedings of the IEEE Volume 65, Issue 10, Oct. 1977 Page(s):1428 – 1443.