HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH KHOA KỸ THUẬT ĐIỆN TỬ II BÁO CÁO MÔN HỌC XỬ LÝ TIẾNG NÓI NIÊN KHÓA 2017 – 2022 Nhóm thực hiện Nhóm 8 Giáo viên hướng dẫn ThS H.
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH KHOA KỸ THUẬT ĐIỆN TỬ II BÁO CÁO MƠN HỌC XỬ LÝ TIẾNG NĨI NIÊN KHĨA: 2017 – 2022 Nhóm thực : Nhóm Giáo viên hướng dẫn : ThS HỒ NHỰT MINH TP.HCM – Tháng 12 năm 2020 MỤC LỤC MỤC LỤC PHẦN I: THỰC HIỆN MÔ PHỎNG PROJECT BẰNG PHẦN MỀM MATLAB PHẦN II: BÀI TẬP 20 PHẦN I: THỰC HIỆN MÔ PHỎNG PROJECT BẰNG PHẦN MỀM MATLAB Đọc file tiếng nói lọc tín hiệu tiếng nói với băng tần 5.5kHz, kHz 3.2 kHz (Tự thiết kế lọc số với tốc độ lấy mẫu xác để thực việc này) Lắng nghe file tiếng nói sau lọc mô tả ảnh hưởng việc lọc thông thấp chất lượng tính dễ hiểu tiếng nói [x,fs]=audioread('demso.wav'); %doc dinh dang file wav X=fft(x); %bien doi Fourier khong nam o trung tam X = X(:,2); N=length(x); %Xac dinh kich thuoc cua x a = 5500; %tan so cat w1 = (-N/2+1:(N/2)); % Vector tan so trung tam w = w1.*fs/N; % LAY MOT TAN SO MAU H = a./(a + 1i*w); %H nam o trung tam Hshift = fftshift(H); %H khong nam o trung tam Y = X *Hshift' ; % loc tin hieu y = real(ifft(Y)); sound(x,fs);% am goc sound(y,fs); % am sau qua bo loc thong thap subplot(2,1,1);%vi tri ve plot(w,abs(fftshift(X))) % abs lay bien cua so phuc, dich tan so ve trung tam title('Tin hieu ban dau'); %ten tieu de thi subplot(2,1,2);%vi tri ve plot(w,abs(fftshift(Y))) title('Tin hieu loc') %ten tieu de thi Với nội dung thơng tin, thành viên nhóm phát âm tin ngắn ghi âm Lưu kết dạng *.wav Xác định tần số bản, tần số Formant thành viên Lập đồ phân bố nguyên âm tiếng Việt % get a section of vowel [x,fs]= audioread('au1.wav',[24120 25930]); % resample to 10,000Hz (optional) x=resample(x,10000,fs); %Vector thoi gian lay mau fs=10000; % ve dang song t=(0:length(x)-1)/fs; % so lan thuc hien lay mau subplot(2,1,1); plot(t,x); legend('Waveform'); % them chu thich vao truc xlabel('Time (s)'); ylabel('Amplitude'); % su dung bo loc du doan tuyen tinh ncoeff=2+fs/1000; a=lpc(x,ncoeff); % ve tan so dap ung % Cong thuc tinh formant % he so bo loc tuyen tinh [h,f]=freqz(1,a,512,fs); % dap ung tan so cua bo loc subplot(2,1,2); plot(f,20*log10(abs(h)+eps)); legend('LP Filter'); xlabel('Frequency (Hz)'); ylabel('Gain (dB)'); % Tim tan so bang roots r=roots(a); % Tim nghiem nguyen r=r(imag(r)>0.01); % chi tim >0Hz up to fs/2 ffreq=sort(atan2(imag(r),real(r))*fs/(2*pi)); %chuyen doi tan so va sap xep for i=1 fprintf('Formant %d Frequency %.1f\n',i,ffreq(i)); end Tính tốn cepstrum phức thực tín hiệu sau: a x1(n) = δ(n) - 0,65δ(n-99) b x2(n) = sin () 0n99 c x3(n) = 0,95n 0n99 Với tín hiệu vẽ dạng sóng tín hiệu, cepstrum phức cepstrum thực NFFT=input('Kich thuoc FFT de tinh toan cepstral:'); %a x1(n) = ?(n)- 0.85? (n - 99) n1=0:NFFT-1; x1=zeros(1,NFFT); x1(1)=1; x1(100)=-0.85; %b x2 (n) = sin(2.pi.n/100) 40dB tần số 250Hz 40dB tần số 1000Hz c 50dB tần số 500Hz hay 30 dB tần số 2000Hz >>50dB tần số 500Hz Tần số pitch (in Mels) nhận âm điệu Ta áp dụng công thức chuyển đổi sau: mel( f )= 2595*log(1+ f /700) a 50 Hz => 77.5646 b 250Hz => 344.2 c 500Hz => 607.456 d 2000Hz => 1521.36 e 5000Hz => 2363.47 Một tín hiệu đầu vào x(n) xác định miền -∞< n