Đồ án Speech Enhancement - Xử lý nâng cao chất lượng tiếng nói

LỜI CAM ĐOAN Kính gửi: Hội đồng bảo vệ đồ án tốt nghiệp Khoa Điện tử _ Viễn thông _Trường Đại học Bách Khoa Đà Nẵng. Em tên là : Nguyễn Thị Ngọc Diệp Hiện đang học lớp 04ĐT1 - Khoa: Điện tử - Viễn thông – Trường: Đại học Bách Khoa Đà Nẵng. Nhóm em xin cam đoan nội dung của đồ án này không phải là bản sao chép của bất cứ đồ án hoặc công trình đã có từ trước. Sinh viên thực hiện Nguyễn Thị Ngọc Diệp MỤC LỤC LỜI CAM ĐOAN 1 MỤC LỤC 2 DANH MỤC CÁC TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ TIẾNG ANH 8 MỞ ĐẦU 10 CHƯƠNG 1: TỔNG QUAN VỀ NÂNG CAO CHẤT LƯỢNG TIẾNG NÓI . 13 1.1 Giới thiệu chương 13 1.2 Nâng cao chất lượng tiếng nói là gì ? 13 1.3 Lý thuyết về tín hiệu và nhiễu . 15 1.3.1 Tín hiệu, hệ thống và xử lý tín hiệu .15 1.3.1.1 Tín hiệu 15 1.3.1.2 Nguồn tín hiệu 15 1.3.1.3 Hệ thống và xử lý tín hiệu 16 1.3.1.4 Phân loại tín hiệu 16 1.4 Lý thuyết về nhiễu . 17 1.4.1 Nguồn nhiễu .17 1.4.2 Nhiễu và mức tín hiệu tiếng nói trong các môi trường khác nhau .19 1.5 Tín hiệu rời rạc theo thời gian . 20 1.5.1 Tín hiệu bước nhảy đơn vị .21 1.5.2 Tín hiệu xung đơn vị 21 1.5.3 Tín hiệu hàm mũ 21 1.5.4 Tín hiệu hàm sin rời rạc .21 1.6 Phép biến đổi Fourier của tín hiệu rời rạc DTFT 22 1.6.1 Sự hội tụ của phép biến đổi Fourier .22 1.6.2 Quan hệ giữa biến đổi Z và biến đổi Fourier .22 1.6.3 Phép biến đổi Fourier ngược 23 1.6.4 Các tính chất của phép biến đổi Fourier 23 1.6.5 Phân tích tần số (phổ) cho tín hiệu rời rạc .24 1.6.6 Phổ tín hiệu và phổ pha 25 1.7 Các thuật toán sử dụng nâng cao chất lượng tiếng nói 26 1.7.1 Trừ phổ .26 1.7.2 Mô hình thống kê .26 1.8 Tín hiệu tiếng nói . 26 1.9 Cơ chế tạo tiếng nói . 28 1.9.1.1 Bộ máy phát âm của con người 28 1.9.2 Mô hình kỹ thuật của việc tạo tiếng nói .28 1.9.3 Phân loại âm .29 1.9.4 Thuộc tính âm học của tiếng nói 29 1.10 Kết luận chương 29 CHƯƠNG 2 : ĐÁNH GIÁ CHẤT LƯỢNG TIẾNG NÓI 30 2.1 Giới thiệu chương 30 2.2 Phương pháp đánh giá chủ quan 30 2.2.1 Các phương pháp đánh giá tuyệt đối 31 2.2.1.1 Phương pháp đánh giá tuyệt đối ACR . 31 2.2.2 Các phương pháp đánh giá tương đối 31 2.2.2.1 Đánh giá bằng phương pháp so sánh các mẫu tín hiệu 31 2.2.2.2 Phương pháp đánh giá theo sự suy giảm chất lượng . 32 2.3 Phương pháp đánh giá khách quan 33 2.3.1 Đo tỷ số tín hiệu trên nhiễu trên từng khung .33 2.3.2 Đo khoảng cách phổ dựa trên LPC 35 2.3.2.1 Phương pháp đo LLR . 35 2.3.2.2 Phương pháp đo IS . 36 2.3.2.3 Phương pháp đo theo khoảng cách cepstrum . 36 2.3.3 Đánh giá mô phỏng theo cảm nhận nghe của con người .37 2.3.3.1 Phương pháp đo Weighted Spectral Slope . 37 2.3.3.2 Phương pháp đo Bark Distortion . 38 2.3.3.3 Phương pháp đánh giá cảm nhận chất lượng thoại PESQ . 39 2.4 Kết luận chương 39 CHƯƠNG 3: THUẬT TOÁN SPECTRAL–SUBTRACTION VÀ WIENER FILTERING . 41 3.1 Giới thiệu chương 41 3.2 Sơ đồ khối chung của Spectral Subtraction và Wiener Filtering 41 3.3 Thuật toán Spectral Subtraction 41 3.3.1 Giới thiệu chung .41 3.3.2 Spectral subtraction đối với phổ biên độ .42 3.3.3 Spectral subtraction đối với phổ công suất 43 3.4 Thuật toán Wiener Filtering 45 3.4.1 Giới thiệu chung .45 3.4.2 Nguyên lý cơ bản của Wiener Filtering .46 3.5 Overlap và Adding trong quá trình xử lý tín hiệu tiếng nói 48 3.5.1 Phân tích tín hiệu theo từng frame .48 3.5.2 Overlap và Adding .49 3.6 Ước lượng và cập nhật nhiễu . 50 3.6.1 Voice activity detection .51 3.6.2 Quá trình ước lượng và cập nhật nhiễu 51 3.7 Kết luận chương 52 CHƯƠNG 4: THỰC HIỆN VÀ ĐÁNH GIÁ CÁC THUẬT TOÁN 53 4.1 Giới thiệu chương 53 4.2 Quy trình thực hiện và đánh giá thuật toán . 53 4.3 Lưu đồ thuật toán Spectral Subtraction . 55 4.4 Lưu đồ thuật toán Wiener Filtering . 56 4.5 Thực hiện thuật toán 57 4.6 Đánh giá chất lượng tiếng nói đã được xử lý 59 4.6.1 Cơ sở dữ liệu cho việc đánh giá .59 4.6.2 Tổng quan về quy trình đánh giá .59 4.6.3 Kiểm tra độ tin cậy của các phương pháp đánh giá .60 4.6.4 Thực hiện đánh giá .62 4.6.4.1 Đánh giá thuật toán với các hệ số dự đoán ban đầu . 62 4.6.4.2 Tối ưu hệ số alpha cho thuật toán WF . 65 4.6.4.3 Hệ số gamma cho thuật toán SS . 67 4.6.4.4 Đánh giá thuật toán sau khi đã tối ưu . 68 4.6.4.5 Đánh giá độ ổn định của thuật toán trong môi trường nhiễu khác . 69 4.6.5 Kết luận chương .71 TÀI LIỆU THAM KHẢO . 72 KẾT LUẬN ĐỒ ÁN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI . 75 PHỤ LỤC . 76 CHÚ THÍCH : TÀI LIỆU TRÊN GỒM FILE WORD + PDF

doc77 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2709 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đồ án Speech Enhancement - Xử lý nâng cao chất lượng tiếng nói, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
seg được xác định như sau [12] (2.1) Trong đó : tín hiệu gốc (tín hiệu sạch) : tín hiệu đã được tăng cường N: chiều dài khung (thường được chọn từ 15-20ms) M: số khung của tín hiệu Một vấn đề tiềm ẩn với phương pháp đánh giá SNRseg là năng lượng của tín hiệu trong suốt khoảng lặng của tín hiệu thoại (xuất hiện nhiều trong các đoạn hội thoại) sẽ rất bé, dẫn đến kết quả là giá trị của ai số SNRseg lớn làm sai lệch toàn bộ đánh giá. Phương án giải quyết duy nhất là loại trừ những khung lặng trong biểu thức trên bằng cách đo mức năng lượng trong thời gian ngắn nén giá trị SNRseg ngưỡng đến một giá trị bé. Nếu giá trị SNRseg được giới hạn trong khoảng [-10dB, 35dB] [14] sẽ tránh được việc cần phải dùng bộ tách tín hiệu thoại và khoảng lặng Sự xác định trước của SNRseg dựa trên tín hiệu vào gốc và tín hiệu đã được xử lý. Ta có thể dùng tín hiệu được xử lý qua bộ lọc dự đoán thường được sử dụng trong thuật toán CELP [15]. Sau khi đưa tín hiệu gốc và tín hiệu đã qua xử lý qua các bộ lọc này, ta có thể tính toán SNRseg dựa trên tín hiệu ra của các bộ lọc[16]. Sự ước tính SNR này mang lại hệ số tương quan cao đối với các phương pháp đánh giá chủ quan Một cách xác định SNRseg khác được đề xuất bởi Richards [17] trong đó hàm log có thay đổi so với công thức 3.1 (2.2) Như vậy có thể tránh được các giá trị sai lệch lớn trong suốt các khoảng lặng của tín hiệu tiếng nói. Chú ý rằng giá trị nhỏ nhất có thể đạt được của SNRsegR bây giờ là 0 thì đã tốt hơn nhiều so với những giá trị âm vô cùng. Ưu điểm chính của việc xác định trước phân đoạn SNR là tránh được việc cần thiết phải làm rõ ràng giữa các khoảng tiếng nói và khoảng lặng Đo SNR cho từng khung có thể được mở rộng trong miền tần số theo (2.3) Trong đó Bj : Trọng lượng tại dải tần số thứ j K : Số dải tần M : Tổng số khung tín hiệu F(m,j) : Dãy tín hiệu gốc qua bọ lọc đã được khuếch đại tại dải lần thứ j và khung thứ m : Dãy tín hiệu đã được tăng cường qua lọc khuếch đại ở cùng một dải tần với F(m,j) Ưu điểm chính của việc sử dụng SNRseg trên miền tần số thay vì miền thời gian tăng thêm tính linh động của việc phân bố trọng số của phổ khác nhau cho những dải tần khác nhau Một cách khác, trọng số của mỗi dải có thể thu được bằng cách dùng phương pháp phân tích hồi quy, còn gọi là phương pháp đánh giá chủ quan biến đổi tần số. Bằng cách này , trọng số có thể được chọn để có hệ số tương quan lớn nhất giữa đánh giá khách quan và đánh giá chủ quan. Với phương pháp này, tổng của K (cho mỗi dải) của các phương pháp đánh giá khách quan khác nhau và Dj được ước tính cho mỗi dãy, tại Dj được cho như sau[12] (2.4) Trọng lượng tối ưu cho mỗi Dj của mỗi dải đạt được khi dùng phương pháp phân tích hồi quy tuyến tính bậc K, cho ra đánh giá chủ quan biến đổi tần số: (2.5) : Các hệ số hồi quy, Dj : được cho bởi (3.4), K là số dải .Phân tích hồi quy không tuyến tính cũng có thể được sử dụng như một cách để chuyển hóa đánh giá khách quan biến đổi tần số 2.3.2 Đo khoảng cách phổ dựa trên LPC LPC (Linear Prediction Coefficient)s :Hệ số dự đoán tuyến tính Gồm các phương pháp phổ biến là LLR (Log Likelihood Ratio) , IS (Itakura Saito) và đo theo khoảng cách cepstrum 2.3.2.1 Phương pháp đo LLR (2.6) :hệ số LPC của tín hiệu sạch :hệ số của tín hiệu đã được tăng cường chất lượng Rx là (p+1)*(p+1)ma trận tự tương quan(Toeplitz) của tín hiệu sạch Biểu thức trên được viết lại trong miền tần số như sau[9] [17] (2.7) và lần lượt là phổ của và . Biểu thức trên chỉ ra sự khác nhau giữa phổ tín hiệu và phổ tăng cường có ảnh hưởng nhiều hơn khi lớn, thường gần với đỉnh tần số formant. Do đó, cách đo này xác định sự khác nhau vị trí của đỉnh tần số formant 2.3.2.2 Phương pháp đo IS Đo IS được xác định như sau  [12] (2.8) và lần lượt là hệ số khuếch đại của tín hiệu sạch và tín hiệu tăng cường. Hệ số khuếch đại có thể được tính như sau: (2.9) chứa hệ số tự tương quan của tín hiệu sạch (nó cũng là hàng đầu tiên của ma trận tự tương quan ) 2.3.2.3 Phương pháp đo theo khoảng cách cepstrum Không giống với đo LLR, IS chú trọng sự khác nhau giữa hệ số khuếch đại , sự khác nhau về mức phổ của tín hiệu sạch và tín hiệu tăng cường. Bên cạnh đó cũng có thể là hạn chế của đánh giá IS, sự khác nhau giữa các mức phổ có tác động nhỏ đến chất lượng[18] Hệ số LPC cũng có thể xuất phát từ khoảng cách đo được dựa trên hệ số cepstrum. Khoảng cách này quy định sự ước lượng khoảng cách log của phổ của giữa hai phổ tín hiệu. Hệ số cepstrum có thể thu được từ phép đệ quy hệ số LPC {aj} sử dụng công thức sau (2.10) Với p là bậc của phân tích LPC .Phép đo dựa trên hệ số cepstrum có thể được tính như sau [19] (2.11) Với và lần lượt là hệ số của tín hiệu sạch và tín hiệu đã được tăng cường 2.3.3 Đánh giá mô phỏng theo cảm nhận nghe của con người Những phương pháp đánh giá đã được đề cập trên được ưa dùng vì tính đơn giản để thực hiện và dễ dàng đánh giá. Tuy nhiên, khả năng dự đoán chất lượng chủ quan của chúng thì hạn chế khi mà các phương pháp xử lý tín hiệu đó không tính đến phạm vi nghe của con người. 2.3.3.1 Phương pháp đo Weighted Spectral Slope Phương pháp đánh giá này được tính bởi dốc phổ đầu tiên được tìm thấy của mỗi dải phổ. Xét Cx(k) là phổ dải tới hạn của tín hiệu sạch và là của tín hiệu tăng cường, xét trong đơn vị dB. Phương trình sai phân bậc nhất được dùng để tính độc dốc phổ được cho như sau: (2.12) Với và lần lượt biểu diễn cho độ dốc dải tần thứ k của tín hiệu sạch và tín hiệu tăng cường. Sự khác nhau giữa các độ dốc phổ phụ thuộc vào trọng số một là dải tần gần với đỉnh hoặc rãnh, hai là đỉnh là đỉnh lớn nhất của phổ. Trọng số của dải thứ k, ký hiệu W(k) được tính như sau [12] (2.13) độ rộng loga lớn nhất của phổ trong tất cả các băng, là giá trị của đỉnh gần với băng k nhất, và , là hằng số có được bằng phép phân tích hồi quy để cực đại hóa sự tương quan giữa đánh giá chủ quan và giá trị của đánh giá khách quan. Với những thí nghiệm đã được thực hiện thì người ta tìm được sự tương quan lớn nhất sẽ có được với =20 và =1[18] Phép đo WSS tính cho mỗi khung của tín hiệu thoại:  (2.14) Với L là số lượng dải tới hạn Giá trị WSS được tính bằng cách lấy trung bình các giá trị WSS thu được từ các khung trong câu WSS là phương pháp đánh giá khá hấp dẫn bởi vì nó không đòi hỏi phải có formant rõ ràng. Nó chú ý tới vị trí đỉnh phổ và ít nhạy cảm với các đỉnh xung quanh cũng như các chi tiết của phổ ở các vùng thấp. Đánh giá LPC cơ bản (ví dụ như đánh giá LLR) nhạy với các tần số formant khác, nhưng cũng nhạy với sự thay đổi biên độ và sự thay đổi độ nghiêng phổ. Không có gì là bất ngờ khi đánh giá WSS mang lại một sự tương quan lớn (ρ=0.74) hơn đánh giá LPC, với sự đánh giá chất lượng chủ quan của tiếng nói bị giảm chất lượng bởi sự mã hóa[20] 2.3.3.2 Phương pháp đo Bark Distortion Phương pháp đánh giá WSS là bước đầu làm mẫu cho việc làm thế nào để con người nhận biết được tiếng nói, đặc biệt là nguyên âm. Các phương pháp đánh giá sau này càng dựa vào sự xử lý âm thanh của tai người, cách mà thính giác con người xử lý âm thanh và nhiễu. Những phương pháp đánh giá mới này đã dựa trên những lập luận sau: 1. Sự phân tích tần số của tai người là không thay đổi, tức là sự phân tích tần số của tín hiệu âm thanh không dựa trên phạm vi tần số tuyến tính 2. Độ nhạy của tai người phụ thuộc vào tần số âm thanh 3. Âm thanh to tương ứng với độ mạnh của tín hiệu trong miền phi tuyến tính Thính giác con người phỏng theo một loạt biến đổi của tín hiệu âm thanh. Cả tín hiệu gốc và tín hiệu đã qua xử lý phải trải qua hàng loạt các biến đổi này, dẫn đến cái gọi là phổ âm lượng. Đánh giá BSD sử dụng khoảng cách giữa các phổ này như là đánh giá chất lượng chủ quan 2.3.3.3 Phương pháp đánh giá cảm nhận chất lượng thoại PESQ Trong các phương pháp đánh giá OE thì PESQ là phương pháp đánh giá phức tạp nhất và được khuyến nghị bởi ITU_T cho đánh giá chất lượng thoại băng hẹp (3,2KHz) và là một phương pháp đánh giá khách quan có tính tương quan cao với đánh giá theo cảm nhận của người nghe 2.4 Kết luận chương Chương này đã trình bày một số phương pháp đánh giá chất lượng tiếng nói sau khi xử lý giảm nhiễu bằng các thuật toán tăng cường tiếng nói. Các đánh giá SE được giới thiệu gồm có các phương pháp đánh giá tuyệt đối và đánh giá tương đối. Các phương pháp đánh giá OE được trình bày chính trong chương này gồm : Đo SNRseg, đánh giá LLR, IS và WSS, trong phần này cũng đã giới thiệu sơ bộ về BSD và PESQ CHƯƠNG 3: THUẬT TOÁN SPECTRAL–SUBTRACTION VÀ WIENER FILTERING 3.1 Giới thiệu chương Nội dung của chương này trình bày nguyên lý chung của thuật toán Spectral – subtraction và Wiener filtering,nguyên lý cơ bản của từng thuật toán, các bước thực hiện cần thiết để phân tích liên kết tín hiệu, đề cập đến vấn đề ước luợng nhiễu, vấn đề này ảnh hưởng rất lớn đến quá trình xử lý 3.2 Sơ đồ khối chung của Spectral Subtraction và Wiener Filtering Trong đồ án này, chúng tôi đã dựa trên các cở sở lý thuyết của các thuật toán đã có trong speech enhancement, và đã lựa chọn ra 2 thuật toán đó là : Spectral subtraction và Wiener filter để sử dụng làm thuật toán xử lý triệt nhiễu. Sơ đồ khối chung cho cả 2 thuật toán : Phân tích tín hiệu thành các frame Tín hiệu bị nhiễu  FFT  Hàm xử lý giảm nhiễu Ước lượng nhiễu  Overlap và IDFT adding  Tín hiệu sạch Hình 3.1 Sơ đồ khối cho hai thuật toán SS và WF Cả 2 thuật toán Spectral subtraction và Wiener filter chỉ khác nhau ở khối hàm xử lý triệt nhiễu, tất cả các khối còn lại thì giống nhau. 3.3 Thuật toán Spectral Subtraction 3.3.1 Giới thiệu chung Spectral – subtraction là thuật toán được đề xuất sớm nhất trong các thuật toán được sử dụng để giảm nhiễu trong tín hiệu. Đã có rất nhiều bài luận mô tả các biến thể của thuật toán này so với các thuật toán khác. Nó dựa trên một nguyên tắc cơ bản, thừa nhận sự có mặt của nhiễu, nó có thể đạt được mục đích ước lượng phổ của tiếng nói sạch bằng cách trừ đi phổ của nhiễu với phổ của tiếng nói đã bị nhiễu. Phổ của nhiễu có thể được ước lượng, cập nhật trong nhiều chu kỳ khi không có mặt của tín hiệu. Sự thừa nhận đó chỉ được thực hiện đối với nhiễu không đổi hoặc có tốc độ xử lý biến đổi chậm, và khi đó phổ của nhiễu sẽ không thay đổi đáng kể giữa các khoảng thời gian cập nhật. Việc tăng cường tín hiệu đạt được bằng cách tính IDFT(biến đổi Fourier rời rạc ngược) của phổ tín hiệu đã được ước lượng có sử dụng pha của tín hiệu có nhiễu. Thuật toán này là một phép tính ước lượng đơn giản vì nó chỉ gồm biến đổi DFT thuận và DFT ngược. Quá trình xử lý hiệu đơn giản như vậy phải trả một cái giá, nếu quá trình xử lý không được thực hiện một cách cẩn thận thì tiếng nói của chúng ta sẽ bị méo. Nếu như việc lấy hiệu quá lớn thì có thể loại bỏ đi một phần thông tin của tiếng nói, còn nếu việc thực hiện lấy hiệu đó nhỏ thì nhiễu sẽ vẫn còn được giữ lại trong tín hiệu. Có rất nhiều phương pháp được đề xuất để giảm đi hầu hết méo trong quá trình xử lý tiếng nói bằng spectral subtraction[21], và trong số đó cũng có một vài trường hợp bị loại bỏ. 3.3.2 Spectral subtraction đối với phổ biên độ Giả thiết rằng y[n] là tín hiệu vào đã bị nhiễu, nó tổng của tín hiệu sạch x[n] và tín hiệu nhiễu d[n]: y[n] = x[n] + d[n] (3.1) Thực hiện biến đổi Fourier rời rạc cả 2 vế,ta được Y (w ) = X (w ) + D(w ) Chúng ta có thể biểu diễn Y( w ) dưới dạng phức như sau: Y (w) =| Y (w) | e jf y (w ) Khi đó |Y( w )| là biên độ phổ, và f y (w) là pha của tín hiệu đã bị nhiễu.  (3.2) (3.3) Phổ của tín hiệu nhiễu D( w ) có thể được biểu diễn dạng biên độ và pha: D(w) =| D(w) | e jfd (w )  (3.4) Biên độ phổ của nhiễu |D( w )| không xác định được, nhưng có thể thay thế bằng giá trị trung bình của nó được tính trong khi không có tiếng nói(tiếng nói bị dừng), và pha của tín hiệu nhiễu có thể thay thế bằng pha của tín hiệu bị nhiễu f y (w) , việc làm này không ảnh hưởng đến tính dễ nghe của tiếng nói [22], có thể ảnh hưởng đến chất lượng của tiếng nói là làm thay đổi pha của tiếng nói nhưng cũng chỉ vài độ. Khi đó chúng ta có thể ước lượng được phổ của tín hiệu sạch: Ù Ù X (w) = [| Y (w) | - | D(w) |]e jf y (w ) (3.5) Ù ở đây | D(w) | là biên độ phổ ước lượng của nhiễu được tính trong khi không có tiếng nói hoạt động. Ký hiệu "Ù" để chỉ rằng giá trị đó là giá trị ước tính gần đúng. Tín hiệu tiếng nói được tăng cường có thể đạt được bằng cách rất đơn giản là biến đổi IDFT của Ù X (w) . Cần chú ý rằng biên độ phổ của tín hiệu đã được tăng cường là | X (w) | (=| Y (w) | - | D(w) |) , có thể bị âm do sự sai sót trong việc ước lượng phổ của nhiễu. Tuy nhiên, biên độ của phổ thì không thể âm, nên chúng cần phải đảm bảo rằng khi thực trừ hai phổ thì phổ của tín hiệu tăng cường |X( w )| luôn luôn không âm. Giải pháp được đưa ra để khắc phục điều này là chỉnh lưu bán sóng hiệu của phổ, nếu thành phần phổ nào mà âm thì chúng ta sẽ gán nó bằng 0: ⎪⎧ X (w ) = ⎨ ^ Y (w ) - | D(w ) | , | Y (w ) | ^ > | D(w ) |  (3.6) 0 , ¹ Phương pháp xử lý bằng chỉnh lưu bán sóng là một trong những cách để đảm bảo cho |X( w )| không bị âm. 3.3.3 Spectral subtraction đối với phổ công suất Thuật toán Spectral subtraction đối với phổ biên độ có thể được mở rộng sang miền phổ công suất. Vì trong một vài trường hợp, nó có thể làm việc tốt với phổ công suất hơn là với phổ biên độ. Lấy phổ công suất của tín hiệu bị nhiễu trong một khoảng ngắn, chúng ta bình phương |Y( w )|, ta được: 2 Y (w ) = =  2 2 X (w) + D(w) + X (w). D* (w) + X * (w)D(w) 2 2 X (w) + D(w ) + 2.Re{X (w)D* (w)}  (3.7) | D(w ) |2, X( w ). D * (w ) và X * (w).D(w) không thể tính được một cách trực tiếp và xấp xỉ bằng E{| D(w ) |2}, E{ X( w ). D * (w ) } và E{ X * (w).D(w) }, khi đó E[.] là toán tử kỳ vọng. Bình thường thì E{| D(w ) |2} được ước lượng khi không Ù có tiếng nói hoạt động và được biểu thị là | D(w) |2. Nếu chúng ta thừa nhận d[n] = 0 và không có một sự tương quan nào với tín hiệu sạch x[n], thì E{ X( w ). D * (w ) } và E{ X * (w).D(w) } xem là 0. Khi đó phổ công suất của tín hiệu sạch có thể tính được như sau ^ ^ | X (w) |2 =| Y (w) |2 - | D(w) |2 (3.8) Công thức trên biểu diễn thuật toán trừ phổ công suất. Như công thức trên, thì phổ công suất được ước lượng Ù | X (w) |2 không được đảm bảo luôn là một số dương, nhưng có thể sử dụng phương pháp chỉnh lưu bán sóng như đã trình bày ở trên. Tín hiệu được tăng cường sẽ thu được bằng cách tính IDFT của Ù | X (w) | (bằng cách lấy căn bậc hai của Ù | X (w) | 2 ), có sử dụng pha của tín hiệu tiếng nói bị nhiễu. Chú ý rằng, nếu chúng ta lấy IDFT cả hai vế của công thức (4.8) trên thì ta có một phương trình tương tự trong miền tự tương quan: r^ ^ (m) = ryy (m) - r^ ^ (m)  (3.9) Khi đó  r^^ (m) , xx xx ryy (m) ,  r^^ (m) dd dd là các hệ số tự tương quan của tín hiệu sạch, tín hiệu tiếng nói bị nhiễu, và tín hiệu nhiễu đã được ước lượng [23,24]. Công thức (1) có thể được viết theo dạng sau: ^ | X (w) |2 = H 2 (w) | Y (w) |2 ( 3.10) Khi đó:  H (w) = ^ | D(w) |2 1 - | Y (w) |2  (3.11) Trong lý thuyết hệ thống tuyến tính, H( w ) là hàm truyền đạt của hệ thống. Trong lý thuyết của Speech enhancement, chúng ta xem H( w ) là hàm độ lợi hay hàm nén. Và H( w ) là một số thực và luôn luôn dương, và có giá trị nàm trong phạm vị 0 £ H (w ) £ 1 . Nếu nó có giá trị âm là do có sai sót trong quá trình ước lượng phổ của nhiễu. H( w ) được gọi là hàm nén là vì nó cho ta biết tỷ số giữa phổ công suất của tín hiệu được tăng cường với phổ công suất của tín hiệu bị nhiễu. Hình dạng của hàm nén là một đặc trưng duy nhất của mỗi thuật toán Speech enhancement. Chính vì vậy mà chúng ta thường so sánh các thuật toán bằng cách so sánh các đáp ứng của hàm nén của chúng. Hệ số H( w ) có giá trị thực nên biến đổi IDFT là h[n] đối xứng với nhau qua điểm 0 và không nhân quả. Trong miền thời gian thì h[n] được xem là một bộ lọc không nhân quả [25]. Nên sẽ có một phương pháp được đề xuất để hiệu chỉnh hàm H( w ) để đáp ứng của nó trở thành bộ lọc nhân quả trong miền thời gian. Trường hợp chung thì thuật toán Spectral subtraction có thể được biểu diễn: ^ ^ | X (w ) | p =| Y (w ) | p - | D(w ) | p (3.12) Trong đó p là số mũ công suất, với p = 1 là đó là phương pháp trừ phổ biên độ điển hình, p = 2 là phương pháp trừ phổ công suất. Sơ đồ khối của thuật toán Spectral Subtraction : Tín hiệu Ước lượng, cập nhật nhiễu Y (w)  ^ - | D(w) | p bị nhiễu FFT |.|p + Pha của tín hiệu Tín hiệu sau khi tăng cường  IFFT  |.|1/p Hình 3.2 Sơ đồ khối của thuật toán Spectral subtraction [26]. 3.4 Thuật toán Wiener Filtering 3.4.1 Giới thiệu chung Thuật toán Spectral Subtraction dựa chủ yếu vào trực giác và kinh nghiệm.Chính xác hơn thuật toán này được phát triển dựa trên một nhiễu có thật được cộng vào và tín hiệu sạch được ước lượng một cách đơn giản bằng cách trừ đi phổ của nhiễu từ phổ của tính hiệu tiếng nói có nhiễu. Với cách làm này tín hiệu tiếng nói sạch không thể có được bằng cách tối ưu nhất. Để khắc phục nhược điểm này ta sử dụng thuật toán Wiener Filtering (WF). WF là thuật toán được sử dụng rộng rãi trong nâng cao chất lượng tiếng nói. Nguồn gốc cơ bản của thuật toán WF là tạo ra tín hiệu tiếng nói sạch bằng cách nén nhiễu. Ước lượng được thực hiện bằng cách hạ thấp sai số bình phương trung bình (Mean Square Error) giữa tín hiệu mong muốn và tín hiệu ước lương. 3.4.2 Nguyên lý cơ bản của Wiener Filtering Giả thiết rằng y[n] là tín hiệu vào đã bị nhiễu, nó là tổng của tín hiệu sạch và tín hiệu nhiễu d[n]: y[n]=x[n]+d[n] (3.13) Thực hiện biến đổi Fourier rời rạc cả 2 vế,ta được Y (w) = X (w) + D(w) Chúng ta có thể biểu diễn Y( w ) dưới dạng phức như sau: Y (w) =| Y (w) | e jf y (w ) Khi đó |Y( w )| là biên độ phổ, và f y (w) là pha của tín hiệu đã bị nhiễu.  (3.14) (3.15) Phổ của tín hiệu nhiễu D( w ) có thể được biểu diễn dạng biên độ và pha: D(w) =| D(w) | e jfd (w )  (3.16) Biên độ phổ của nhiễu |D( w )| không xác định được, nhưng có thể thay thế bằng giá trị trung bình của nó được tính trong khi không có tiếng nói(tiếng nói bị dừng), và pha của tín hiệu nhiễu có thể thay thế bằng pha của tín hiệu bị nhiễu f y (w) , việc làm này không ảnh hưởng đến tính dễ nghe của tiếng nói [27], có thể ảnh hưởng đến chất lượng của tiếng nói là làm thay đổi pha của tiếng nói nhưng cũng chỉ vài độ. Ta có thể ước lượng được biên độ của phổ tín hiệu sạch một hàm phi tuyến được xác định như sau : Ù X (w ) từ Y( w ) bằng Ù G(w ) = X (w ) / Y (w ) (3.17) G(w) có thể được áp dụng theo Wiener Filtering [28]: 2 E{ S (w ) } 2 2 G(w ) = (3.18) E{ S (w ) } + E{ D(w ) } Trong đó Ps (w) và Pd (w) là phổ công suất của tin hiệu sạch. Đặt Priori SNR và Posteriori SNR như sau[11]: 2 E{ S (w ) } SNR pri = 2 (3.19) E{ D(w ) } 2 E{ Y (w ) } SNR post = 2 (3.20) E{ D(w ) } Một khó khăn trong các thuật toán nâng cao chất lượng tiếng nói là ta không có tín hiệu trước tín hiệu sạch s[n] nên ta không thể biết phổ của nó. Do đó ta không thể tính được  SNR pri  mà trong các hệ thống nâng cao chất lượng giọng nói thì SNR pri là tham số rất cần thiết để ước lượng tín hiệu sạch.Trong các hệ thống nâng cao chất lượng giọng nói có thể ước lượng được SNR pri và SNR post bằng cách cho các thông số thích hợp vào các phương trình sau[12]: 2 Ù t Ù t -1 2 P d (w) = l P d (w) + (1 - l ) D t (v ) (3.21) SNR post Ù E{Y (w ) } = Ù t P d (w ) ⎡ Ù  ^ t -1 S ⎤  2 (w )  (3.22) SNR t pri (w ) = (1 - b ) P t SNR ⎢ post ⎣ (w ) - 1⎥ + b ⎦  Ù P d (w ) (3.23) Trong đó P[.] là hàm chỉnh lưu bán sóng có dạng như sau: ⎧ X P( X ) = ⎨ ⎩0 , , X > 0 ¹  (3.24) Và và chỉ số [.]t để tín hiệu tại khoảng thời gian đang xử lý. Trong phương trình nếu cho hệ số b ta có thể ước lượng được SNR pri bằng SNR post . Trong thực tế hệ số b =0.98 rất tốt cho các tín hiệu có SNR<4dB. Từ phương trình (3.18) và (3.19) có G(w) theo WF như sau: SNR pri G(w ) = 1 + SNR pri Sơ đồ khối của thuật toán Wiener Filtering:  (3.25) Tín hiệu Ước lượng, cập nhật nhiễu Y (w )  ^ | D(w ) | p  SNR pri Priori SNR Hàm xử lý bị nhiễu FFT |.|2  giảm nhiễuWF Tín hiệu sau khi tăng cường  IFFT Pha của tín hiệu  |.|1/2 Hình 3.3 Sơ đồ khối của thuật toán Wiener Filtering. 3.5 Overlap và Adding trong quá trình xử lý tín hiệu tiếng nói 3.5.1 Phân tích tín hiệu theo từng frame Do tín hiệu cần xử lý của chúng ta là tín hiệu liên tục, nên khi chúng ta biến đổi FFT trực tiếp tín hiệu từ miền thời gian mà không thông qua một quá trình tiền xử lý nào trước đó thì tín hiệu sau khi được biến đổi FFT sẽ biến đổi nhanh, lúc đó chúng ta không thể thực hiện được các thuật toán xử lý triệt nhiễu trong tín hiệu vì khi đó tín hiệu được xem là động. Chính vì vậy, tín hiệu của chúng ta cần phải được phân tích thành những khung tín hiệu(frame) liên tục trong miền thời gian trước khi chuyển sang miền tần số bằng biến đổi FFT. Khi tín hiệu được phân tích thành các frame liên tục, thì trong từng frame, tín hiệu của chúng ta sẽ biến đổi chậm và nó được xem là tĩnh. Nếu tín hiệu được phân tích theo từng frame thì khi đó các thuật toán xử lý triệt nhiễu trong tín hiệu mới có thể thực hiện được một cách hiệu quả. Và cách phân tích tín hiệu của chúng ta là “frame by frame”. Để thực hiện việc phân tích tín hiệu thành các frame, cần sử dụng các loại cửa sổ thích hợp. Ở đây, chúng ta sử dụng cửa sổ Hamming, với N = 256 mẫu trong từng frame : 1 - 0.85185. cos((2k + 1)p / N ) , k = 0,..., N - 1 (3.27) N : kích thước của frame m : số lượng frame Hình 3.4 Phân tích tín hiệu thành các frame [31]. 3.5.2 Overlap và Adding Sau khi phân tích tín hiệu thành các frame liên tục trong miền thời gian bằng cửa sổ Hamming, nếu các frame này liên tục với nhau và không theo một điều kiện nào cả thì khi thực hiện biến đổi FFT thì vô tình chúng ta đã làm suy giảm tín hiệu do Hamming là cửa sổ phi tuyến. Nên khi thực hiện phân tích tín hiệu thành các frame thì yêu cầu đặt ra là các frame phải sắp xếp chồng lên nhau, gọi là “overlap”. Việc xếp chồng các frame với nhau sẽ được thực hiện theo một tỷ lệ chồng lấp thích hợp, thông thường là 40% hoặc 50%. Sau khi các frame tín hiệu được xử lý triệt nhiễu trong miền tần số, các frame này được liên kết lại nhau bằng phương pháp thích hợp với phương pháp phân tích tín hiệu thành các frame ở đầu vào gọi là “adding”. Tập hợp các mẫu tín hiệu trong cùng một frame sau khi được phân tích ở đầu vào gọi là một “segment”. Với cách thực hiện phân tích và liên kết các frame bằng phương pháp overlap và adding thì tín hiệu của chúng ta thu được sau khi xử lý triệt nhiễu sẽ không bị méo dạng và sẽ không xuất hiện hiện tượng “giả nhiễu”. Hình 3.5 quá trình thực hiện overlap và adding [32]. 3.6 Ước lượng và cập nhật nhiễu Phương thức ước lượng nhiễu có thể ảnh hưởng lớn đến chất lượng của tín hiệu sau khi được tăng cường. Nếu nhiễu được ước lượng quá nhỏ thì nhiễu sẽ vẫn còn trong tín hiệu và nó sẽ được nghe thấy, còn nếu như nhiễu được ước lượng quá lớn thì tiếng nói sẽ bị méo, và làm sẽ làm tính dễ nghe của tiếng nói bị ảnh hưởng. Cách đơn giản nhất để ước lượng và cập nhật phổ của nhiễu trong đoạn tín hiệu không có mặt của tiếng nói sử dụng thuật toán thăm dò hoạt động của tiếng nói (voice activity detection - VAD). Tuy nhiên phương pháp đó chỉ thoả mãn đối với nhiễu không thay đổi(nhiễu trắng), nó sẽ không hiệu quả trong các môi trường thực tế (ví dụ như nhà hàng), ở những nơi đó đặc tính phổ của nhiễu thay đổi liên tục. Trong mục này chúng ta sẽ đề cập đến thuật toán ước lượng nhiễu thay đổi liên tục và thực hiện trong lúc tiếng nói hoạt động, thuật toán này sẽ phù hợp môi trường có nhiễu thay đổi cao. 3.6.1 Voice activity detection Quá trình xử lý để phân biệt khi nào có tiếng nói hoạt động, khi nào không có tiếng nói (im lặng) được gọi là sự thăm dò hoạt động của tiếng nói – Voice activity detection (VAD). Thuật toán VAD có tín hiệu ra ở dạng nhị phân quyết định trên một nền tảng frame-by-frame, khi đó frame có thể xấp xỉ 20-40 ms. Một đoạn tiếng nói có chứa tiếng nói hoạt động thì VAD = 1, còn nếu tiếng nói không hoạt động hay đó chính là nhiễu thì VAD = 0. Có một vài thuật toán VAD được đưa ra dựa trên nhiều đặc tính của tín hiệu. Các thuật toán VAD được đưa ra sớm nhất thì dựa vào các đặc tính như mức năng lượng, zero-crossing, đặc tính cepstral, phép đo khoảng cách phổ Itakura LPC, phép đo chu kỳ. Phần lớn các thuật toán VAD đều phải đối mặt với vấn đề là điều kiện SNR thấp, đặc biệt khi nhiễu bị thay đổi. Một thuật toán VAD có độ chính xác trong môi trường thay đổi không thể đủ trong các ứng dụng của Speech enhancement, nhưng việc ước lượng nhiễu một cách chính xác là rất cần thiết tại mọi thời điểm khi tiếng nói hoạt động [26]. 3.6.2 Quá trình ước lượng và cập nhật nhiễu Nhiễu sẽ được ước lượng lúc ban đầu bằng cách lấy trung bình biên độ phổ của tín hiệu bị nhiễu 1 Di (w) = M M -1 åYi (w) i =0  (3.28) Sau đó, sử dụng phương pháp VAD để nhận biết các frame tiếp theo, frame nào là frame nhiễu và sẽ cập nhật nhiễu đó cho các frame tiếp theo. Để có thể nhận biết được frame nào là nhiễu thì chúng ta thực hiện so sánh biên độ phổ của nhiễu được ước lượng với biên độ phổ của tín hiệu bị nhiễu : p T = 20 log 1 ò | Yi (w)  | dw  (3.29) 2p -p Di -1 (w) Nếu T £ -12dB thì frame đó không phải là frame có tiếng nói, khi đó ta có thể cập nhật lại nhiễu đã được ước lượng trước đó. 3.7 Kết luận chương Nội dung của chương giúp nguyên lý chung của thuật toán Spectral – Subtraction và Wiener Filtering. Để hai thuật toán có thể thực hiện được thì cần phải phân tích tín hiệu thành các frame và các frame phải xếp chồng lên nhau, và sau khi các frame được xử lý trong miền tần số và chuyển đổi về lại miền thời gian thì các frame đó phải được liên kết lại với nhau theo đúng phương pháp tương ứng với phương pháp phân tích tín hiệu ở đầu vào, quá trình đó gọi là overlap và adding. Chính điều đó sẽ làm cho tín hiệu của chúng ta sau khi xử lý triệt nhiễu sẽ không bị méo, đảm bảo chất lượng của tiếng nói. Nội dung của chương cũng trình bày vấn đề ước lượng nhiễu, đây là cái chính mà speech enhancement cần giải quyết, nó quyết định tính hiệu quả của thuật toán và chất lượng của tiếng nói sau khi xử lý triệt nhiễu. CHƯƠNG 4: THỰC HIỆN VÀ ĐÁNH GIÁ CÁC THUẬT TOÁN 4.1 Giới thiệu chương Dựa vào lý thuyết đã nghiên cứu được, chương này đã xây dựng các lưu đồ thuật toán và thực hiện các thuật toán giảm nhiễu mô phỏng bằng Matlab, sau đó đánh giá các kết quả thu được chủ yếu bằng phương pháp đánh giá Objective Measure 4.2 Quy trình thực hiện và đánh giá thuật toán Xây dựng các thuật toán Triển khai thuật toán trên Matlab Thực hiện xử lý tiếng nói bằng các thuật toán giảm nhiễu Thực hiện các thuật toán đánh giá dựa trên các kết quả đạt được sau khi xử lý Nhận xét đánh giá Hình 4.1. Sơ đồ thực hiện và đánh giá thuật toán tăng cường Xây dựng thuật toán : dựa trên các cơ sở toán học, các phép biến đổi trong miền thời gian và tần số đối với xử lý tín hiệu số để xây dựng nên các thuật toán xử lý nhiễu trong tiếng nói. Triển khai trên Matlab: từ thuật toán đã xây dựng được, thực viết mã nguồn bằng ngôn ngữ lập trình và sử dụng các công cụ trên Matlab tạo nên chương trình thực hiện xử lý nhiễu trong tiếng nói trên nền Matlab. Thực hiện xử lý tiếng nói bằng các thuật toán: thực hiện xử lý triệt nhiễu trong các file âm thanh bị nhiễu bằng chương trình đã xây dựng ở trên. Thực hiện các phương pháp đánh giá dựa trên các kết quả đạt được sau khi xử lý : sau khi các file âm thanh bị nhiễu với các mức độ và loại nhiễu khác nhau đã được xử lý triệt nhiễu, cùng với các file âm thanh sạch tương ứng, ta sử dụng các phương pháp đánh giá của Speech enhancement để thực kiểm tra, đánh giá tính hiệu của thuật toán. Nhận xét đánh giá: từ các kết quả sau khi thực hiện các phương pháp đánh giá đã có ở trên, đưa ra các kết luận đánh giá : thuật toán nào thích hợp cho loại nhiễu nào, với mức độ bao nhiêu, thuật toán nào có khả xử lý nhiễu tốt hơn trong mọi trường hợp. 4.3 Lưu đồ thuật toán Spectral Subtraction Begin Phân chia Frame tín hiệu đầu X = vào Y=biến đổi FFT cho các frame Tinh cong suat nhieu trung binh N ban đầu I=0;Nhập frame đầu tiên VAD S SpeechFlag==0? Đ D=YS(:,i)-N; % Thực hiện trừ phổ Tính lại mức nhiễu N X(:,i)=Beta*Y(:,i) X(:,i)=max(D,0); I=I+1;nhập frame tiếp theo Đ I<number of frame S Thực hiên IFFT và nối các X = frame End Hình 4.2 Lưu đồ thuật toán SS 4.4 Lưu đồ thuật toán Wiener Filtering Begin Phân chia Frame tín hiệu đầu X = vào Y=biến đổi FFT cho các frame Tinh cong suat nhieu trung bình N ban đầu I=0;Nhập frame đầu tiên VAD S SpeechFlag==0? Tính lại mức nhiễu trung bình Đ Tính Priori SNR Tính Gain Function G X(:,i)=G.*Y(:,i);tin hiệu sạch I=I+1;nhập frame tiếp theo Đ I<number of frame Đ Thực hiên IFFT và nối các X = frame X End Hình 4.3 Lưu đồ thuật toán WF 4.5 Thực hiện thuật toán Chúng ta thực hiện xử lý các file âm thanh bị nhiễu, với 2 loại nhiễu đó là nhiễu do tiếng xe hơi và nhiễu do người nói xung quanh tương ứng với SNR =10dB Dạng sóng và phổ của tín hiệu sạch: Hình 4.4 dạng sóng và spectrogram của tín hiệu sạch Dạng sóng và spectrogram của tín hiệu bị nhiễu xe hơi với SNR = 10dB - Trước khi xử lý nhiễu: Hình 4.5 Dạng sóng và phổ của tín hiệu bị nhiễu xe hơi với SNR = 10dB - Sau khi xử lý triệt nhiễu bằng thuật toán Spectral Subtraction Hình 4.6 Dạng sóng và spectrogram của tín hiệu sau khi xử lý nhiễu xe hơi bằng SS với SNR = 10dB. - Sau khi xử lý bằng thuật toán Wiener filtering Hình 4.7 Dạng sóng và spectrogram của tín hiệu sau khi xử lý nhiễu xe hơi bằng WF với SNR = 10dB. ¾ Nhận xét sơ bộ Sau khi nghe các file âm thanh của tín hiệu sạch, tín hiệu sau khi xử lý nhiễu, dựa trên dạng sóng và spectrogram của tín hiệu sạch, tín hiệu sau khi xử lý triệt nhiễu bằng 2 thuật toán SS và WF, ta có thể đưa ra một số nhận xét như sau · Cả hai thuật toán đều có thể xử lý triệt nhiễu tốt hơn ở môi trường có SNR cao hơn, và xử lý tốt hơn đối với tín hiệu bị nhiễu biến đổi chậm và có phân bố đều. · Cả hai thuật toán đều có tính hiệu quả giống nhau đối với nhiễu ở mức SNR thấp, nhưng đối với môi trường có SNR cao hơn thi thuật toán Wiener xử lý triệt nhiễu tốt hơn. · Nhìn chung thì thuật toán WF xử lý triệt nhiễu tốt hơn so với SS 4.6 Đánh giá chất lượng tiếng nói đã được xử lý 4.6.1 Cơ sở dữ liệu cho việc đánh giá Là 30 câu thoại được ghi âm trong phòng thí nghiệm theo chuẩn của IEEE [32] là tín hiệu thoại sạch. Mỗi câu trung bình khoảng 2s. Nội dung các câu đều có sự cân bằng về mặt ngữ âm nên có thể thấy được sự tác động của thuật toán lên tất cả các âm vị có thể có trong tín hiệu thoại Các tín hiệu thoại đó sau đó được cộng nhiễu vào ( gồm có loại nhiễu có trong thế giới thực, với các tỷ số SNR khác nhau. Như vậy ta đã có sẵn tín hiệu sạch và tín hiệu bị nhiễu theo chuẩn chung. Hai loại nhiễu được dùng là: nhiễu xe hơi (car noise) được dùng làm dữ liệu chính để xử lý và đánh giá, và nhiễu do những người nói xung quanh (babble noise) để kiểm tra tác động của thuật toán trong môi trường nhiễu khác, với các SNR 0dB, 5dB, 10dB, 15dB. Sau khi tăng chất lượng tiếng nói từ các tín hiệu tiếng nói bị nhiễu bằng các thuật toán đã nghiên cứu là SS và WF, có được tín hiệu tiếng nói đã được tăng cường. Như vậy ta có được cơ sở dữ liệu cho việc đánh giá chất lượng của tín hiệu tiếng nói sau khi đã được tăng cường. 4.6.2 Tổng quan về quy trình đánh giá Để đánh giá chất lượng tiếng nói sau khi đã xử lý sử dụng cả hai phương pháp đánh giá dựa trên chất lượng do người nghe cảm nhận được (SE) và đánh giá dựa trên các phép đo thuộc tính của tín hiệu (OE). Trong đồ án này phương pháp đánh giá chính được dùng là OE, SE được dùng làm phương pháp đánh giá bổ sung và được thực hiện bởi các thành viên trong nhóm thực hiện . Do đặc tính của các thuật toán giảm nhiễu được sử dụng trong đề tài là có các thống số ảnh hưởng đến cách thức xử lý nếu chỉnh các thông số này ta sẽ có các kết quả khác nhau có thể tốt, có thể xấu đối với một file âm thanh. Để có thể có các thông số tốt nhất và có các nhận xét về tính ổn định, thuật toán tốt hay xấu ta phải thực hiện quá trình tinh chỉnh thông số để được các kết quả khác nhau từ đó so sánh và đưa ra các thông số tối ưu nhất có thể. Quá trình này là thực hiện đánh giá thuật toán. Các thuật toán giảm nhiễu Tín hiệu sạch  Đánh giá OE Tiếng nói đã đợc giảm nhiễu  Đánh giá SE Nhận xét Chỉnh sửa các thông số của thuật toán giảm nhiễu Hình 4.8 Quy trình thực hiện đánh giá 4.6.3 Kiểm tra độ tin cậy của các phương pháp đánh giá Các đánh giá OE được dùng là : SNRseg, IS, LLR, WSS. Kiểm tra độ ổn định của các phương pháp đánh giá trên bằng cách so sánh tín hiệu tiếng nói bị nhiễu xe hơi và nhiễu người nói xung quanh chưa được xử lý với tín hiệu sạch Hình 4.9. Đồ thị kiểm tra độ ổn định của đánh giá OE đối với nhiễu xe hơi Hình 4.10. Đồ thị kiểm tra độ ổn định của đánh giá OE đối với nhiễu người nói xung quanh Kết quả kiểm tra cho thấy ¾ Đối với đánh giá SNRseg đồ thị đi lên theo chiều tăng dần của SNR ¾ Đối với đánh giá LLR, IS và WSS thì đồ thị có hướng đi xuống và variance cũng giảm dần theo chiều tăng dần của SNR chứng tỏ phổ của tín hiệu có SNR cao gần với phổ tín hiệu sạch hơn Qua kiểm tra thấy được các phương pháp đánh giá trên đều ổn định và đủ tin cậy để thực hiện đánh giá đối với các tín hiệu tiếng nói đã qua xử lý. 4.6.4 Thực hiện đánh giá Trong quá trình nghiên cứu và triển khai thuật toán ta nhận thấy các thông số sau ảnh hưởng lớn đến thuật toán: - NoiseMargin :là ngưỡng để nhận biết nhiễu trong VAD .Mặc định của thuật toán Noise margin sẽ là 3db. - IS :hệ số chỉ thời gian không có tiếng nói đầu tiên trong mỗi file âm thanh được dùng để tính toán nhiễu ban đầu. Do khi kiểm tra những đoạn im lặng ban đầu trong các file sạch ta nhận thấy rằng đối với từng file thì từ 0.15s đến 0.2s là những đoạn im lặng.Ta lựa giá trị IS là 0.2 - Đối với thuật toán WF thì ta có thêm hệ số alpha là hệ số làm trơn trong phương pháp ước lượng tỉ số Priori SNR. -Đối với thuật toán SS thì có hệ số Gramma là hệ số quyết định nhiễu sẽ được trừ theo biên độ hay năng lượng. Ta chọn giá trị Gramma là 1 tức là thuật toán Subtraction sẽ trừ nhiễu theo biên độ. 4.6.4.1 Đánh giá thuật toán với các hệ số dự đoán ban đầu Hệ số IS=0.2, NoiseMargin=3 ¾ Đánh giá OE Sau khi thực hiện thuật toán SS và WF với các thông số alpha=0.9, gamma=1, NoiseMargin=3,IS=0.2 ta có đồ thị của đánh giá bằng SNR, LLR, IS, WSS như sau Hình 4.11 Đồ thị đánh giá Objective với hệ số IS=0.2, NoiseMargin=3 Theo đồ thị ta có các nhận xét như sau : Đối với thông số đánh giá SNR cho ta thấy tỉ số SNR đã có tăng hơn so với file chưa xử lý. Chứng tỏ thuật toán đã loại trừ môt phần nhiểu ra khỏi file sạch. Nhưng đối với so sánh IS, LLR, WSS thì ta lại thấy file chưa xử lý lại có kết quả tốt hơn file đã xử lý. Do đánh giá IS, LLR, WSS là so sánh khoảng cách phổ giữa file đã xử lý và file sạch rồi tính giá trị trung bình nên ta có thể dự đoán là năng lượng của file đã xử lý lệch rất nhiều với file sạch có thể do thuật toán tồi hoặc là năng lượng tín hiệu sạch bị nén một phần . ¾ Đánh giá SE Sau khi kiểm tra các file đầu ra bằng phương pháp nghe thử ta có các nhận xét sau đây: Một số file đầu ra của các thuật toán SS và WF có mức độ nén nhiễu khác cao dẫn tới việc mất một phần tiếng nói. ¾ Kết luận và tối ưu các thông số cho thuật toán VAD Qua các nhận xét về đánh giá OE và SE ta rút ra kết luận như sau: Do thuật toán VAD với các thông số đề ra là IS=0.2 và NoiseMargin=3 là không tốt nên một phần âm thanh bị ước lượng là nhiễu nên đã bị thuật toán nén đi dẫn tới việc mất năng lượng của phần âm thanh sạch. Đối với thông số IS ta phải thay đổi như sau : Do đoạn lặng trong file sạch chỉ nằm trong khoảng 0.15s đến 0.2s. Nếu ta để 0.2 là quá lớn đối với một sô file nên một phần năng lượng tiếng nói trong những file nay sẽ được thuật toán VAD xem là nhiễu vì thế một phần tiếng nói sẽ bị loại bỏ. Đó là một hạn chế của thuật toán VAD được dùng trong đề tài : giữ cứng giá trị IS( đoạn im lặng) để cài đặt nhiễu là không phù hợp cho tất cả mọi file âm thanh. Đối với thông số NoiseMargin: Vì ta chọn mức ngưỡng để nhận biết nhiễu là 3dB là khá lớn nên tương tự như giá trị IS với mức ngưỡng như vậy một phần tín hiệu sạch sẽ bị loại bỏ do khác gần với nhiễu dù IS có tối ưu thế nào đi nữa. Qua thực nghiệm ta có hệ số NoiseMargin tối ưu là 2. Đó là giá trị mà tín hiệu sạch không bị ước lượng là nhiễu. Vậy các giá trị tối ưu cho thuật toán VAD là : hệ số IS phải điều chỉnh lại là 0.15s, hệ số NoiseMargin là 2. Hệ số IS=0.15 ,hệ số NoiseMargin=2 ¾ Đánh giá OE Sau khi thuật hiện lại thuật toán SS và WF với hệ số IS=0.15,hệ số NoiseMargin=2 ta có đồ thị đánh giá IS, SNR, WSS, LLS như sau : Hình 4.12 Đồ thị đánh giá Objective với hệ số IS=0.15, NoiseMargin=2. Ta nhận thấy thông số SNR tương tự như trường hợp IS = 0.2 và NoiseMargin=2. Nhưng ta các giá trị LLR và IS của so sánh tín hiệu đã xử lý bằng SS và WF đã giảm, trong đó giá trị IS đã giảm đáng kể.Đặc biệt với thuật toán SS giá trị IS đã xuống dưới ngưỡng của file nhiễu. Điều đó chứng tỏ các thông số này thật sự tốt. Nhưng các giá trị IS còn rât lớn đối với thuật toán WF và các mức SNR 0dB và 10dB và các giá trị IS của thuật toán Wiener vẫn còn nằm trên giá trị IS của file chưa xử lý và file sạch. ¾ Đánh giá SE Sau khi nghe thử các file đầu ra của thuật toán SS và thuật toán WF. Ta nhận thấy thuật toán SS thật sự làm viêc tốt đã hạ được mức nhiễu của các file âm thanh. Nhưng đối với thuật toán WF mặc dù đã hạ được mức nhiễu của các file âm thanh nhưng một số file vẫn bị mất tiếng nói điều đó chứng tỏ hệ số của thuật toán WF chưa tốt. ¾ Kết luận Kết hợp giữa nhận xét trong OE và SE ta có kết luận là với hệ số IS=0.15 và NoiseMargin=2 thì thuật toán VAD làm việc thật sự tối ưu cho nhiễu xe hơi. Và hệ số của thuật toán Wiener chưa tối ưu đó chính là hệ số alpha. 4.6.4.2 Tối ưu hệ số alpha cho thuật toán WF Ta đánh giá hệ số alpha cho thuật toán WF qua các trường hợp hệ số alpha=0.5, 0.8,0.9 với IS=0.15 và NoiseMargin = 2 để chọn ra trường hợp tốt nhất. ¾ Đánh giá objective Hình 4.14 Đồ thị đánh giá objective với hệ số alpha=0.5, 0.8,0.9 với IS=0.15 và NoiseMargin = 2 Qua đồ thị SNR ta nhận thấy hệ số alpha càng lớn thì mức nhiễu bị nén càng lớn (tỉ số SNR lớn). Qua đồ thị IS ta thấy hệ số alpha càng nhỏ thì tác động vào file tỉ số SNR càng lớn càng tốt. Giá trị alpha=0.9 tác động vào file có SNR=10 dB cho ra file output có khoảng cách phổ xa hơn so với file sạch và file nhiễu. Còn lại các giá trị alpha khác và alpha=0.9 với các mức file nhiễu có tỉ số SNR khác đều cho ra kết quả tốt hơn so với file sạch và file nhiễu.Và hệ số alpha bằng 0.5 có vẻ rất tốt trên đồ thị is đặc biêt là với file nhiễu có tỉ số SNR=15dB tác động rất ổn định (variant nhỏ). ¾ Đánh giá subjective Qua việc kiểm tra subjective ta nhận thấy với hệ số alpha=0.5 tác động rất ổn định và tốt với file nhiễu có mức SNR=15dB cho ra file rất sạch. Nhưng với các mức dB khác thì ko tốt bằng so với các hệ số alpha khác, nhiễu còn tương đối nhiều.Đối với hệ số alpha là 0.9 thì với mức file nhiễu có SNR=10dB tác động không tốt, một số file cả tín hiệu sạch cũng bị nén. ¾ Kết luận Qua các nhận xét về đánh giá SE và OE ta rút ra kết luận là hệ số alpha=0.8 là hệ số tối ưu nhất cho tất cả các trường hợp có thể nó nén nhiễu không nhiều bằng hệ số alpha nhưng không nén luôn tín hiệu sạch, bảo đảm tín hiệu vẫn còn nghe tốt, nhiễu bị hạ xuống tương đối nhiều. Ta có thêm nhận xét về cách đánh giá OE là không phải lúc nào cũng hoàn toàn chính xác như đối với hệ số alpha=0.5 trên đồ thị IS nó là tốt nhất nhưng với việc kiểm tra bằng SE thì nó chỉ tốt nhất trong trường hợp 15dB hay đối với đồ thị SNR thì hệ số alpha tốt nhất nhưng có một số trường hợp tín hiệu sạch đã bị nén luôn. 4.6.4.3 Hệ số gamma cho thuật toán SS Vì thuật toán SS là thuật toán trừ nhiễu nên ta có 2 cách trừ nhiễu là trừ theo năng lượng và trừ theo biên độ nên ta cung cấp hệ số gamma nếu gamma=1 thì trừ theo biên độ gamma =2 thì trừ theo năng lượng. Sau đây ta sẽ đánh giá và tìm ra cách trừ nào là tốt nhất( gamma=1 hay 2). ¾ Đánh giá OE Hình 4.15 Đồ thị đánh giá objective với hệ số gamma = 1 và gamma = 2. Ta nhận thấy đối với cả thông số SNR và IS thì hệ số gamma=2 tức là trừ theo năng lượng đều tốt hơn ngoại trừ đối với file nhiễu có SNR là 10dB.Và gamma=1 hay gamma = 2 đều đưa ra đồ thị tốt hơn đồ thị giữa file nhiễu với file sạch ¾ Đánh giá SE Sau khi kiểm tra SE ta nhận thấy rằng đối với hệ số gamma=2 tức là trừ theo năng lượng thì nhiễu bị nén rất ít, file đầu ra không tốt bằng hệ số gamma=1. ¾ Kết luận Sau khi so sánh OE và SE ta có kết luận là mặc dù trên đồ thị phản ánh hệ số gamma=2 tốt hơn nhưng trên thực tế thì hệ số gamma=1 mới tốt hơn.Chứng tỏ việc đánh giá OE như nói ở trên không phải lúc nào cũng đúng. Ta chọn hệ số gamma tối ưu là 1. 4.6.4.4 Đánh giá thuật toán sau khi đã tối ưu Sau khi thực hiện một loạt các hệ số thử nghiêm ta chọn ra hệ số tối ưu là : -Thuật toán VAD: hệ số IS=0.15, NoiseMargin = 2. -Thuật toán WF hệ số alpha=0.8. -Thuật toán SS trừ theo biên độ. Và việc đánh giá OE chỉ đánh giá về mặt toán không phải lúc nào cũng đúng , đánh giá OE phải đi kèm với đánh giá SE. Hình 4.16 Đồ thị đánh giá với IS=0.15 NoiMargin= 2 và alpha = 0.8 cho thuật toán WF, gama=1 cho thuật toán SS. 4.6.4.5 Đánh giá độ ổn định của thuật toán trong môi trường nhiễu khác ¾ Đánh giá OE Thực hiện nghe đối với tín hiệu đã qua xử lý thấy rằng một số file tín hiệu có những đoạn chỉ nghe được nhiễu chứ không nghe được tiếng nói. Điều này được giải thích là do nhiễu người nói có năng lượng nhiễu tương đương với năng lượng tiếng nói, trong một số file thì tín hiệu tiếng nói có mức năng lượng thấp hơn mức năng lượng của nhiễu nên đoạn tiếng nói đó bị trừ mất chỉ còn lại nhiễu. ¾ Đồ thị Áp dụng các thông số tối ưu đối với nhiễu xe hơi cho nhiễu người nói xung quanh có đồ thị đánh giá như sau Hình 4.17 Đồ thị đánh giá OE với nhiễu người nói xung quanh. ¾ Nhận xét Nhận xét theo đồ thị đối với cả bốn phép đánh giá ta thấy đối với nhiễu người nói xung quanh thì SS có vẻ xử lý tốt hơn WF. Nhưng đối với cả ba phương pháp đánh giá đầu tiên thì cả ba giá trị WSS, LLR, IS của các tín hiệu đã được xử lý so với tín hiệu sạch lại không tốt bằng giá trị của tín hiệu nhiễu chưa xử lý so với tín hiệu sạch (so sánh của tín hiệu đã xử lý có giá trị lớn hơn). Riêng với phép đánh giá IS ta thấy thuật toán xử lý nhiễu có tác động tốt đối với nhiễu 0dB và 5dB. Bên cạnh đó variant còn lớn vì có một số file có giá trị so sánh lớn hơn giá trị của các file khác rất nhiều (điều này cũng xảy ra đối với car noise) được thể hiện trong bảng giá trị IS [matlab file]. Lý giải cho điều này là do một số tín hiệu bị nhiễu đột biến. ¾ Đánh giá SE Khi thực hiện nghe đối với các file âm thanh bị nhiễu người nói xung quanh được xử lý bằng SS và WF thì có một số đoạn tiếng nói bị mất, chỉ nghe được nhiễu chứ không nghe được tiếng nói. Điều này được lý giải là do nhiễu người nói xung quanh có mức năng lượng tương đương với mức năng lượng của tiếng nói nên một số file âm thanh có đoạn tiếng nói có mức năng lượng thấp hơn mức năng lượng của nhiễu thì tiếng nói đó sẽ bị trừ mất chỉ còn lại nhiễu. ¾ Nhận xét chung Khi đem các thông số tối ưu để xử lý nhiễu xe hơi áp dụng với người nói xung quanh thì kết quả không tốt. Đối với nhiễu người nói xung quanh thì thuật toán SS tác động tớt hơn WF. 4.6.5 Kết luận chương Qua kết quả đánh giá bằng OE và SE đưa ra được kết luận là : - Đối với từng loại nhiễu khác nhau thì tác động của các thuật toán tăng cường là khác nhau. - Đối với từng mức nhiễu khác nhau thì thuật toán cũng tác động cũng khác nhau. TÀI LIỆU THAM KHẢO [1]. Ramabadran, T.,Ashley, J., and McLaughin, M.(1997), Background noise suppression for speech enhancement and coding, Proc. IEEE Workshop Speech Coding Telecommun. [2]. Ths.Hoàng Lê Uyên Thục, Giáo trình xử lý tín hiệu số, Đại học Bách Khoa – Đại học Đà Nẵng. [3].Hu, Y. and Loizou, P(2006), Subjective comparison of speech enhancement algorithms, Proc. IEEE Int.Conf. Acoust. Speech Signal Process, I. [4]. Philippos C.Loizou, Speech Enhancement Theory and Practice,pp. 2-7. [5]. Long, M. (2005), Dinner Conversation (An oxymoron?), Acoustics Today,l(1), pp. 25-27. [6]. Lombard, E.(1911), Le signe de lelevation de la voix, Ann. Mal. Oreil. Larynx.,37, 101-119. [7]. Nguyễn Quốc Trung, Xử lý tín hiệu số - tập 1, NXB Khoa học kĩ thuật. [8]. Lim, J. and Oppenheim, A.V.(1979), Enhancement and bandwidth compression of noisy speech, Proc. IEEE, 67(12),pp. 1586-1604. [9]. Weiss, M., Aschkenasy, E., and Parsons, T.(1974), Study and the development of the INTEL technique for improving speech intelligibility, Technical Report NSC-FR/ 4023. [10]. Boll, S.F. (1979), Suppression of acoustic noise in speech using spectral subtraction, IEEE Trans, Acoust. Speech Signal Process.,27(2), 113-120. [10]. Philippos C.Loizou, Speech Enhancement Theory and Practice,pp. 46-57. [11] “Methods for Subjective Determination of Transmission Quality”, ITU_T Recommendation P.800, August 1996. [12] Philipos C.Loizou, “Speech Enhancement Theory and Practice”, CRC Press, Taylor and Francis Group. [13] Friedrich Schafer, “Artificial Bandwidth Extension of Narrowband Speech”, Signal Processing and Speech Communication Lab, Technical University Graz. [14] Hansen J. and Pellon B. , “An effective quality evaluation protocol for Speech Enhancement algorithms”, Proc. Int Conf. Spoken Language Process, 1998. [15] [16] Beey Y. , Shpiro Z. , Simchony T. , Shatz L. and Piasetzky J., “An efficient variable_bit_rate_low_delay (VBR_LP_CELP) code” , New York, Marcel Pekker, 1990. [17] Yi Hu and Philipos C. Loizou, “Evaluation of Objective Quality Measures for Speech Enhancement”, IEEE. [18] Klatt D., “Prediction of perceived phonetic distance from critical band spectra”, Proc IEEE Int. Conf. Acoust. Speech Signal Process. [19] Kitawaki N., Nagabuchi H., and Itoh K., “Objective Evaluation for low bit_rate Speech Coding systems”, IEEE J, Sel. Areas Commun. [20] Quackenbush S., Barnwell T. and Clements M., “Objective Measure of Speech Quality”, Englewood Cliffs NJ: Prenticư Hall. [21]. Boll, S.F(1979), Suppression of acoustic noise in speech using spectral subtraction, IEEE Trans. Acoust. Speech Signal Process., 27(2), 113-120. [22]. Paliwal, K. and Alsteris, L.(2005), On the usefulness of STFT phase spectrum in human listening tests, Speech Commun., 45(2), 153-170. [23]. Weiss, M., Aschkenasy, E., and Parsons, T., (1974), Study and the Development of the INTEL Technique for Improving Speech Intelligibility, Technical Report NSC-FR/4023, Nicolet Scientific Corporation. [24]. Deller, J., Hansen, J.H.L., and Proakis, J. (2000), Discrete –time Processing of Speech Signals, New York : IEEE Press. [25]. Guastafsson, H., Nordholm, S., and Claesson, I.(2001), Spectral subtraction using reduced delay convolution and adaptive averaging, IEEE Trans. Speech Audio Process., 9(8), 799-807. [26]. Philippos C.Loizou, Speech Enhancement Theory and Practice,pp. 100. [27]. Paliwal, K. and Alsteris, L.(2005), On the usefulness of STFT phase spectrum in human listening tests, Speech Commun., 45(2), 153-170. [28]. Lim, Oppenheim, Speech Enhancement Using a Soft-Decision noise Suppression EEE Trans. Acoustics, Speech and Signal Processing, vol. assp-28, no. 2, april 1980. [29]. Y. Ephraim and D. Malah, Speech Enhancement Using a Minimum Mean- Square Error Short-Time Spectral Amplitude Estimator, IEEE Trans. Acoustics, Speech and Signal Processing, vol. 32, no. 6, pp. 1109–1121, December 1984. [30]. P. Scalart and J. Vieira-Filho, “Speech enhancement based on a priori signal to noise estimation,” in Proc. 21st IEEE Int. Conf. Acoust. Speech Signal Processing, Atlanta, GA, May 1996, pp. 629–632. [31]. Dominic K. C. Ho, Speech Enhancement : concept and methodology, Demo prepared by Tong Wang, University of Missouri-Columbia. [32] KẾT LUẬN ĐỒ ÁN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI Chất lượng của tiếng nói bị suy giảm do sự tác động của nhiễu trong môi trường xung quanh là một vấn đề quan trọng cần phải được giải quyết. Việc tìm ra các phương pháp để triệt nhiễu và giảm nhiễu trong tiếng nói luôn luôn đề tài được quan tâm rất nhiều. Trong các dịch vụ truyền thông với phương tiện ngôn ngữ là tiếng nói thì việc tăng cường, cải thiện chất lượng tiếng nói đã bị nhiễu là rất thiết, giúp cho người nghe có thể nghe rõ và đúng những gì người nói đã nói. Đồ án đã thực hiện được các vấn đề : - Tìm hiểu và nghiên cứu các phương pháp cải thiện chất lượng tiếng nói, nhưng tập trung vào 2 thuật toán đã có trong Speech enhancement là : Spectral Subtraction và Wiener Filtering - Xây dựng được chương trình thực hiện xử lý nhiễu trong các file âm thanh đã bị nhiễu dựa trên 2 thuật toán : Spectral Subtraction và Wiener Filtering. - Thực hiện và đánh giá tính hiệu quả của 2 thuật toán trong các môi trường nhiễu và mức độ nhiễu khác nhau, từ đó đưa ra các biện pháp tối ưu hóa các thuật toán. Kết quả đạt được cho thấy WF là thuật toán giảm nhiễu tốt hơn SS. Các thuật toán giảm nhiễu có hiệu quả khác nhau đối với từng môi trường nhiễu khác nhau Tuy nhiên đồ án vẫn chưa giải quyết hết được các vấn đề trong Speech enhancement nên hướng phát triển của đề tài trong tương lai sẽ là : - Tìm hiểu, nghiên cứu và xây dựng các chương trình thực hiện xử lý nhiễu trong tiếng nói dựa trên các thuật toán khác trong Speech enhancement. - Nghiên cứu và đưa ra thuật toán mới về xử lý nhiễu và triệt nhiễu trong Speech enhancement. Phát triển chương trình đã thực hiện đối với các dịch vụ ứng dụng thời gian thực và các dịch vụ trong lĩnh vực truyền thông đa phương tiện như : thoại, âm nhạc, truyền hình hội nghị. PHỤ LỤC Toàn bộ mã nguồn của chương trình thực hiện được lưu trữ trên đĩa CD đính kèm.

Các file đính kèm theo tài liệu này:

  • docXu ly nang cao chat luong tieng noi.doc
  • pdfXu ly nang cao chat luong tieng noi.pdf
Luận văn liên quan