diff --git a/downsampled_audio.wav b/downsampled_audio.wav new file mode 100644 index 0000000..854b8e5 Binary files /dev/null and b/downsampled_audio.wav differ diff --git a/speech_analysis.m b/speech_analysis.m index d93cb2d..be5ebb5 100644 --- a/speech_analysis.m +++ b/speech_analysis.m @@ -1,17 +1,16 @@ pkg load signal %load & plot audio file modulator -%modulator = fullfile('sound', 'modulator22.wav'); [audio_data sampling_freq]= audioread('modulator22.wav'); figure; plot(audio_data); -xlabel('Time (s)'); -ylabel('Amplitude'); -title('Modulator22'); +xlabel('Time in [s]'); +ylabel('Amplitude in [dB]'); +title('Speech data in time domain'); -%spectral anlysis -if (1) +%FFT vs DFT comparison +if (0) t = 5; %average for i=1:t @@ -38,11 +37,13 @@ average_fft = sum_fft/t average_dft = sum_dft/t end +%Spectrogram +frequencySpectrum(audio_data,sampling_freq,1); + %Compute and display spectrogram if(0) spectrogram(audio_data,sampling_freq,5,5); %spectrogram(audio_data,sampling_freq,30,5); - wan = audio_data(0.37*sampling_freq:1.17*sampling_freq); tu = audio_data(1.24*sampling_freq:1.75*sampling_freq); tri = audio_data(1.84*sampling_freq:2.19*sampling_freq); @@ -50,4 +51,20 @@ if(0) frequencySpectrum(wan,sampling_freq,1); frequencySpectrum(tu,sampling_freq,1); frequencySpectrum(tri,sampling_freq,1); -end \ No newline at end of file +end + +%downsampling +audio_downsampled = downsample(audio_data, 2); +audiowrite('downsampled_audio.wav',audio_downsampled ,4000); + +%down_deci = decimate(audio_data, 2); +%audiowrite('decimate_audio.wav',down_deci,4000); + +%low-pass filter +lp = fir1(30,1000/sampling_freq,'low'); +y = filter(lp,1,audio_data); +frequencySpectrum(y,sampling_freq,1); + +lp_butter = butter(8,1000/sampling_freq,'low'); +y_butter = filter(lp_butter,1,audio_data); +frequencySpectrum(y_butter,sampling_freq,1); \ No newline at end of file