Topics: Digital signal processing, Sample rate conversion, Signal processing Pages: 5 (938 words) Published: August 22, 2013
MATLAB Functionality for Digital  Speech Processing
• MATLAB Speech Processing Code • MATLAB GUI Implementations

Basic Functionality
• • • • • • • • • • • • read a speech file (i.e., open a .wav speech file and read the speech sample into a  MATLAB array) write a speech file (i.e., write a MATLAB array of speech samples into a .wav  speech file) play a MATLAB array of speech samples as an audio file play a sequence of MATLAB arrays of speech samples as a sequence of audio files record a speech file into a MATLAB array plot a speech file (MATLAB array) as a waveform using a strips plot format plot a speech file (MATLAB array) as one or more 4‐line plot(s) convert the sampling rate associated with a speech file (MATLAB array) to a  different sampling rate highpass filter a speech file (MATLAB array) to eliminate hum and low frequency  noise plot a frame of speech and its associated spectral log magnitude plot a spectrogram of a speech file (MATLAB array) plot multiple spectrograms of one or more speech files (MATLAB arrays)

Read a Speech File into a MATLAB  Array
• • [xin, fs, nbits] = wavread(filename); [xin, fs] = loadwav(filename); – filename is ascii text for a .wav‐encoded file which contains a speech  signal encoded using a 16‐bit integer format – xin is the MATLAB array in which the speech samples are stored (in  double precision format) – fs is the sampling rate of the input speech signal – nbits is the number of bits in which each speech sample is encoded  (16 in most cases) – program wavread scales the speech array, xin, to range −1≤xin≤1,  whereas loadwav preserves sample values of the speech file and  hence array xin is scaled to range −32767≤xin≤32767 [xin1, fs, nbits] = wavread(‘s5.wav’); [xin2, fs] = loadwav(‘s5.wav’);

• •

Read a Speech File into a MATLAB Array
• • • • • • • • • • • • • • • • • • • • • • % test_wavread.m % test waveread function % % read speech samples from file 'test_16k.wav' into array x1 using wavread % routine filein='test_16k.wav'; [x1,fs1,nbits]=wavread(filein); % print out values of fs1, nbits, wavmin1, wavmax1 wavmin1=min(x1); wavmax1=max(x1); fprintf('file: %s, wavmin/wavmax: %6.2f %6.2f, fs1: %d, nbits: %d \n‘,… filein,wavmin1,wavmax1,fs1,nbits); % read speech samples from same file into array x2 using loadwav routine [x2,fs2]=loadwav(filein); % print out values of fs2, nbits, wavmin2, wavmax2 wavmin2=min(x2); wavmax2=max(x2); fprintf('file: %s, wavmin/wavmax: %d %d, fs2: %d \n',... filein,wavmin2,wavmax2,fs2); Terminal Display: file: test_16k.wav, wavmin/wavmax:  ‐1.00   1.00, fs1: 16000, nbits: 16  file: test_16k.wav, wavmin/wavmax: ‐32768 32767, fs2: 16000

Play/Plot Existing Speech File
• Play_Plot_Speech_GUI.m
– MATLAB GUI for basic operations of reading in a  file, playing the speech array, and plotting the  speech waveform

Write a Speech Array into a Speech  File
• • wavwrite(xout, fs, nbits, filename); savewav(xout, filename, fs); – xout is the MATLAB array in which the speech samples are stored – fs is the sampling rate of the output speech signal – nbits is the number of bits in which each speech sample is encoded – filename is the ascii text for the .wav‐encoded file in which the  MATLAB signal array is to be stored – for wavwrite the MATLAB array xout needs to be scaled to the range  −1≤xin≤1 whereas for savewav the MATLAB array xout needs to be  scaled to the range −32767≤xout≤32767 wavwrite(xin1, fs, ‘s5out.1.wav’); savewav(xin2, ‘s5out.2.wav’, fs);

• •

Write a Speech Array into a Speech File

• • • •

% write out array x1 into speech file using wavwrite routine wavwrite(x1,fs1,nbits,'file1out.wav'); % write out array x2 into speech file using savewav routine savewav(x2,'file2out.wav',fs2);



Play a Speech File
• sound(x, fs); • soundsc(x, fs);
– for sound the speech array, x, must be scaled to the range  −1≤x≤1  – for soundsc any scaling of the speech array can be used – fs...
Continue Reading

Please join StudyMode to read the full document

Become a StudyMode Member

Sign Up - It's Free