Tìm tần số cơ bản của tín hiệu là bài toán cần thiết trong xử lý tín hiệu âmthanh, đặc biệt là tín hiệu tiếng nói. Bài thực hành này thực hiện việc xác định tần số cơ bản của tínhiệu tiếng nói trên miền thời gian dùng hàm tự tương quan và trên miền tần số dùng phép biến đổiFourier nhanh. Để làm trơn kết quả tần số cơ bản tìm được, lọc trung vị được sử dụng. Các thửnghiệm với tín hiệu của 5 nguyên âm a, e, i, o và u cho thấy sai số trung bình của thuậttoán hàm tự tương quan và phép biến đổi Fourier lần lượt là 8,1365Hz và 5,9316Hz. Kết quả thựcnghiệm cũng cho thấy ta có thể xác định được tần số cơ bản của tín hiệu tiếng nói trên miền thờigian và miền tần số.
Báo cáo tập lớn mơn học Xử lý tín hiệu số, tháng 11/2018 TÌM TẦN SỐ CƠ BẢN CỦA TÍN HIỆU TRÊN MIỀN THỜI GIAN DÙNG HÀM TỰ TƯƠNG QUAN VÀ TRÊN MIỀN TẦN SỐ DÙNG PHÉP BIẾN ĐỔI FOURIER NHANH, KẾT HỢP LỌC TRUNG VỊ Nguyễn Hữu Hoàng Hưng, Nguyễn Trần Hậu, Đặng Xuân Lộc, Nguyễn Thái Minh Nhóm 2, lớp HP: 1022470.1810.16.15 Điểm Bảng phân chia nhiệm vụ Chữ ký sinh viên Đọc tài liệu, cài đặt thuật tốn, viết báo cáo thuyết trình tính tần số Nguyễn Trần Hậu miền thời gian dùng hàm tự tương quan Đọc tài liệu, cài đặt thuật toán, viết báo Đặng Xuân Lộc cáo thuyết trình lọc trung vị, tổng hợp slide Đọc tài liệu hàm cửa sổ khảo sát số Nguyễn Thái Minh điểm fft, tổng hợp viết báo cáo hồn chỉnh Phân cơng nhiệm vụ đảm bảo tiến độ thành viên Đọc tài liệu, cài đặt Nguyễn Hữu Hồng Hưng thuật tốn, viết báo cáo thuyết trình (nhóm trưởng) tính tần số miền tần số Viết báo cáo kết thực nghiệm Lời cam đoan: Chúng tôi, gồm sinh viên có chữ ký trên, cam đoan báo cáo tự viết dựa tài liệu tham khảo ghi rõ phần VII Các số liệu thực nghiệm mã nguồn chương trình không dẫn nguồn tham khảo tự làm Nếu vi phạm chúng tơi xin chịu trách nhiệm tuân theo xử lý giáo viên hướng dẫn TĨM TẮT— Tìm tần số tín hiệu tốn cần thiết xử lý tín hiệu âm thanh, đặc biệt tín hiệu tiếng nói Bài thực hành thực việc xác định tần số tín hiệu tiếng nói miền thời gian dùng hàm tự tương quan miền tần số dùng phép biến đổi Fourier nhanh Để làm trơn kết tần số tìm được, lọc trung vị sử dụng Các thử nghiệm với tín hiệu nguyên âm (/a/, /e/, /i/, /o/ /u/) cho thấy sai số trung bình thuật toán hàm tự tương quan phép biến đổi Fourier 8,1365Hz 5,9316Hz Kết thực nghiệm cho thấy ta xác định tần số tín hiệu tiếng nói miền thời gian miền tần số Từ khóa— Tính tần số bản, hàm tự tương quan, biến đổi Fourier nhanh, lọc trung vị Nhóm 2, lớp HP: 1022470.1810.16.15 MỤC LỤC I ĐẶT VẤN ĐỀ II CƠ SỞ LÝ THUYẾT XỬ LÝ TÍN HIỆU TIẾNG NĨI VÀ CÁC THUẬT TỐN TÍNH TẦN SỐ CƠ BẢN A Vấn đề cần giải B Hàm tự tương quan Cơ sở lý thuyết Sơ đồ khối Các tham số quan trọng thuật toán 4 Vấn đề giải pháp khắc phục C Phép biến đổi Fourier Cơ sở lý thuyết Sơ đồ khối Các tham số quan trọng thuật toán Vấn đề giải pháp khắc phục D Lọc trung vị Cơ sở lý thuyết Các tham số quan trọng lọc trung vị (Median Smoothing) Khảo sát lọc trung vị kết thực nghiệm tần số E Khảo sát ảnh hưởng việc dùng hàm cửa sổ số điểm tính FFT Vấn đề cần giải Cơ sở lý thuyết 10 Các tham số quan trọng thuật toán 11 III CÀI ĐẶT THUẬT TOÁN 11 A Hàm tự tương quan để tính tần số miền thời gian 11 B Phép biến đổi Fourier nhanh để tính tần số miền tần số 12 C Lọc trung vị để làm trơn kết thu 12 D Chương trình demo 13 IV KẾT QUẢ THỰC NGHIỆM 13 A Dữ liệu mẫu 13 B Kết định tính 13 C Kết định lượng 15 V KẾT LUẬN 18 VI NHỮNG ĐIỀU ĐÃ HỌC ĐƯỢC 18 VII TÀI LIỆU THAM KHẢO 18 Nguyễn Trần Hậu, Đặng Xuân Lộc, Nguyễn Thái Minh, Nguyễn Hữu Hoàng Hưng I ĐẶT VẤN ĐỀ Xử lý tiếng nói từ xuất có vai trò quan trọng sống Cùng với phát triển khoa học kỹ thuật, nhu cầu xử lý tiếng nói người ngày tăng cao Xử lý tiếng nói có ứng dụng nhiều mặt, có ứng dụng nhận dạng tiếng nói, người nói, tăng chất lượng giọng nói tổng hợp tiếng nói Để làm điều đó, việc xác định tần số quan trọng Có nhiều phương pháp khác AMDF, LPC, xử lý đồng hình, tự tương quan, phép biến đổi Fourier nhanh, … để xác định tần số Tần số (còn gọi F0 cao độ) tín hiệu tuần hồn nghịch đảo chu kỳ tín hiệu Chu kỳ khoảng thời gian nhỏ mà tín hiệu tuần hoàn miền thời gian Tần số mang thơng tin có ý nghĩa vật lý đặc trưng cho tín hiệu tuần hồn nên việc xác định quan trọng xử lý tín hiệu số nói chung tín hiệu giọng nói nói riêng Trong báo cáo này, hàm tự tương quan sử dụng để tính tần số miền thời gian sử dụng phép biến đổi Fourier nhanh (FFT) để phân tích phổ tính tần số miền tần số Lọc trung vị (median smoothing) sử dụng để làm trơn kết F thu Bài báo cáo có bố cục sau Phần II trình bày sở lý thuyết thuật toán vấn đề liên quan đến việc tính tần số miền tần số, miền thời gian, lọc trung vị hàm cửa sổ Phần III trình bày mã nguồn cài đặt thuật tốn Phần IV trình bày kết thực nghiệm mơ tả liệu dùng để đánh giá độ xác thuật tốn, đưa đánh giá định tính định lượng Phần V trình bày kết luận II CƠ SỞ LÝ THUYẾT XỬ LÝ TÍN HIỆU TIẾNG NĨI VÀ CÁC THUẬT TỐN TÍNH TẦN SỐ CƠ BẢN A Vấn đề cần giải Xử lý tín hiệu số bùng nổ nhanh chóng ngành cơng nghiệp điện tử viễn thông nhiều lợi so với xử lí tín hiệu liên tục Xử lý tín hiệu số có nhiều ứng dụng đa dạng, đặc biệt việc xử lí tiếng nói hay xử lí âm Trong q trình xử lí tín hiệu tiếng nói, việc xác định tần số tín hiệu vấn đề cần thiết tốn Vậy tần số gì? Tần số tín hiệu tiếng nói tốc độ rung dây [1], tính nghịch đảo chu kỳ tín hiệu, chu kỳ xác định khoảng thời gian ngắn mà tín hiệu lặp lại miền thời gian [2] Trong xử lí tín hiệu số, có nhiều phương pháp để xác định tần số tín hiệu tiếng nói Trong báo cáo này, xác định tần số miền thời gian sử dụng hàm tự tương quan miền tần số thông qua phép biến đổi Fourier nhanh Để làm trơn kết tần số nhận được, lọc trung vị sử dụng B Hàm tự tương quan Cơ sở lý thuyết Hàm tự tương quan công cụ sử dụng phổ biến để xác định chu kỳ tín hiệu tiếng nói (có thể lẫn nhiễu) sở cho nhiều phương pháp phân tích phổ khác Với tín hiệu tuần hồn, ta có định nghĩa hàm tự tương quan: 𝑁−1 rxx(l) = ∑𝑛=0 (𝑥(𝑛)𝑥(𝑛 − 𝑙)) 𝑁 Với N độ rộng cửa sổ, l độ trễ tính thời điểm n Hình Tín hiệu hàm tự tương quan Hàm tự tương quan hàm chẵn, đạt giá trị cực đại l = Đại lượng r xx(0) lượng tín hiệu Tầm quan trọng hàm tự tương quan nằm việc hàm đạt giá trị cực đại tương ứng điểm bội Nhóm 2, lớp HP: 1022470.1810.16.15 chu kỳ tín hiệu Khi tần số tần số xuất cực đại Tính chất khiến hàm tự tương quan trở thành sở cho việc tính tốn chu kỳ tất loại tín hiệu, bao gồm tín hiệu tiếng nói Sơ đồ khối Sơ đồ khối thuật toán hàm tự tương quan trình bày Hình Hình Sơ đồ khối hàm tự tương quan Các tham số quan trọng thuật tốn Cơng thức tính tần số tín hiệu: F0 = Fs / L, F0 tần số bản, Fs tần số lấy mẫu L độ trễ mà hàm tự tương quan đạt cực đại Vì tần số lấy mẫu Fs biết, nên để tính tần số bản, ta phải tìm độ trễ L Vì tín hiệu tiếng nói gần tuần hoàn, nên hàm tự tương quan cho cực đại thời điểm bội số chu kỳ tín hiệu[2] Từ đồ thị hàm tự tương quan, ta xác định cực đại độ trễ tương ứng cực đại đó, từ độ trễ ta xác định tần số tín hiệu Do tín hiệu ban đầu chia nhỏ thành khung qua phép lấy cửa sổ, đồng thời tín hiệu tiếng nói chưa tuần hồn hồn hảo, nên ứng với khung tín hiệu có giá trị F 0, giá trị xấp xỉ nhau, việc chia nhỏ tín hiệu sử dụng hàm tự tương quan lên khung tín hiệu, kết thu mảng chiều có số phần tử số khung tín hiệu, phần tử tần số tương ứng với khung tín hiệu Vấn đề giải pháp khắc phục a) Phép lấy cửa sổ Do đặc tính hàm cửa sổ, nên trình thực việc lấy cửa sổ phát sinh tượng gọi rò phổ Để xử lí vấn đề này, ta sử dụng cửa sổ Hamming cho phép lấy cửa sổ nhằm hạn chế tối đa khả rò phổ so với cửa sổ chữ nhật (rectangular) phân tích Phần E b) Số lượng cực đại khung tín hiệu Vì khung tín hiệu có chiều dài hữu hạn nên lượng hữu hạn, điều dẫn đến biên độ đỉnh đồ thị tương quan giảm dần bên, với trục đối xứng điểm đồ thị Điều khiến cho việc xác định cực đại khó khăn, ta lấy cực đại có biên độ lớn nhất, qua việc tính tốn tần số bớt phức tạp C Phép biến đổi Fourier Cơ sở lý thuyết a) Phép biến đổi Fourier rời rạc (Discrete Fourier Transform - DFT) Trong tốn học, phép biến đổi Fourier rời rạc, đơi gọi biến đổi Fourier hữu hạn, phép biến đổi giải tích Fourier cho tín hiệu thời gian rời rạc Đầu vào biến đổi chuỗi hữu hạn số phức số thực Đặc biệt, biến đổi sử dụng rộng rãi xử lý tín hiệu ngành liên quan đến phân tích tần số tín hiệu Biến đổi tính nhanh thuật toán biến đổi Fourier nhanh (FFT)[3] Nguyễn Trần Hậu, Đặng Xuân Lộc, Nguyễn Thái Minh, Nguyễn Hữu Hoàng Hưng Biến đổi Fourier rời rạc cho phép tính phiên tần số rời rạc biển đổi Fourier tín hiệu rời rạc (Discrete-time Fourier Transform – DTFT) Cơng thức DFT N-điểm jk2πn 𝑘2𝜋 − N X[k] = X(ejω) = ∑N−1 (với ω = 0≤ k ≤N-1) (*) n=0 x(n)e 𝑁 X[k] đại diện cho biên độ pha bước sóng khác tín hiệu vào x[n] Phép biến đổi DFT tính giá trị X[k] từ giá trị x[n] Một số tính chất phép biến đổi Fourier rời rạc bao gồm tính tuần hồn, tuyến tính tính chập X[k] tuần hồn với chu kỳ N, nghĩa X[k+N] = X[k] ∀𝑘 [10] 𝐷𝐹𝑇 Tính chất tuyến tính { x1(n) ↔ X1[k] 𝐷𝐹𝑇 𝐷𝐹𝑇 => a1x1(n) + a2x2(n)↔ a1X1[k] + a2X2[k] [10] x2(n) ↔ X2[k] 𝐷𝐹𝑇 Tính chập { x1(n) ↔ X1[k] 𝐷𝐹𝑇 𝐷𝐹𝑇 => x(n) = x1(n) ⨂ x2(n)↔ X[k] = X1[k].X2[k] [10] x2(n) ↔ X2[k] b) Phép biến đổi Fourier nhanh (Fast Fourier Transform – FFT) Một biến đổi Fourier nhanh (FFT) thuật tốn hiệu để tính biến đổi Fourier rời rạc (DFT) biến đổi ngược Có nhiều thuật tốn FFT khác sử dụng kiến thức từ nhiều mảng khác toán học [4] Thuật tốn FFT tính nhanh DFT N-điểm tín hiệu rời rạc x[n] với N = 2m ≥ length(x[n]) Vì thuật toán FFT áp dụng cho trường hợp N = 2m nên tổng (*) phân tích thành hai tổng sau: jk2πn N X[k] =∑𝑛 𝑙ẻ x(n)e− + ∑𝑛 𝑐ℎẵ𝑛 x(n)e− jk2πn N 𝑁 −1 = ∑𝑚=0 x(2m)e− jk2π − N jk4πm N 𝑁 −1 jk4πm jk2π − N N + ∑𝑚=0 x(2m + 1)e− e = Xe[k] +e Xo[k] Xe[k] Xo[k] biến đổi Fourier hai dãy {x[2m] | m = 0, 1, 2, …, N/2 -1 } {x[2m+1] | m = 0, 1, 2, …, N/2 -1 } Có nghĩa Xe[k] Xo[k] phân tích thành tổng hai phép biến đổi Fourier rời rạc N/2 điểm Tiếp tục trình ta phép biến đổi Fourier điểm Ngồi ra, tính tuần hồn chu kỳ N/2 nên cần tính Xe[k] Xo[k] với N/2 ≤ k ≤ N-1 ≤ k ≤ N/2 – 𝑁 Bằng thuật toán FFT, cần log2N phép nhân phức thay cho (N−1)2 phép nhân phức Nlog2N phép cộng phức thay N(N − 1) Do đó, tính trực tiếp từ định nghĩa DFT (*) đòi hỏi O(N 2) phép tính, FFT giúp tính kết O(N*logN) phép tính [4] Trong báo cáo này, sử dụng hàm fft() thư viện Matlab để phân tích Dưới hình ảnh phổ thu tín hiệu nguyên âm /u/ hàm FFT 32768 điểm Hình Phổ tín hiệu khơng tuần hồn Hình mơ tả phổ tín hiệu khơng tuần hồn (tín hiệu nhiễu) file thu âm nguyên âm /u/ Nhóm 2, lớp HP: 1022470.1810.16.15 Hình Phổ tín hiệu tuần hồn Hình mơ tả phổ tín hiệu tuần hồn (tín hiệu âm thanh) file thu âm nguyên âm /u/ Hình Kết tính tần số tín hiệu nguyên âm /u/ miền tần số Hình mơ tả kết F0 tính file thu âm nguyên âm /u/ thông qua cửa sổ Sơ đồ khối Sơ đồ khối thuật tốn tìm tần số F0 miền tần số trình bày Hình Hình Sơ đồ khối tìm tần số F0 miền tần số Các tham số quan trọng thuật toán Hàm fft() thư viện Matlab: Nguyễn Trần Hậu, Đặng Xuân Lộc, Nguyễn Thái Minh, Nguyễn Hữu Hoàng Hưng Cú pháp Y = fft(X,N) với X tín hiệu vào (trên miền thời gian rời rạc) N số điểm phép biến đổi DFT-N điểm Nếu length(X) > N X thêm vào giá trị length(X) = N để thực phép biến đổi Nếu length(X) < N X cắt ngắn cho length(X) = N Kết trả (Y) mảng chứa số phức biểu diễn phổ (spectrum) x[n] Vấn đề giải pháp khắc phục Một vấn đề phát sinh phổ biến khó khăn việc xác định khung lựa chọn khung âm hay khung nhiễu Giải pháp đề dựa biên độ tín hiệu ta phân biệt đâu nhiễu (tín hiệu khơng tuần hồn) đâu âm (tín hiệu tuần hồn) Như hình hình 4, ta thấy tín hiệu nhiễu biên độ thường thấp nhiều so với tín hiệu âm nên ta nhận biết cách giới hạn biên độ Trong việc tìm phổ tín hiệu liên tục tín hiệu rời rạc, tất giá trị tín hiệu miền thời gian cần thiết Tuy nhiên, thực tế, tính tốn quan sát khoảng thời gian giới hạn Do vậy, phổ tín hiệu tính xấp xỉ từ lượng liệu giới hạn thơng qua cửa sổ Từ đó, ta bị hạn chế khả phân biệt hai thành phần tần số tách nhỏ tần số Phổ cửa sổ trải dài khắp miền tần số nên lượng tín hiệu gốc tập trung tần số bị trải khắp miền tần số hàm cửa sổ Hiện tượng gọi rò phổ, tượng phổ biến sử dụng hàm cửa sổ [6] Giải pháp đề để giảm rò phổ nên lựa chọn hàm cửa sổ có “sidelobes” nhỏ hàm cửa sổ chữ nhật miền tần số Trong báo cáo này, hàm cửa sổ Hamming, trình bày phần E, sử dụng Vì có nhiều cửa sổ khác nên ta có nhiều kết F0 khác tín hiệu Các kết F0 hầu hết xấp xỉ Tuy nhiên, thực tế, tín hiệu âm khơng tuần hồn hồn hảo nên có số khung thu kết F0 chênh lệch nhiều so với kết lại Để giải vấn đề này, lọc trung vị, trình bày phần tiếp theo, sử dụng để làm mịn kết tần số tín hiệu D Lọc trung vị Cơ sở lý thuyết Trong hầu hết trường hợp, lọc tuyến tính nói chung loại bỏ thành phần tạp âm khỏi tín hiệu Tuy nhiên, số trường hợp lọc tuyến tính khơng hồn tồn phù hợp loại tín hiệu cần làm mịn Một ví dụ đường viền hình đây, có thành phần lỗi rõ ràng phải đưa trở lại phù hợp với phần lại liệu Một lọc tuyến tính lowpass khơng thất bại việc mang điểm sai lệch trở lại dòng mà bóp méo đường viền q trình chuyển đổi giọng nói hữu vơ (giai đoạn 0) [7] Hình Ví dụ tín hiệu trước dùng lọc trung vị.[11] Đối với trường hợp vậy, số thuật toán lọc tuyến tính trì tín hiệu gián đoạn tính chất lớn lọc khơng tồn tại, lọc phi tuyến sử dụng kết hợp trung vị chạy (running median) lọc tuyến tính đưa để thỏa mãn tính chất mong muốn [7] Một tín hiệu giọng nói x(n) có cơng thức: x(n) = S[x(n)] + R[x(n)] Với S(x) phần lọc (phần mịn), R(x) phần thô (tạp âm) tín hiệu x Một phép biến đổi phi tuyến có khả tách S[x(n)] khỏi R[x(n)] trung vị chạy tín hiệu x(n) Đầu trung vị chạy lọc, ML[x(n)] đơn giản trung vị L số, x(n), x(n-1), …, x(n-L+1) Biến đổi trung vị với độ dài L tuân theo tính chất mong muốn lọc: ML(ax[n]) = a ML(x[n]) Các 𝐿 trung vị khơng bị nhòe gián đoạn (smeared out) khơng có gián đoạn mẫu ML(ax1[n] + bx2[n]) ≠ a.ML(x1[n]) + b.ML(x2[n]) Các lọc trung vị thường bảo toàn gián đoạn sắc nét tín hiệu, khơng đảm bảo việc lọc thành phần tiếng ồn (tạp âm) cách đầy đủ.ML(ax[n]) = a.ML(x[n]) Nhóm 2, lớp HP: 1022470.1810.16.15 Số trung vị số nằm tập hợp dãy số (n phần tử) xếp theo thứ tự tăng dần [7] Nếu số phần tử dãy số lẻ (n = 2k+1 phần tử), số trung vị số vị trí thứ n + Ví dụ dãy số 1, 2, 6, 7, 8, 16, 18 số trung vị [7] Nếu số phần tử dãy số chẵn (n = 2k phần tử), số trung vị trung bình cộng phần tử thứ n thứ n+1 Ví dụ dãy số 1, 3, 4, 6, 7, 9, 15, 16 số trung vị trung bình cộng (bằng 6.5) [7] Các tham số quan trọng lọc trung vị (Median Smoothing) Trong matlab, để lọc trung vị tín hiệu cần lọc, ta dùng hàm MedSmoothing (Hàm tự viết) để lọc trung vị tín hiệu chiều Cú pháp hàm MedSmoothing(x,N) Với x tín hiệu đầu vào sau tính F hàm tự tương quan (đã rời rạc hóa) miền tần số, N số chiều (bậc) tín hiệu hay chiều dài hàm cửa sổ Để lấy xác điểm trung vị, N thường số lẻ tin hieu truoc va sau loc trung vi 100 truoc loc sau loc 50 x X: Y: 10 X: Y: -4 X: -2 Y: -9 X: Y: X: -1 Y: -4 X: Y: -50 -50 -5 -4 -3 -2 -1 n Hình Tín hiệu trước sau qua lọc trung vị n = Xét tín hiệu ban đầu n = 0, giá trị x -50 Sau lọc tín hiệu x với bậc (xét giá trị n = -2, -1, 0, 1, với giá trị -9 , -4, -50, 10, 1) giá trị x n = -4 Như tín hiệu điểm bất thường n = loại bỏ.và thay vào điểm thấp nhiều Từ ví dụ trên, thấy tác dụng lọc trung vị lọc điểm có biên độ bất thường tín hiệu, hay nói cách khác làm mịn tín hiệu Bậc N lọc cần phải xem xét để tín hiệu sau lọc khơng điểm bất thường trơn Khảo sát lọc trung vị kết thực nghiệm tần số Xét kết tần số nguyên âm /a/, /e/, /i/, /o/ /u/ trước lọc (sau tính hàm tự tương quan) sau lọc trung vị với bậc khác Bảng Bảng số liệu so sánh F0 (được tính miền thời gian) nguyên âm trước sau lọc trung vị Trước lọc Lọc với N = Lọc với N = Lọc với N = /a/ F0 mean = 137,0845 Hz F0 RMSE = 6,1495 Hz F0 mean = 137,4475 Hz F0 RMSE = 5,3810 Hz F0 mean = 136,4816 Hz F0 RMSE = 5,4512 Hz F0 mean = 136,0219 Hz F0 RMSE = 5,0767 Hz /e/ F0 mean = 139,2630 Hz F0 RMSE = 9,9666 Hz F0 mean = 139,2078 Hz F0 RMSE =9,9397 Hz F0 mean = 138,4337 Hz F0 RMSE = 9,6954 Hz F0 mean = 138,3254 Hz F0 RMSE = 9,6934 Hz /i/ F0 mean = 135,8407 Hz F0 RMSE = 9,2633 Hz F0 mean = 136,0345 Hz F0 RMSE = 6,4899 Hz F0 mean = 136,1413 Hz F0 RMSE = 6,2293 Hz F0 mean = 134,3279 Hz F0 RMSE = 8,8427 Hz /o/ F0 mean = 137,4709 Hz F0 RMSE = 7,6768 Hz F0 mean = 137,5110 Hz F0 RMSE = 3,9514 Hz F0 mean = 136,3764 Hz F0 RMSE = 5,3537 Hz F0 mean = 135,5654 Hz F0 RMSE = 6,9525 Hz Tín hiệu Nguyễn Trần Hậu, Đặng Xuân Lộc, Nguyễn Thái Minh, Nguyễn Hữu Hoàng Hưng F0 mean = 138,0304 Hz F0 RMSE = 15,7358 Hz /u/ F0 mean = 136,5642 Hz F0 RMSE = 16,6882 Hz F0 mean = 137,8570 Hz F0 RMSE = 15,7298 Hz F0 mean = 137,8562 Hz F0 RMSE = 15,7298 Hz Xét kết tần số nguyên âm /a/, /e/, /i/, /o/ /u/ trước lọc (sau tính miền tần số phép biến đổi Fourier nhanh) sau lọc trung vị với bậc khác Bảng Bảng số liệu so sánh F0 (được tính miền tần số) nguyên âm trước sau lọc trung vị Trước lọc Lọc với N = Lọc với N = Lọc với N = /a/ F0 mean = 136,6013 Hz F0 RMSE = 7,7731 Hz F0 mean = 135,7841 Hz F0 RMSE = 6,4626 Hz F0 mean = 135,4958 Hz F0 RMSE = 6,1802 Hz F0 mean = 135,1112 Hz F0 RMSE = 5,8212 Hz /e/ F0 mean = 140,6999 Hz F0 RMSE = 7,4707 Hz F0 mean = 140,6999 Hz F0 RMSE = 7,4707 Hz F0 mean = 140,2105 Hz F0 RMSE = 7,3312 Hz F0 mean = 140,2105 Hz F0 RMSE = 7,3312 Hz /i/ F0 mean = 144,6762 Hz F0 RMSE = 19,6454 Hz F0 mean = 137,8723 Hz F0 RMSE = 6,3922 Hz F0 mean = 136,6480 Hz F0 RMSE = 5,7125 Hz F0 mean = 136,1526 Hz F0 RMSE = 5,0896 Hz /o/ F0 mean = 137,6587 Hz F0 RMSE = 6,3942 Hz F0 mean = 137,5626 Hz F0 RMSE = 4,8207 Hz F0 mean = 136,6493 Hz F0 RMSE = 5,2043 Hz F0 mean = 136,2167 Hz F0 RMSE = 5,0958 Hz /u/ F0 mean = 144,4927 Hz F0 RMSE = 7,3097 Hz F0 mean = 143.8198 F0 RMSE = 6,5979 Hz F0 mean = 143,2692 Hz F0 RMSE = 6,6419 Hz F0 mean = 142,9022 Hz F0 RMSE = 6,6978 Hz Tín hiệu Nếu bậc N lọc trung vị thấp (N = 3) tín hiệu khơng thay đổi nhiều, nhiều điểm bất thường giá trị n Tín hiệu lọc mịn bậc N = bậc N = Với bậc N = tín hiệu vài giá trị bất thường giá trị n khác tín hiệu giữ độ xác Khi bậc N = giá trị bất thường khơng còn, có vài giá trị n bị thay (mất) thơng tin Giá trị N lớn tín hiệu mịn, nhiên tín hiệu tín hiệu quan trọng Vì vậy, giá trị N nên để tín hiệu vừa loại bỏ giá trị bất thường tín hiệu, vừa giữ thơng tin quan trọng Sai số tồn phương trung bình tín hiệu sau lọc tiêu chí quan trọng để xác định bậc nên sử dụng để lọc Bậc có lệch chuẩn thấp nên dùng bậc Với nguyên âm xét , rút sau: a) Đối với tần số tính miền thời gian Nên chọn N = ứng với tín hiệu /a/ Nên chọn N = ứng với tín hiệu /e/ Nên chọn N = ứng với tín hiệu /i/ Nên chọn N = ứng với tín hiệu /o/ Nên chọn N = ứng với tín hiệu /u/ b) Đối với tần số tính miền tần số Nên chọn N = ứng với tín hiệu /a/ Nên chọn N = ứng với tín hiệu /e/ Nên chọn N = ứng với tín hiệu /i/ Nên chọn N = ứng với tín hiệu /o/ Nên chọn N = ứng với tín hiệu /u/ E Khảo sát ảnh hưởng việc dùng hàm cửa sổ số điểm tính FFT Vấn đề cần giải Các đặc điểm tín hiệu tiếng nói ln biến đổi theo thời gian Chẳng hạn cao độ (pitch), mức độ kích thích âm vơ thanh, âm hữu khoảng lặng, biên độ khác tín hiệu, hay biến thiên tần số Nhóm 2, lớp HP: 1022470.1810.16.15 10 miền tín hiệu tuần hồn Chính đặc điểm ln ln biến đổi nên giả định hầu hết phương pháp xử lí tín hiệu tiếng nói thành phần tín hiệu tiếng nói thay đổi khơng đáng kể cố định so với thời gian Để áp dụng giả định trên, lý thuyết phân tích, phân tích phải tiến hành khoảng thời gian giới hạn Vì nên phân tích tín hiệu tiếng nói có khoảng thời gian tương đối dài, phải áp dụng phương pháp xử lí ngắn hạn nhằm chia tín hiệu thành đoạn (segment) hay khung nhỏ (frame) khoảng thời gian tương đối nhỏ (thường khoảng từ 10-30ms) Các đoạn thường lấy chồng lên nhằm tránh việc mát tín hiệu Trong hầu hết phương pháp xử lí ngắn hạn, việc chia tín hiệu thành đoạn khung thực cách nhân tín hiệu tiếng nói với hàm cửa sổ có chiều dài hữu hạn tương ứng với chiều dài khung tín hiệu mong muốn Hàm cửa sổ xử lí tín hiệu số hàm tốn học có giá trị điểm không thuộc khoảng giới hạn (chiều dài cửa sổ) Sau nhân tín hiệu với hàm cửa sổ (phép lấy cửa sổ) ngoại trừ vị trí thuộc chiều dài cửa sổ, tất vị trí khơng thuộc chiều dài cửa sổ có giá trị Tuy nhiên, việc lấy cửa sổ tín hiệu khơng nhằm phân đoạn tín hiệu, mà mục đích việc làm thon tín hiệu, nhằm cải thiện đặc điểm tín hiệu miền tần số[8] Hàm cửa sổ có nhiều loại, phụ thuộc vào mục đích sử dụng phân tích tín hiệu Có nhiều hàm cửa sổ sử dụng việc phân tích tín hiệu hàm cửa sổ chữ nhật (Rectangular window), hàm cửa sổ tam giác (Triangle window), hàm cửa sổ Hanning/ Hamming, Tuy nhiên, báo cáo này, tìm hiểu khảo sát ảnh hưởng dùng hàm cửa sổ chữ nhật cửa sổ Hamming/Hanning, số điểm tính FFT phân tích phổ tín hiệu hình sin ngẫu nhiên với FFT points = 256, 512, 1024 Hình Tín hiệu hình sin ngẫu nhiên nhân với mẫu cửa sổ hình chữ nhật qua phép phân tích FFT Hình 10 Tín hiệu hình sin ngẫu nhiên nhân với mẫu cửa sổ hamming qua phép phân tích FFT Cơ sở lý thuyết a) Chức hàm cửa sổ Chức hàm cửa sổ hàm tốn học có giá trị khơng nằm ngồi khung cửa sổ chọn Về mặt toán học, hàm khác dạng sóng chuỗi liệu "nhân" hàm cửa sổ, có giá trị nằm ngoại khoảng thời gian chọn hàm cửa sổ Các chức khác hàm cửa sổ sử dụng phân tích quang phổ, lọc đáp ứng xung hữu hạn, thiết kế dầm ăng-ten [8] b) Hàm cửa sổ hình chữ nhật Cửa sổ hình chữ nhật (thỉnh thoảng gọi cửa sổ ô tô cửa sổ Dirichlet) cửa sổ đơn giản loại cửa sổ, thay tất giá trị N chuỗi liệu (với N chiều dài mẫu hàm thời gian rời Nguyễn Trần Hậu, Đặng Xuân Lộc, Nguyễn Thái Minh, Nguyễn Hữu Hoàng Hưng 11 rạc), làm cho xuất thể dạng sóng với w(n) =1 Một cửa sổ hình chữ nhật khơng thay đổi phân đoạn tín hiệu Nó làm cho tín hiệu khung tín hiệu hàm cửa sổ giữ ngun, khơng nằm ngồi khung tín hiệu chọn [8] 𝑛ế𝑢 ≤ 𝑛 ≤ 𝑁 − Hàm cửa sổ chữ nhật : h(n) = { 𝑡𝑟ườ𝑛𝑔 ℎợ𝑝 𝑐ò𝑛 𝑙ạ𝑖 c) Hàm cửa sổ Hamming Hàm cửa sổ Hamming hàm cửa sổ đặc biệt sử dụng việc phân tích phổ để giảm tượng rò phổ Hàm cửa sổ Hamming với mức độ tượng rò phổ thấp cần thiết để phát tín hiệu có vùng quang phổ rộng 2𝜋𝑛 0,54 − 0,46𝑐𝑜𝑠( ) 𝑛ế𝑢 ≤ 𝑛 ≤ 𝑁 − 𝑁−1 Hàm cửa sổ Hamming: h(n) = { 𝑡𝑟ườ𝑛𝑔 ℎợ𝑝 𝑐ò𝑛 𝑙ạ𝑖 Do mức độ tượng rò phổ, hàm cửa sổ hình chữ nhật thường khơng sử dụng tín hiệu có quang phổ phạm vi tín hiệu rộng Còn hàm cửa sổ Hamming có mức độ tượng rò phổ thấp nên thường sử dụng tín hiệu có phạm vi quang phổ rộng Nhưng tín hiệu có phạm vi quang phổ hẹp, hàm cửa sổ hình nhật tối ưu so với hàm cửa sổ Hamming khơng làm số tín hiệu quan trọng Các tham số quan trọng thuật toán Hàm cửa sổ hình chữ nhật thư viện Matlab có cú pháp w = rectwin(L) trả cửa sổ hình chữ nhật có chiều dài L vectơ cột w, với L số điểm để tạo cửa sổ hình chữ nhật Tương tự, hàm cửa sổ Hamming thư viện Matlab cú pháp w = hamming (L) trả cửa sổ Hamming với L số điểm đối xứng III CÀI ĐẶT THUẬT TOÁN A Hàm tự tương quan để tính tần số miền thời gian function [arr_F0] = AutoCorr(inp,fs) % The function is used for finding fundamental frequency of a signal in the time domain % inp is the input signal % fs is sampling frequency % The output is arr_F0, which is the array containing calculated F0 frame_len = round(0.03*fs); % Length of each frame 30ms half = round(frame_len/2); % For overlapping frames i = 1; % Index of number of elements in the array of F0 h = hamming(frame_len); % Create a impulse response of the hamming window % Examine every frame of the signal for k = : length(inp)/half -1; % (length(ip)/half -1) = number of frames width = (k-1)*half + 1:(frame_len + (k-1)*half); % Start index to end index frame = h.*inp(width); % Multiplied by the hamming window % Use xcorr function to determine the lag of the frame [rxx , lag] = xcorr(frame, frame); % Autocorrelation function on the frame rxx = rxx(frame_len:end); % Fold the signal lag = lag(frame_len:end); % Calculate the fundamental frequency F0 if findpeaks(inp(width),'NPeaks',1,'SortStr','descend') > 0.04 % Remove noise by limiting estimate amplitude = 0.04 [y_value,y_peak] = findpeaks(frame,'MinPeakDistance', 285); % Limit distance between peaks to increase accuracy lag_a = fs/(y_peak(3) - y_peak(2)); % Find lags by using peaks from the correlation graph lag_b = fs/(y_peak(2) - y_peak(1)); if lag_a80 % Min_f=80Hz and max_f=400Hz if lag_b80 arr_F0(i) = (lag_a+lag_b)/2; i = i + 1; end end end end 12 Nhóm 2, lớp HP: 1022470.1810.16.15 B Phép biến đổi Fourier nhanh để tính tần số miền tần số function [yyy_F0] = mientanso(sig,fs) % The function is used for finding fundamental frequency of a signal in spectrum % sig is the input signal % fs is sampling frequency % The output is yyy_F0, which is the array containing calculated F0 in each windown N = 32768; %N-point fft frame_len = round(0.03*fs); %Length of frame (30ms) half = round(frame_len/2); %For overlapping frame h = hamming(frame_len); %Hamming window function i=1; %Index of element in yyy_F0 for k = : length(sig)/half -1 %Vong lap cac frame range = (k-1)*half + 1:(frame_len + (k-1)*half); %Index of each element in window frame = h.*sig(range); %Value of each element in window %use FFT function (in Matlab) to analyze the spectrum of the frame P2 = abs(fft(frame,N)); %The two-sided spectrum P2 P1 = P2(1:length(P2)/2+1); %The single-sided spectrum P1 P1(2:end-1) = 2*P1(2:end-1); freq=linspace(0,fs/2,length(P1)); %Spectrum of signal if findpeaks(frame,'NPeaks',1,'SortStr','descend') > 0.03 %Remove the noise by limiting the amplitude of signal in frame [y_value,y_peak] = findpeaks(P1,freq,'MinPeakHeight',2);%Find peaks (with the certain minimun Height to remove the noise in special cases) in the spectrum of signal z_a = y_peak(3) - y_peak(2); %Find F0 by using first peaks in spectrum z_b = y_peak(2) - y_peak(1); if z_a80 %Since 80Hz length(x) - ceil(N/2) + 1) %i < phan tu giua cua temp if(i < length(x) + ceil(N/2) - k + 1) temp(i) = x(k-ceil(N/2) + i); else temp(i) = 0; %i > phan tu giua cua temp end else %xet tin hieu temp chay o giua x temp(i) = x(k-ceil(N/2)+i); Nguyễn Trần Hậu, Đặng Xuân Lộc, Nguyễn Thái Minh, Nguyễn Hữu Hoàng Hưng 13 end end end %ham median giup tim phan tu trung vi cua day y(k) = median(temp); end end D Chương trình demo [sig,fs] = audioread('u.wav'); %Fetch the signal Autocorr_F0 = AutoCorr(sig,fs); %Find F0 in time domain by using AutoCorrelation Function Autocorr_F0 = MedSmoothing(Autocorr_F0,7); %Filter the result by with dimension N=7 fft_F0 = mientanso(sig,fs); %Find F0 in frequency domain by using Fast Fourier Transform fft_F0 = MedSmoothing(fft_F0,7); %Filter the result by Median Smoothing with dimension N=7 figure(1); subplot(2,1,1) stem(Autocorr_F0,'filled'); title('Fundamental Frequency F_0(Hz) by Autocorrelation Function'); ylabel ('F(Hz)'); subplot(2,1,2) stem(fft_F0,'filled'); title('Fundamental Frequency F_0(Hz) by Fast Fourier Transform'); ylabel ('F(Hz)'); IV KẾT QUẢ THỰC NGHIỆM A Dữ liệu mẫu Dữ liệu dùng để đánh giá thuật tốn tín hiệu nguyên âm /a/, /e/, /i/, /o/ /u/ với tần số lấy mẫu 44100Hz có biểu diễn đồ thị hình bên Hình 11 Tín hiệu đầu vào nguyên âm B Kết định tính 14 Nhóm 2, lớp HP: 1022470.1810.16.15 Hình 12 Trường hợp tín hiệu cho kết tính F0 xác Hình 12 mơ tả ví dụ trường hợp cho kết tính F0 xác sau qua lọc trung vị tín hiệu nguyên âm /o/, sai số RMSE nhỏ Hình 13 Trường hợp tín hiệu cho kết tính F0 trung bình Hình 13 mơ tả ví dụ trường hợp cho kết tính F0 có độ xác trung bình tín hiệu nguyên âm /e/, sai số RMSE trung bình Hình 14 Trường hợp tín hiệu cho kết tính F0 xác Nguyễn Trần Hậu, Đặng Xuân Lộc, Nguyễn Thái Minh, Nguyễn Hữu Hoàng Hưng 15 Hình 14 mơ tả ví dụ trường hợp cho kết tính F0 xác sau qua lọc trung vị tín hiệu nguyên âm /u/, sai số RMSE lớn C Kết định lượng Yếu tố ảnh hưởng đến độ xác thuật tốn tín hiệu vào, tín hiệu vào thu âm mơi trường n tĩnh, nhiễu, độ xác thuật tốn cao Vì nhiễu đáng kể ta khó phân biệt tín hiệu âm nhiễu thơng qua biên độ Dưới ví dụ minh hoạ cửa sổ gần cuối tín hiệu có nhiễu đáng kể nhiễu khơng đáng kể Hình 15 Trường hợp kết tính F0 tín hiệu ngun âm /a/ có nhiễu đáng kể Hình 16 Trường hợp kết tính F0 tín hiệu nguyên âm /a/ có nhiễu khơng đáng kể Thơng qua hình 15 hình 16 ta thấy là, nhiễu đáng kể biên độ nhiễu lớn gần biên độ âm tín hiệu khơng có nhiễu Do trường hợp ta gặp khó khăn để loại bỏ trường hợp cửa sổ nhiễu Bên cạnh đó, việc chọn bậc lọc trung vị làm ảnh hưởng đến kết chuỗi F0 thu Nếu ta chọn bậc thích hợp kết F0 mịn xác Tuy nhiên, chọn bậc khơng phù hợp làm giảm độ xác tín hiệu Bảng Lọc trung vị với bậc khác Tín hiệu Trước lọc Lọc với N = Lọc với N = Lọc với N = /a/ F0 mean = 136,6013 Hz F0 RMSE = 7,7731 Hz F0 mean = 135,7841 Hz F0 RMSE = 6,4626 Hz F0 mean = 135,4958 Hz F0 RMSE = 6,1802 Hz F0 mean = 135,1112 Hz F0 RMSE = 5,8212 Hz /e/ F0 mean = 140,6999 Hz F0 RMSE = 7,4707 Hz F0 mean = 140,6999 Hz F0 RMSE = 7,4707 Hz F0 mean = 140,2105 Hz F0 RMSE = 7,3312 Hz F0 mean = 140,2105 Hz F0 RMSE = 7,3312 Hz /o/ F0 mean = 137,4709 Hz F0 RMSE = 7,6768 Hz F0 mean = 137,5110 Hz F0 RMSE = 3,9514 Hz F0 mean = 136,3764 Hz F0 RMSE = 5,3537 Hz F0 mean = 135,5654 Hz F0 RMSE = 6,9525 Hz Nhóm 2, lớp HP: 1022470.1810.16.15 16 Dựa vào bảng 3, ta thấy lọc chuỗi F0 tín hiệu /a/ /i/ với bậc N = kết mịn hơn, giảm độ sai số kết Tuy nhiên, tín hiệu /o/, ta chọn lọc trung vị bậc N = độ xác kết không tăng lên nhiều so với khơng dùng lọc trung vị Từ ta thấy lọc trung vị ảnh hưởng phần đến độ sai số kết F0 tính khung cửa sổ Việc chọn hàm cửa sổ quan trọng để định độ xác thuật toán Nếu ta dùng hàm cửa sổ chữ nhật dễ xảy tượng rò phổ, ta dùng hàm cửa sổ Hamming khắc phục phần tượng rò phổ Hình 17 Chọn cửa sổ chữ nhật Hình 18 Chọn cửa sổ Hamming Dựa vào hình 17 hình 18, ta thấy chọn hàm cửa sổ chữ nhật, xảy tượng rò phổ nên ta khó thể phân biệt đâu đỉnh tần số bội tần số Khi chọn hàm cửa sổ Hamming vấn đề giải hiệu Đối với việc tính F0 miền tần số, yếu tố quan trọng định độ xác thuật tốn việc lựa chọn số điểm DFT Nếu ta chọn số điểm nhỏ độ chia nhỏ (ĐCNN) tần số phổ tín hiệu lớn làm cho phổ tín hiệu khơng rõ dẫn đến việc xác định tần số khơng xác cao Ngược lại, chọn số điểm FFT lớn độ chia nhỏ tần số phổ tín hiệu nhỏ làm cho phổ tín hiệu rõ hơn, dẫn đến việc xác định tần số xác Tuy nhiên chọn số điểm FFT lớn tốn nhiều tài ngun máy tính (thời gian nhớ) Nên việc lựa chọn số điểm FFT thích hợp yếu tố quan trọng định độ xác thuật tốn tính F0 miền tần số Nếu lấy số điểm FFT 211 = 2048 ĐCNN tần số 44100 Hz/2048 = 21,5332 Hz Nếu lấy số điểm FFT 215 = 32768 ĐCNN tần số 44100 Hz/32768 = 1,3458 Hz Nếu lấy số điểm FFT 217 = 131077 ĐCNN tần số 44100 Hz/131077 = 0,3364 Hz Nguyễn Trần Hậu, Đặng Xuân Lộc, Nguyễn Thái Minh, Nguyễn Hữu Hoàng Hưng 17 Từ ta thấy số điểm lấy FFT phù hợp 215 = 32768, tức độ chia nhỏ miền tần số 1,3458 Hz, đủ nhỏ để phổ tín hiệu thể rõ thuận tiện cho việc tính tần số mà khơng tốn q nhiều tài ngun máy tính Đối với việc tính F0 miền thời gian, yếu tố quan trọng định độ xác thuật tốn khoảng cách tối thiểu hai cực đại Trong nhiều trường hợp, xa trung tâm cực đại có biên độ giống nên để tìm xác cực đại bội số chu kỳ phải giới hạn khoảng cách tối thiểu hai cực đại Hình 19 Đồ thị tương quan khung tín hiệu nguyên âm /a/ Hình 19 cho ta thấy rằng, khơng giới hạn khoảng cách cực đại đồ thị tương quan không ứng với cực đại bội số chu kỳ Do việc tìm khoảng cách tối thiểu cực đại quan trọng Sau đo thủ cơng (lấy trung bình lần đo tín hiệu nguyên âm) báo cáo trước, kết hợp với việc sử dụng thuật tốn để tính tần số tự động ta bảng kết Bảng Kết F0 đo cách khác Tần số F0 (Hz) Tín hiệu Đo thủ cơng Hàm tự tương quan Phép biến đổi Fourier nhanh /a/ 138,1492 136,0219 135,1112 /e/ 144,5861 138,3254 140,2105 /i/ 140,1293 136,1413 136,1526 /o/ 139,6827 137,5110 136,2167 /u/ 147,9374 137,8562 142,9022 Trung bình 142,0969 137,1712 138,1186 Dựa vào bảng 4, ta thấy kết trung bình tần số nguyên âm tính hàm tự tương quan phép biến đổi Fourier nhanh gần Do đó, ta kết luận tần số tín hiệu âm tính miền thời gian dùng hàm tự tương quan miền tần số dùng phép biến đổi Fourier nhanh Tuy nhiên, để biết thuật tốn xác ta cần phải thực nghiệm nhiều loại tín hiệu giá trị chuẩn xác Sai số tồn phương (RMSE) thuật tốn có cơng thức sau: RMSE = √ ∑𝑛𝑖=1(𝑌 − 𝑌𝑖 )2 𝑛 Với Y giá trị F0 tính cách đo thủ cơng, Yi giá trị F0 tính frame Bảng Kết sai số toàn phương thuật tốn tín hiệu Nhóm 2, lớp HP: 1022470.1810.16.15 18 Sai số tồn phương (RMSE) (Hz) Tín hiệu Hàm tự tương quan Phép biến đổi Fourier nhanh /a/ 5,0766 5,8212 /e/ 9,6934 7,3312 /i/ 6,2293 5,0869 /o/ 3,9514 4,8207 /u/ 15,7316 6,5979 Trung bình 8,1365 5,9316 Dựa vào bảng 5, ta thấy độ sai số toàn phương hàm tự tương quan lớn phép biến đổi Fourier nhanh Tuy nhiên giá trị chuẩn tính thủ cơng nên độ xác khơng tuyệt đối nên khơng thể kết luận độ xác thuật tốn thơng qua sai số tồn phương (RMSE) Nhìn chung, thuật tốn tính tần số miền thời gian miền tần số có ưu điểm nhược điểm khác Dùng hàm tự tương quan để tính tần số miền thời gian áp dụng cho nhiều loại tín hiệu, kể tín hiệu có chất lượng thấp có nhiễu đáng kể Bên cạnh đó, hàm tự tương quan sở cho phương pháp phân tích phổ việc cài đặt hàm tự tương quan đơn giản giúp tiết kiệm tài ngun máy tính Tuy nhiên, hàm tự tương quan có số bất lợi đáng kể khó điều chỉnh tham số thuật toán (như khoảng cách tối thiểu hai cực đại) cách xác Khoảng cách cực đại ảnh hưởng thành tố âm tiết, tính chu kỳ tín hiệu bị ảnh hưởng, dẫn đến sai sót tính tốn Việc tính tần số miền tần số phép FFT xác với trường hợp lấy điểm DFT lớn, đồng nghĩa với việc đỉnh phổ dày đặc rò phổ hơn, lại tốn tài ngun máy tính nhiều Ngược lại, lấy điểm DFT nhỏ độ xác giảm đáng kể mật độ đỉnh thưa thớt [9] V KẾT LUẬN Bài báo thực việc cài đặt thuật tốn tìm tần số tín hiệu tiếng nói miền thời gian dùng hàm tự tương quan miền tần số dùng phép biến đổi Fourier nhanh Matlab Để làm trơn tần số xác định, lọc trung vị sử dụng Các thử nghiệm với tín hiệu nguyên âm (/a/, /e/, /i/, /o/ /u/) cho thấy sai số tồn phương trung bình thuật tốn dùng hàm tự tương quan có khơng có lọc trung vị 9,7584Hz 8,1365Hz Đối với thuật toán dùng phép biến đổi nhanh Fourier sai số tồn phương trung bình có khơng có lọc trung vị 9,7186Hz 5,9316Hz Sự chênh lệch kết tính tần số nguyên âm cao việc sử dụng lọc trung vị cần thiết để giảm sai số Trong tương lai chúng em thử nghiệm thuật tốn tính tần số tiên tiến để cải thiện độ xác việc tính tốn tần số tín hiệu tiếng nói người Bên cạnh đó, chúng em thực nghiệm thuật tốn tín hiệu vào câu nói dài, thay nguyên âm ngắn VI NHỮNG ĐIỀU ĐÃ HỌC ĐƯỢC Thông qua việc thực báo cáo này, sinh viên học thêm nhiều học tích lũy thêm kinh nghiệm cách trình bày báo cáo Cải thiện khả sử dụng tiếng Anh thơng qua việc tìm tư liệu Internet việc đọc tài liệu tham khảo mà giảng viên giao Biết cách phân công công việc cách hợp lý Tăng cường khả giao tiếp nhóm Hiểu rõ phần việc cá nhân làm cải thiện liên tục để nâng cao chất lượng báo cáo Tích lũy thêm nhiều kiến thức bổ ích lĩnh vực xử lí tín hiệu, cụ thể xử lí tín hiệu tiếng nói VII TÀI LIỆU THAM KHẢO [1] Tần số âm Retrieved from link: https://vi.wikipedia.org/wiki/Tần_số_âm_cơ_bản [2] Nguyen Binh Thien, Ninh Khanh Duy, “ Cải thiện thuật toán tự tương quan tìm cao độ tín hiệu đàn ghi-ta vi xử lý ARM Cortex-M4 ”, trường Đại học Bách Khoa, Đại học Đà Nẵng [3] Biến đổi Fourier rời rạc Retrieved from link: https://vi.wikipedia.org/wiki/Biến_đổi_Fourier_rời_rạc [4] Biến đổi Fourier nhanh Retrieved from link: https://en.wikipedia.org/wiki/Biến_đổi_Fourier_nhanh [5] J Fessler, “The Discrete Fourier Transform”, https://web.eecs.umich.edu/~fessler/course/451/l/pdf/c5.pdf May 27, 2004 Retrieved from link: Nguyễn Trần Hậu, Đặng Xuân Lộc, Nguyễn Thái Minh, Nguyễn Hữu Hồng Hưng 19 [6] Tom Bäckstrưm, “Fundamental Frequency Modelling and Estimation Speech Processing”, Aalto University, October 2015 Retrieved from link: https://mycourses.aalto.fi/pluginfile.php/146206/mod_resource/content/1/slides_05_f0_estimation.pdf [7] Lawrence R Rabiner, Ronald W Schafe, “ Prentice Hall - Digital Processing Of Speech Signals 1978 ”, pp 158159 [8] Window function Retrieved from link: https://en.wikipedia.org/wiki/Window_function [9] Fast Fourier Transform and autocorrelation function for the analysis of complex mass spectra Retrieved from link: https://www.sciencedirect.com/science/article/pii/S1387380613000195?fbclid=IwAR0YQrZQyMRl0921bxip9eqJlwhJ zOzMoCUmvzCFz9DJeHHseWbAX6rdvEQ [10] Phép biến đổi FFT Retrieved from link http://www.stu.edu.vn/uploads/documents/310810-112932.pdf [11] Median Smoothing and Speech Processing Retrieved from link: https://www.ece.ucsb.edu/Faculty/Rabiner/ece259/digital%20speech%20processing%20course/lectures_new/Lecture_a lgorithms_fall_2010_6tp.pdf?fbclid=IwAR1jEOx8Q64AiHUE3BKx5Gnxi2jnhaMVTGk_uwTq_DvEiSSjX91qKKXp 2Dc ... riêng Trong báo cáo này, hàm tự tương quan sử dụng để tính tần số miền thời gian sử dụng phép biến đổi Fourier nhanh (FFT) để phân tích phổ tính tần số miền tần số Lọc trung vị (median smoothing)... gian sử dụng hàm tự tương quan miền tần số thông qua phép biến đổi Fourier nhanh Để làm trơn kết tần số nhận được, lọc trung vị sử dụng B Hàm tự tương quan Cơ sở lý thuyết Hàm tự tương quan công... đồ khối hàm tự tương quan Các tham số quan trọng thuật tốn Cơng thức tính tần số tín hiệu: F0 = Fs / L, F0 tần số bản, Fs tần số lấy mẫu L độ trễ mà hàm tự tương quan đạt cực đại Vì tần số lấy