Speech analysis using Fourier Transform

MATLAB Functions:
 fft  Use the MATLAB help for fft

Discrete Fourier Transform

You will see text like this:
[ 
Image Processing Toolbox User's Guide    Discrete Fourier Transform 

Working with the Fourier transform on a computer usually involves a form of the transform known as the discrete Fourier transform (DFT). There are two principal reasons for using this form: The input and output of the DFT are both discrete, which makes it convenient for computer manipulations. There is a fast algorithm for computing the DFT known as the fast Fourier transform (FFT).
… See the rest in MATLAB help
]

fft Discrete Fourier transform SyntaxY = fft(X)
Y = fft(X,n)
Y = fft(X,[],dim)
Y = fft(X,n,dim)

Description
Y = fft(X) 
returns the discrete Fourier transform (DFT) of vector X, computed with a fast Fourier transform (FFT) algorithm. 

If X is a matrix, fft returns the Fourier transform of each column of the matrix. 

If X is a multidimensional array, fft operates on the first nonsingleton dimension. 

Y = fft(X,n) 
returns the n-point DFT. 

If the length of X is less than n, X is padded with trailing zeros to length n. 

If the length of X is greater than n, the sequence X is truncated. 

When X is a matrix, the length of the columns are adjusted in the same manner. 

Y = fft(X,[],dim) and Y = fft(X,n,dim) 
applies the FFT operation across the dimension dim. 

Examples
A common use of Fourier transforms is to find the frequency components of a signal buried in a noisy time domain signal. Consider data sampled at 1000 Hz. Form a signal containing 50 Hz and 120 Hz and corrupt it with some zero-mean random noise: 
t = 0:0.001:0.6; /* 
x = sin(2*pi*50*t)+sin(2*pi*120*t);
y = x + 2*randn(size(t));
plot(1000*t(1:50),y(1:50))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('time (milliseconds)')

 Figure

It is difficult to identify the frequency components by looking at the original signal. Converting to the frequency domain, the discrete Fourier transform of the noisy signal y is found by taking the 512-point fast Fourier transform (FFT): 
Y = fft(y,512);
The power spectrum, a measurement of the power at various frequencies, is 

Pyy = Y.* conj(Y) / 512;

Graph the first 257 points (the other 255 points are redundant) on a meaningful frequency axis: 
f = 1000*(0:256)/512;
plot(f,Pyy(1:257))
title('Frequency content of y')
xlabel('frequency (Hz)')

 Figure

This represents the frequency content of y in the range from DC up to and including the Nyquist frequency. (The signal produces the strong peaks.)

For more, see the MATLAB help

Data Type Support
fft supports inputs of data types double and single. If you call fft with the syntax 
y = fft(X, ...), the output y has the same data type as the input X. 

See Also
fft2, fftn, fftw, fftshift, ifft dftmtx, filter, and freqz in the Signal Processing Toolbox

Spectrograms
Spectrograms are color-based visualizations of the evolution of the power spectrum of a speech signal as this signal is swept through time. Spectrograms use the periodogram power spectrum estimation method and are widely-used by speech and audio engineers. You can use them to develop a visual understanding of the frequency content of your speech signal while a particular sound is being vocalized. In this section, you view the spectrogram of a speech signal.

This section includes the following topics: 
Modifying the Block Diagram -- Modify your model in order to view the spectrogram of your speech signal. 
Setting the Model Parameters -- Set the parameters of your model. 
Viewing the Spectrogram of the Speech Signal -- Use a Matrix Viewer block to view the spectrogram of your speech signal.

MATLAB  Signal Processing Toolbox
FFT-Based Time-Frequency Analysis
The Signal Processing Toolbox provides a function, specgram, that returns the time-dependent Fourier transform for a sequence, or displays this information as a spectrogram. The Toolbox also inclues a spectrogram demo. The time-dependent Fourier transform is the discrete-time Fourier transform for a sequence, computed using a sliding window. This form of the Fourier transform, also known as the short-time Fourier transform (STFT), has numerous applications in speech, sonar, and radar processing. The spectrogram of a sequence is the magnitude of the time-dependent Fourier transform versus time.

To display the spectrogram of a linear FM signal:

fs = 10000;
t = 0:1/fs:2;
x = vco(sawtooth(2*pi*t,.75),[0.1 0.4]*fs,fs);
specgram(x,512,fs,kaiser(256,5),220)

 Figure

Note that the spectrogram display is an image, not a plot.

Specgram

Time-dependent frequency analysis (spectrogram)

Syntax
B = specgram(a)
B = specgram(a,nfft)
[B,f] = specgram(a,nfft,fs)
[B,f,t] = specgram(a,nfft,fs)
B = specgram(a,nfft,fs,window)
B = specgram(a,nfft,fs,window,numoverlap)
specgram(a)
B = specgram(a,f,fs,window,numoverlap)

Description
specgram computes the windowed discrete-time Fourier transform of a signal using a sliding window. The spectrogram is the magnitude of this function.

B = specgram(a) calculates the windowed discrete-time Fourier transform for the signal in vector a. This syntax uses the default values:

•	nfft = min(256,length(a)) 
•	fs = 2 
•	window is a periodic Hann (Hanning) window of length nfft. 
•	numoverlap = length(window)/2 

nfft specifies the FFT length that specgram uses. This value determines the frequencies at which the discrete-time Fourier transform is computed. fs is a scalar that specifies the sampling frequency. window specifies a windowing function and the number of samples specgram uses in its sectioning of vector a. numoverlap is the number of samples by which the sections overlap. Any arguments that you omit from the end of the input parameter list use the default values shown above.

If a is real, specgram computes the discrete-time Fourier transform at positive frequencies only. If n is even, specgram returns nfft/2+1 rows (including the zero and Nyquist frequency terms). If n is odd, specgram returns nfft/2 rows. The number of columns in B is
k = fix((n-numoverlap)/(length(window)-numoverlap))

If a is complex, specgram computes the discrete-time Fourier transform at both positive and negative frequencies. In this case, B is a complex matrix with nfft rows. Time increases linearly across the columns of B, starting with sample 1 in column 1. Frequency increases linearly down the rows, starting at 0.

B = specgram(a,nfft) uses the specified FFT length nfft in its calculations.

[B,f] = specgram(a,nfft,fs) returns a vector f of frequencies at which the function computes the discrete-time Fourier transform. fs has no effect on the output B; it is a frequency scaling multiplier.

[B,f,t] = specgram(a,nfft,fs) returns frequency and time vectors f and t respectively. t is a column vector of scaled times, with length equal to the number of columns of B. t(j) is the earliest time at which the jth window intersects a. t(1) is always equal to 0.

B = specgram(a,nfft,fs,window) specifies a windowing function and the number of samples per section of the x vector. If you supply a scalar for window, specgram uses a Hann window of that length. The length of the window must be less than or equal to nfft.

B = specgram(a,nfft,fs,window,numoverlap) overlaps the sections of x by numoverlap samples.

You can use the empty matrix [] to specify the default value for any input argument. For example,

B = specgram(x,[],10000)

is equivalent to

B = specgram(x)

but with a sampling frequency of 10,000 Hz instead of the default 2 Hz. specgram(...) with no output arguments displays the scaled logarithm of the spectrogram in the current figure window using

imagesc(t,f,20*log10(abs(b))), axis xy, colormap(jet)

The axis xy mode displays the low-frequency content of the first portion of the signal in the lower-left corner of the axes. specgram uses fs to label the axes according to true time and frequency.

B = specgram(a,f,fs,window,numoverlap) computes the spectrogram at the frequencies specified in f, using either the chirp z-transform (for more than 20 evenly spaced frequencies) or a polyphase decimation filter bank. f is a vector of frequencies in hertz; it must have at least two elements.

Examples
Display the spectrogram of a digitized speech signal:

load mtlb
specgram(mtlb,512,Fs,kaiser(500,5),475)
title('Spectrogram')

Note    You can view and manipulate a similar spectrogram using the Signal Processing Toolbox specgramdemo.

Algorithm
specgram calculates the spectrogram for a given signal as follows:
1.	It splits the signal into overlapping sections and applies the window specified by the window parameter to each section.
2.	It computes the discrete-time Fourier transform of each section with a length nfft FFT to produce an estimate of the short-term frequency content of the signal; these transforms make up the columns of B. The quantity (length(window) - numoverlap) specifies by how many samples specgram shifts the window.
3.	For real input, specgram truncates the spectrogram to the first nfft/2 + 1 points for nfft even and (nfft + 1)/2 for nfft odd.

Diagnostics
An appropriate diagnostic message is displayed when incorrect arguments are used:

Requires window's length to be no greater than the FFT length.
Requires NOVERLAP to be strictly less than the window length.
Requires positive integer values for NFFT and NOVERLAP.
Requires vector input.
See Also
mscohere, cpsd, pwelch, tfestimate

MATLAB  Signal Processing Toolbox

vco 
Voltage controlled oscillator 
Syntax
y = vco(x,fc,fs)
y = vco(x,[Fmin Fmax],fs)
Description
y = vco(x,fc,fs) creates a signal that oscillates at a frequency determined by the real input vector or array x with sampling frequency fs. fc is the carrier or reference frequency; when x is 0, y is an fc Hz cosine with amplitude 1 sampled at fs Hz. x ranges from -1 to 1, where x = -1 corresponds to 0 frequency output, x = 0 corresponds to fc, and x = 1 corresponds to 2*fc. Output y is the same size as x.

y = vco(x,[Fmin Fmax],fs) scales the frequency modulation range so that ±1 values of x yield oscillations of Fmin Hz and Fmax Hz respectively. For best results, Fmin and Fmax should be in the range 0 to fs/2

By default, fs is 1 and fc is fs/4.

If x is a matrix, vco produces a matrix whose columns oscillate according to the columns of x.

Examples
Generate two seconds of a signal sampled at 10,000 samples/second whose instantaneous frequency is a triangle function of time:
fs = 10000;
t = 0:1/fs:2;
x = vco(sawtooth(2*pi*t,0.75),[0.1 0.4]*fs,fs);
Plot the spectrogram of the generated signal:
specgram(x,512,fs,kaiser(256,5),220)

 Figure
Algorithm
vco performs FM modulation using the modulate function.
Diagnostics
If any values of x lie outside [-1, 1], vco gives the following error message. X outside of range [-1,1].

See Also
demod, modulate

MATLAB  MATLAB Function Reference

wavread 
Read Microsoft WAVE (.wav) sound file 
Graphical Interface
As an alternative to auread, use the Import Wizard. To activate the Import Wizard, select Import Data from the File menu. 
Syntax
y = wavread('filename')
[y,Fs,bits] = wavread('filename')
[...] = wavread('filename',N)
[...] = wavread('filename',[N1 N2])
[...] = wavread('filename','size')

Description
wavread supports multichannel data, with up to 32 bits per sample, and supports reading 24- and 32-bit .wav files. 
y = wavread('filename') loads a WAVE file specified by the string filename, returning the sampled data in y. The .wav extension is appended if no extension is given. Amplitude values are in the range [-1,+1]. 

[y,Fs,bits] = wavread('filename') returns the sample rate (Fs) in Hertz and the number of bits per sample (bits) used to encode the data in the file. 
[...] = wavread('filename',N) returns only the first N samples from each channel in the file. 
[...] = wavread('filename',[N1 N2]) returns only samples N1 through N2 from each channel in the file. 
siz = wavread('filename','size') returns the size of the audio data contained in the file in place of the actual audio data, returning the vector siz = [samples channels]. 
See Also
auread, wavwrite

wavwrite 
Write a Microsoft WAVE (.wav) sound file 
Syntax
wavwrite(y,'filename')
wavwrite(y,Fs,'filename')
wavwrite(y,Fs,N,'filename')

Description
wavwrite writes data to 8-, 16-, 24-, and 32-bit .wav files. 
wavwrite(y,'filename') writes the data stored in the variable y to a WAVE file called filename. The data has a sample rate of 8000 Hz and is assumed to be 16-bit. Each column of the data represents a separate channel. Therefore, stereo data should be specified as a matrix with two columns. Amplitude values outside the range [-1,+1] are clipped prior to writing. 
wavwrite(y,Fs,'filename') writes the data stored in the variable y to a WAVE file called filename. The data has a sample rate of Fs Hz and is assumed to be 16-bit. Amplitude values outside the range [-1,+1] are clipped prior to writing. 
wavwrite(y,Fs,N,'filename') writes the data stored in the variable y to a WAVE file called filename. The data has a sample rate of Fs Hz and is N-bit, where N is 8, 16, 24, or 32. For N < 32, amplitude values outside the range [-1,+1] are clipped.

Note    8-, 16-, and 24-bit files are type 1 integer pulse code modulation (PCM). 32-bit files are written as type 3 normalized floating point.

See Also
auwrite, wavread

wavrecord 
Record sound using a PC-based audio input device. 
Syntax
y = wavrecord(n,Fs)
y = wavrecord(...,ch)
y = wavrecord(...,'dtype')
Description
y = wavrecord(n,Fs) records n samples of an audio signal, sampled at a rate of Fs Hz (samples per second). The default value for Fs is 11025 Hz. 
y = wavrecord(...,ch) uses ch number of input channels from the audio device. ch can be either 1 or 2, for mono or stereo, respectively. 
The default value for ch is 1. 
y = wavrecord(...,'dtype') uses the data type specified by the string 'dtype' to record the sound. The string 'dtype' can be one of the following: 
•	'double' (default value), 16 bits/sample 'single', 
•	16 bits/sample 'int16', 
•	16 bits/sample 'uint8', 
•	8 bits/sample 
Remarks
Standard sampling rates for PC-based audio hardware are 8000, 11025, 2250, and 44100 samples per second. Stereo signals are returned as two-column matrices. The first column of a stereo audio matrix corresponds to the left input channel, while the second column corresponds to the right input channel. 
Examples
Record 5 seconds of 16-bit audio sampled at 11025 Hz. Play back the recorded sound using wavplay. 
Speak into your audio device (or produce your audio signal) while the wavrecord command runs. 
Fs = 11025;
y = wavrecord(5*Fs,Fs,'int16');
wavplay(y,Fs);
See Also
wavplay

wavplay 
Play recorded sound on a PC-based audio output device 
Syntax
wavplay(y,Fs)
wavplay(...,'mode')
Description
wavplay(y,Fs) plays the audio signal stored in the vector y on a PC-based audio output device. You specify the audio signal sampling rate with the integer Fs in samples per second. The default value for Fs is 11025 Hz (samples per second). wavplay supports only 1- or 2-channel (mono or stereo) audio signals. 
wavplay(...,'mode') specifies how wavplay interacts with the command line, according to the string 'mode'. The string 'mode' can be 
•	'async' (default value): You have immediate access to the command line as soon as the sound begins to play on the audio output device (a nonblocking device call). 
•	'sync': You don't have access to the command line until the sound has finished playing (a blocking device call). 
The audio signal y can be one of four data types. The number of bits used to quantize and play back each sample depends on the data type.
Data Types for wavplay 

Data Type	Quantization	
Double-precision (default value)	16 bits/sample	
Single-precision	16 bits/sample	
16-bit signed integer	16 bits/sample	
8-bit unsigned integer	8 bits/sample	

Remarks
You can play your signal in stereo if y is a two-column matrix. 
Examples
The MAT-files gong.mat and chirp.mat both contain an audio signal y and a sampling frequency Fs. Load and play the gong and the chirp audio signals. Change the names of these signals in between load commands and play them sequentially using the 'sync' option for wavplay. 

load chirp;
y1 = y; Fs1 = Fs;
load gong;
wavplay(y1,Fs1,'sync') % The chirp signal finishes before the 
wavplay(y,Fs)          % gong signal begins playing.
See Also
wavrecord

Other MATLAB functions:
1)	MATLAB Function to scale and play a sound file
soundsc()

Help:	     soundsc(y,Fs) sends the signal in vector y (with sample frequency Fs) to the speaker on PC and most UNIX platforms. The signal y is scaled to the range -1 <= y <= +1 before it is played, resulting in a sound that is played as loud as possible without clipping.
2)	MATLAB Function to play a sound file
sound()

Help:     sound(y,Fs) sends the signal in vector y (with sample frequency Fs) to the speaker on PC and most UNIX platforms. Values in y are assumed to be in the range -1 <= y <= +1. Values outside that range are clipped. Stereo sound is played on platforms that support it when y is an n-by-2 matrix.
3)	MATLAB Function to get the size of vectors and matrices, or strings
size()
Help: 	d = size(X) returns the sizes of each dimension of array X in a vector d with ndims(X) elements. 
[m,n] = size(X) returns the size of matrix X in separate variables m and n. 
m = size(X,dim) returns the size of the dimension of X specified by scalar dim. [d1,d2,d3,...,dn] = size(X) returns the sizes of the first n dimensions of array X in separate variables.

4)	MATLAB Function to save data to a file
save()
5)	MATLAB Function to save data to a file
load()
Help: 	
load file
load file obj1 obj2. . .
out = load('file','obj1','obj2',. . .)

load file returns all variables from the MAT-file file into the MATLAB workspace. 
load file obj1 obj2... returns the specified device objects from the MAT-file file into the MATLAB workspace. 
out = load('file','obj1','obj2',...) returns the specified device objects from the MAT-file file as a structure to out instead of directly loading them into the workspace. The field names in out match the names of the loaded device objects. If no device objects are specified, then all variables existing in the MAT-file are loaded
6)	MATLAB Function to design a Graphical User Interface (GUI)
guide()
Help: 	GUIDE, the MATLAB Graphical User Interface development environment, provides a set of tools for creating graphical user interfaces (GUIs). These tools greatly simplify the process of designing and building GUIs..
7)	MATLAB Function to export text data to files and devices
csvwrite()
Help: 	csvwrite('filename',M) writes matrix M into filename as comma-separated values. 
csvwrite('filename',M,row,col) writes matrix M into filename starting at the specified row and column offset. The row and column arguments are zero based, so that row=0 and C=0 specify the first value in the file.
See Also
csvread, dlmwrite, textread, wk1write, file formats, importdata, uiimport
8)	MATLAB Function to export binary data to files and devices
fwrite()
Help: 	fwrite Write binary data to a file 
Syntax
count = fwrite(fid,A,precision)
count = fwrite(fid,A,precision,skip)
See Also
fclose, ferror, fopen, fprintf, fread, fscanf, fseek, ftell
9)	MATLAB Function to write formatted data to files.
fprintf()
Help:	The commands 

B = [8.8  7.7; 8800  7700]
fprintf(1,'X is %6.2f meters or %8.3f mm\n',9.9,9900, B)

display the lines 

X is 9.90 meters or 9900.000 mm
X is 8.80 meters or 8800.000 mm
X is 7.70 meters or 7700.000 mm
10)	MATLAB Function to find the maximum and other parameters.
max()
Help:	The Maximum elements of an array
C = max(A)
C = max(A,B)
C = max(A,[],dim)
[C,I] = max(...) 
 See MATLAB help for other uses and examples
[C,I] = max(...) finds the indices of the maximum values of A, and returns them in output vector I. If there are several identical maximum values, the index of the first one found is returned.
11)	MATLAB Function to find the minimum and other parameters.
min()
Help:	The Minimum elements of an array
C = min(A)
C = min(A,B)
C = min(A,[],dim)
[C,I] = min(...)
 See MATLAB help for other uses and examples
[C,I] = min(...) finds the indices of the minimum values of A, and returns them in output vector I. If there are several identical minimum values, the index of the first one found is returned.
12)	MATLAB Function to find the average (mean) and other parameters.
mean()
Help:	The Mean (average) of elements of a vector, or col. averages of an array
M = mean(A) returns the mean values of the elements along different dimensions of an array.
If A is a vector, mean(A) returns the mean value of A.
If A is a matrix, mean(A) treats the columns of A as vectors, returning a row vector of mean values.
M = mean(A,dim) returns the mean values for elements along the dimension of A specified by scalar dim. For matrices, mean(A,2) is a column vector containing the mean value of each row. The default of dim is 1.
13)	MATLAB Function to find the Median value of arrays.
median()
Help:	The Median value of arrays
M = median(A) returns the median values of the elements along different dimensions of an array.
If A is a vector, median(A) returns the median value of A.
If A is a matrix, median(A) treats the columns of A as vectors, returning a row vector of median values.
If A is a multidimensional array, median(A) treats the values along the first non-singleton dimension as vectors, returning an array of median values.
M = median(A,dim) returns the median values for elements along the dimension of A specified by scalar dim.

14)	MATLAB Function to find the Standard deviation.
std()
Help:	The Standard deviation
s = std(X)
s = std(X,flag)
s = std(X,flag,dim)
 See MATLAB help for other uses and examples
15)	MATLAB Function to Reshape array.
reshape()
Help:	Reshape array
B = reshape(A,m,n)
B = reshape(A,m,n,p,...)
B = reshape(A,[m n p ...])
B = reshape(A,...,[],...)
B = reshape(A,siz)

B = reshape(A,m,n) returns the m-by-n matrix B whose elements are taken column-wise from A. An error results if A does not have m*n elements.
 See MATLAB help for other uses and examples
16)	MATLAB colon operator.
(:)
Help:	Create vectors, array subscripting, and for loop iterations
The colon is one of the most useful operators in MATLAB. It can create vectors, subscript arrays, and specify for iterations.

The colon operator uses the following rules to create regularly spaced vectors:

j:k is the same as [j,j+1,...,k]
j:k is empty if j > k
j:i:k is the same as [j,j+i,j+2i, ...,k]
j:i:k is empty if i > 0 and j > k or if i < 0 and j < k

where i, j, and k are all scalars.

Below are the definitions that govern the use of the colon to pick out selected rows, columns, and elements of vectors, matrices, and higher-dimensional arrays:
•	A(:,j)		is the jth column of A
•	A(i,:)		is the ith row of A
•	A(:,:)		is the equivalent two-dimensional array. For matrices this is the same as A.
•	A(j:k)		is A(j), A(j+1),...,A(k)
•	A(:,j:k)		is A(:,j), A(:,j+1),...,A(:,k)
•	A(:,:,k)		is the kth page of three-dimensional array A.
•	A(i,j,k,:)	is a vector in four-dimensional array A. The vector includes A(i,j,k,1), A(i,j,k,2), A(i,j,k,3), and so on.
•	A(:)		is all the elements of A, regarded as a single column. On the left side of an assignment statement, A(:) fills A, preserving its shape from before. In this case, the right side must contain the same number of elements as A.
See Also
for, linspace, logspace, reshape
17)	MATLAB Function to Create an array of all zeros.
zeros()
Help:	Create an array of all zeros
B = zeros(n) returns an n-by-n matrix of zeros. An error message appears if n is not a scalar.
B = zeros(m,n) or B = zeros([m n]) returns an m-by-n matrix of zeros.
B = zeros(d1,d2,d3...) or B = zeros([d1 d2 d3...]) returns an array of zeros with dimensions d1-by-d2-by-d3-by-... .
B = zeros(size(A)) returns an array the same size as A consisting of all zeros.
 See MATLAB help for other uses and examples

See Also
eye, ones, rand, randn
18)	MATLAB Function to draw a Linear 2-D plot.
zeros()
Help:	Create a Linear 2-D plot
plot(Y)
plot(X1,Y1,...)
plot(X1,Y1,LineSpec,...)
plot(...,'PropertyName',PropertyValue,...)
plot(axes_handle,...)
h = plot(...)
hlines = plot('v6',...)
 See MATLAB help for other uses and examples
19)	MATLAB Function to Create and control multiple axes (plots/ graphs).
subplot ()
Help:	Create and control multiple axes 
subplot(m,n,p)
subplot(m,n,p,'replace')
subplot(m,n,p,'align')
subplot(h)
subplot('Position',[left bottom width height])
h = subplot(...)

See Also
axes, cla, clf, figure, gca
Experiments for Speech Therapy
1)	The model: (Based on frequency domain techniques, such as the FFT or the STFT or spectrogram)
a.	Define one or more feature vectors
b.	Define one or more distance measures
c.	Define one or more error measures (e.g., MSRE)
2)	Recording of voices
a.	Normal voice samples (Number of speakers = NVN_speakers)
i.	Store original wave files in a directory structure
b.	Abnormal voice samples (Number of speakers = AVN_speakers)
i.	Store original wave files in a different directory structure
3)	Learning phase
a.	Perform speech-sample analysis for each sample.
b.	Generate feature vector(s) for each sample
c.	Add the feature vectors to a structured data bank.
4)	Testing phase
a.	Perform speech-sample analysis for the test-sample(s) on hand
b.	Generate feature vector(s) for each sample
c.	Using the distance measures, calculate the distance between the feature vector of the test sample and all vectors in the data bank (efficient search issues involve using the structure features of the data bank and the other feature vector(s) features.
d.	A minimum distance defines either:
i.	Best match
ii.	When compared to a given error threshold, defines either:
1.	match
2.	No match, meaning a new sample (not defined yet, which can either add it to the data bank, or reject it as un-known.
5)	Results and comments
a.	Define one or more performance parameter; e.g., the accuracy of recognition, efficiency of the algorithm, etc.
b.	The accuracy of recognition is one important parameter for assessment of the used techniques. 
c.	When several techniques are used, comparing them with respect to each performance parameter becomes a very important result.
d.	Another possible result is the choice of a visualization system to view the results of the analysis or comparison of the normal vs. the abnormal speech samples.