Báo cáo: Lab xử lý tiếng nói : NÂNG CAO CHẤT LƯỢNG TIẾNG NÓI

13 507 0
Báo cáo: Lab xử lý tiếng nói : NÂNG CAO CHẤT LƯỢNG TIẾNG NÓI

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG --- oOo --- BÁO CÁO LAB XỬ LÝ TIẾNG NÓI ĐỀ TÀI NÂNG CAO CHẤT LƯỢNG TIẾNG NÓI Giáo viên hướng dẫn : TS. PHẠM VĂN Học viên thực hiện : KS. NGUYỄN TẤN PHONG KS. CHÂU VĂN THÀNH KS. VÕ THỊ CẨM NHUNG KS. TRẦN XUÂN PHƯƠNG Lớp : Cao học Kỹ thuật điện tử Khóa học : 02-2009 Báo cáo: Lab xử lý tiếng nói Đà nẵng, tháng 12/2009 Nâng cao chất lượng tiếng nói liên quan đến việc cải thiện cảm nhận đối với tiếng nói bị suy giảm chất lượng do sự có mặt của nhiễu trong tiếng nói. Mục đích của nâng cao chất lượng tiếng nói là sự cải thiện chất lượng và tính dễ nghe của tiếng nói đã bị suy giảm do nhiễu. Các thuật toán nâng cao chất lượng tiếng nói làm giảm và nén nhiễu nền đến một mức độ nào đó và nó được xem như là các thuật toán nén nhiễu. Ở đây xét 2 thuật toán cải thiện tiếng nói là: trừ phổ và Wiener Filter. 1. Nguyên lý và lưu đồ thuật toán Phân tích tín hiệu thành các frame FFT Hàm xử lý giảm nhiễu IDFT Overlap và Ước lượng nhiễu Ước lượng, cập nhật nhiễu nhiễu FFT |.|γ Y(ω) + Pha của tín hiệu IFFT Trừ phổ là thuật toá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 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. Với quá trình xử lý hiệu đơn giản này, nếu không được thực hiện một cách cẩn thận thì tiếng nói sau xử lý 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. Giả thiết rằng y[n] là tín hiệu vào đã bị nhiễu, nó bằng tổng của tín hiệu sạch x[n] và tín hiệu nhiễu d[n] (ở đây ta xét trong một cửa sổ): y[n] = x[n] + d[n] Nhóm 3 – CHKTĐT 02-2009 Báo cáo: Lab xử lý tiếng nói Thực hiện biến đổi Fourier rời rạc cả 2 vế, ta được: Chúng ta có thể biểu diễn Y(ω ) dưới dạng phức như sau: Y (ω) = X (ω) + D(ω) Y = Y e ( ) | ( )| ω ω là pha của tín hiệu đã bị nhiễu. y j D = D e φ ω ω ω d ( ) | ( )| j φ ω ( ) y )| là biên độ phổ, và φ (ω) Phổ của tín hiệu nhiễu D(ω ) có thể được biểu diễn dạng biên độ và pha: Biên độ phổ của nhiễu |D(ω )| 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 φ (ω) ảnh hưởng đến tính dễ nghe của tiếng nói, 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 Y D e ω ω ω ( ) j y = − D | là biên độ phổ ước lượng của nhiễu được tính trong khi không có tiếng nói để 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 (ω) Cần chú ý rằng biên độ phổ của tín hiệu đã được tăng cường là | X(ω)|=|Y(ω)| − | D(ω)| 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(ω )| 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ẽ Y D Y D X ( )   ( ) | ( )| , | ( )| | ( )| ω ω ω ω ω  =  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 | Thuật toán trừ phổ đố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 2 2 2 ( ) ( ) ( ) ( ). ( ) ( ) ( ) Y X D X D X D ω ω ω ω ω ω ω * * ∗ D và X (ω).D(ω) 2}, E{ X( = + + + ( ) ( ) 2.Re{ ( ) ( )} 2 2 X D X D = + + ω ω ω ω ∗ ω ∗ D } và E{ X (ω).D(ω) ). (ω) 2} được ước lượng khi không có tiếng nói hoạt động và được | * không thể tính được một cách trực tiếp và xấp xỉ ∗ }, khi đó E[.] là toán tử kỳ vọng. Bình thường thì E{| D(ω) Nhóm 3 – CHKTĐT 02-2009 Báo cáo: Lab xử lý tiếng nói . 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( công suất của tín hiệu sạch có thể tính được như sau ω ). (ω) ^ | X (ω)| =|Y(ω)| − | D(ω)| ∧ ∗ D } và E{ X (ω).D(ω) 2 2 ∗ ^ 2 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 2 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 | (ω)| ), có sử dụng pha của tín hiệu tiếng nói bị nhiễu. | (ω)| X không được đảm bảo luôn là một số dương, nhưng có ∧ X (bằng cách lấy căn bậc hai của ^ | X (ω)| = H (ω)|Y(ω)| ( ) 1 H = − ω 2 2 2 ^ | ( )| D | ( )| Y ω 2 ω 2

B? GIÁO D?C VÀ ĐÀO T?O Đ?I H?C ĐÀ N?NG oOo BÁO CÁO LAB XỬ TIẾNG NÓI Đ? TÀI NÂNG CAO CHẤT LƯỢNG TIẾNG NÓI Giáo viên h??ng d?n : TS. PH?M VĂN TU?N H?c viên th?c hi?n : KS. NGUY?N T?N PHONG KS. CHÂU VĂN THÀNH KS. VÕ TH? C?M NHUNG KS. TR?N XUÂN PH? ?NG L?p : Cao h?c K? thu?t đi?n t? Khóa h?c : 02-2009 Đà nẵng, tháng 12/2009 Báo cáo: Lab x? ti?ng nói Nâng cao chất lượng tiếng nói liên quan đến việc cải thiện cảm nhận đối với tiếng nói bị suy giảm chất lượng do sự có mặt của nhiễu trong tiếng nói. Mục đích của nâng cao chất lượng tiếng nói là sự cải thiện chất lượng và tính dễ nghe của tiếng nói đã bị suy giảm do nhiễu. Các thuật toán nâng cao chất lượng tiếng nói làm giảm và nén nhiễu nền đến một mức độ nào đó và nó được xem như là các thuật toán nén nhiễu. Ở đây xét 2 thuật toán cải thiện tiếng nói là: trừ phổ và Wiener Filter. 1. Nguyên và lưu đồ thuật toán 1.1. Sơ đồ chung 1.1.1. Trừ phổ Trừ phổ là thuật toá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 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. Với quá trình xử hiệu đơn giản này, nếu không được thực hiện một cách cẩn thận thì tiếng nói sau xử 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. a. Trừ phổ biên độ Giả thiết rằng y[n] là tín hiệu vào đã bị nhiễu, nó bằng tổng của tín hiệu sạch x[n] và tín hiệu nhiễu d[n] (ở đây ta xét trong một cửa sổ): y[n] = x[n] + d[n] Thực hiện biến đổi Fourier rời rạc cả 2 vế, ta được: )()()( ωωω DXY += Nhóm 3 – CHKTĐT 02-2009 2 Phân tích tín hi?u thành các frame FFT ? ?c l??ng nhi?u Hàm x? gi?m nhi?u Tín hi?u b? nhi?u IDFT Overlap và adding Tín hi?u s?ch Tín hi?u b? nhi?u FFT |.| γ ? ?c l??ng, c?p nh?t nhi?u Pha c?a tín hi?u |.| 1/ γ IFFT Tín hi?u sau khi tăng c??ng + Y( ω ) - γ ω |)(| ^ D Báo cáo: Lab x? ti?ng nói Chúng ta có thể biểu diễn Y( ω ) dưới dạng phức như sau: )( |)(|)( ωφ ωω y j eYY = Khi đó |Y( ω )| là biên độ phổ, và )( ωφ y là pha của tín hiệu đã bị nhiễu. Phổ của tín hiệu nhiễu D( ω ) có thể được biểu diễn dạng biên độ và pha: )( |)(|)( ωφ ωω d j eDD = Biên độ phổ của nhiễu |D( ω )| 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 )( ωφ y , vấn đề này không ảnh hưởng đến tính dễ nghe của tiếng nói, 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: )( |])(||)([|)( ωφ ωωω y j eDYX ∧∧ −= ở đây | )( ω ∧ D | 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 . Cần chú ý rằng biên độ phổ của tín hiệu đã được tăng cường là |)(||)(||)(| ωωω DYX −= , 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( ω )| 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:      ≠ >− = ,0 |)(||)(|,|)(|)( )( ^^ ωωωω ω DYDY X Phương pháp xử bằng chỉnh lưu bán sóng là một trong những cách để đảm bảo cho |X( ω )| không bị âm. b. Trừ phổ công suất Thuật toán trừ phổ đố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( ω )|, ta được: { } )()(Re.2)()( )()()(.)()()()( * 22 ** 222 ωωωω ωωωωωωω DXDX DXDXDXY ++= +++= | )( ω D | 2 , X( ω ). )( ω ∗ D và )().( ωω DX ∗ không thể tính được một cách trực tiếp và xấp xỉ bằng E{| )( ω D | 2 }, E{ X( ω ). )( ω ∗ D } và E{ )().( ωω DX ∗ }, khi đó E[.] là toán tử kỳ vọng. Bình thường thì E{| )( ω D | 2 } được ước lượng khi không có tiếng nói hoạt động và được biểu thị là | )( ω ∧ D | 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( ω ). )( ω ∗ D } và E{ )().( ωω DX ∗ } xem là 0. Khi đó phổ công suất của tín hiệu sạch có thể tính được như sau 2 ^ 22 ^ |)(||)(||)(| ωωω DYX −= 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ổ Nhóm 3 – CHKTĐT 02-2009 3 Báo cáo: Lab x? ti?ng nói công suất được ước lượng 2 |)(| ω ∧ X 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 (bằng cách lấy căn bậc hai của |)(| ω ∧ X 2 ), có sử dụng pha của tín hiệu tiếng nói bị nhiễu. Ta có công thức: 222 ^ |)(|)(|)(| ωωω YHX = Khi đó: 2 2 ^ |)(| |)(| 1)( ω ω ω Y D H −= Trong thuyết hệ thống tuyến tính, H( ω ) là hàm truyền đạt của hệ thống. Trong thuyết của Speech enhancement, ta xem H( ω ) là hàm độ lợi hay hàm nén. Và H( ω ) là một số thực và luôn luôn dương, và có giá trị nằm trong phạm vi 1)(0 ≤≤ ω H . 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( ω ) đượ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. Trường hợp chung thì thuật toán trừ phổ có thể được biểu diễn: ppp DYX |)(||)(||)(| ^^ ωωω −= 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. 1.1.2 Wiener Filter Thuật toán trừ phổ 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ín 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 giữa tín hiệu mong muốn và tín hiệu ước lượng. Nguyên cơ bản 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 x[n] và tín hiệu nhiễu d[n] (ở đây ta xét trong một cửa sổ): Nhóm 3 – CHKTĐT 02-2009 4 Tín hi?u b? nhi?u FFT |.| 2 ? ?c l??ng, c?p nh?t nhi?u Pha c?a tín hi?u |.| 1/2 IFFT Tín hi?u sau khi tăng c??ng )( ω Y Priori SNR Hàm x? gi?m nhi?u WF SNR pri 2 ^ |)(| ω D Báo cáo: Lab x? ti?ng nói y[n]=x[n]+d[n] Thực hiện biến đổi Fourier rời rạc cả 2 vế,ta được )()()( ωωω DXY += Chúng ta có thể biểu diễn Y( ω ) dưới dạng phức như sau: )( |)(|)( ωφ ωω y j eYY = Khi đó |Y( ω )| là biên độ phổ, và )( ωφ y là pha của tín hiệu đã bị nhiễu. Phổ của tín hiệu nhiễu D( ω ) có thể được biểu diễn dạng biên độ và pha: )( |)(|)( ωφ ωω d j eDD = Biên độ phổ của nhiễu |D( ω )| 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 )( ωφ y , việc làm này không ảnh hưởng đến tính dễ nghe của tiếng nói, 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 )( ω ∧ X từ Y( ω ) bằng một hàm phi tuyến được xác định như sau : )(/)()( ωωω YXG ∧ = )( ω G có thể được áp dụng theo Wiener Filtering: })({})({ })({ )( 22 2 ωω ω ω DEXE XE G + = Đặt Priori SNR và Posteriori SNR như sau: })({ })({ 2 2 ω ω DE XE SNR pri = })({ })({ 2 2 ω ω DE YE SNR post = 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 pri SNR mà trong các hệ thống nâng cao chất lượng giọng nói thì pri SNR 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 pri SNR và post SNR bằng cách cho các thông số thích hợp vào các phương trình sau: )( ˆ )()( ,0))max(SNR-(1)(SNR 1 )( ˆ )( )(SNR 2 11 postprio 2 post ω ωω ααω ω ω ω D YG D Y ii i −− += −= Và chỉ số i [.] để tín hiệu tại khoảng thời gian đang xử lý. Trong phương trình nếu cho hệ số α ta có thể ước lượng được pri SNR bằng post SNR . Trong thực tế hệ số α =0.98 rất tốt cho các tín hiệu có SNR<4dB. Từ các phương trình trên dễ thấy )( ω G theo WF như sau: pri pri SNR SNR G + = 1 )( ω Nhóm 3 – CHKTĐT 02-2009 5 Báo cáo: Lab x? ti?ng nói 1.2 Thuật toán 1.2.1 Trừ phổ (SS) Nhóm 3 – CHKTĐT 02-2009 6 C?p nh?t nhi?u N và NRM V?i khung ti?p theo i=i+1 Kh?i t?o nhi?u (N) (trung bình công su?t nhi?u ban đ?u) Nén tín hi?u X(:,i)=Beta*Y(:,i) Tr? ph? D=YS(:,i)-N Tín hi?u ra X(:,i)=max(D,0); Bi?n đ?i FFT t?ng segment (Y) X = = X = X = S Đ SpeechFlag=0? I<s? khung BEGI N Phân chia tín hi?u đ?u vào thành các segment, s? d?ng c?a s? Hamming Tính pha và biên đ? t?ng segment Gán nhi?u d? NRM=0 Gán tín hi?u ra X=0 H? s? nén Beta=0.03 Tính biên đ? trung bình (YS) V?i khung đ?u tiên i=0 VAD D<NRM? D= min c?a 3 m?u thu?c 3 segment k? nhau (có tr? nhi?u) Đ S Đ S Khôi ph?c tín hi?u đ?y đ? Th?c hiên IFFT và n?i các frame END Báo cáo: Lab x? ti?ng nói 1.2.2. Wiener Filter (WF) Nhóm 3 – CHKTĐT 02-2009 7 Tín hi?u ra X(:,i)=G.*Y(:,i) Kh?i t?o nhi?u (N, LambdaD) Bi?n đ?i FFT t?ng segment (Y) BEGI N Phân chia tín hi?u đ?u vào thành các segment, s? d?ng c?a s? Hamming Tính pha và biên đ? t?ng segment (1/2) alpha=0.99 Gán đ? l?i G=1 Gán tín hi?u ra X=0 SNRpost=Gamma=1 V?i khung đ?u tiên i=0 VAD (B? qua nh?ng khung đ?u) S Đ SpeechFlag=0? C?p nh?t nhi?u N và LambdaD Tính l?i SNRpost Tính SNRpri theo SNRpost Tính đ? l?i G=SNRpri/(1+SNRpri) V?i khung ti?p theo i=i+1 X = X = I<s? khung Đ S Khôi ph?c tín hi?u đ?y đ? Th?c hiên IFFT và n?i các frame END X = = Báo cáo: Lab x? ti?ng nói 2. Kiểm tra thuật toán và đánh giá Mẫu 1: Tín hiệu với SNR=5dB Mẫu 2: Tín hiệu với SNR=15dB Nhóm 3 – CHKTĐT 02-2009 8 Báo cáo: Lab x? ti?ng nói Với các thông số đầu vào như hình trên, ta có các đánh giá như sau: -3 -2 -1 0 1 2 3 Much worse Worse Slightly worse About the same Slightly better Better Much better Mẫu 1 – SS Mẫu 1 – WF Mẫu 2 – SS Mẫu 2 – WF 3. Các thông số ảnh hưởng đến thuật toán 3.1 Đối với phương pháp trừ phổ - SP: Phần trăm dịch của cửa sổ - IS: Khoảng thời gian không có tín hiệu thoại ban đầu. - Gamma: Bằng 1 là trừ phổ biên độ, 2 là trừ phổ công suất. - Beta: Hệ số nén tín hiệu trong vùng không thoại. - NoiseLength: Hệ số xác định nhiễu (xác định mức độ tin tưởng vào nhiễu ước lượng quá khứ hay nhiễu hiện tại) - NoiseMargin: Ngưỡng xác định nhiễu (chọn 2.5dB hoặc 3dB) - Hangover: Số segment nhiễu sau khi cờ SpeechFlag được reset để xác định vùng nhiễu. - Loại cửa số: Sử dụng cửa sổ mặc định là Hamming. * Nhận xét: - Sử dụng cửa số Hamming là tối ưu, so với các cửa sổ khác. - Xác định giá trị IS nằm trong khoảng giá trị từ 0.1 s đến 0.3 s, và với các giá trị này thì nhận thấy kết quả ngõ ra không thay đổi nhiều. - Thay đổi SP với các giá trị từ 0.4 đến 0.6 thì kết quả không thay đổi nhiều. - Nếu Gamma = 2 (trừ phổ công suất) thì ngõ ra bị nhiễu tác động lớn. Chọn Gamma=1. - Thay đổi Beta bằng 0.01 triệt được nhiễu hai đầu tín hiệu nhưng tín hiệu bị méo, với giá trị là 0.05 thì tín hiệu khá tốt. Với giá trị 0.03 thì kết quả tốt nhất. - Noiselength được thay đổi từ 3 đến 10 thì kết quả ngõ ra không thay đổi nhiều. - NoiseMargin: với giá trị bằng 1dB thì tín hiệu ngõ ra gần giống với tín hiệu sạch nhưng vẫn còn nhiễu. Nếu bằng 2 thì đoạn cuối của tín hiệu ngõ ra bị nhiễu lớn. Với giá trị bằng 4 dB thì triệt được nhiễu hai đầu nhưng tín hiệu vẫn còn nhiễu. Với giá trị bằng 5 dB thì một số đoạn tín hiệu bị mất. - Hangover: với giá trị bằng 6 hoặc 4 thì giảm nhiễu đáng kể. Nếu bằng 1 hoặc 2 thì giảm nhiễu nhưng một số đoạn tín hiệu ra bị nén xuống (nghe nhỏ hơn). Tóm lại ta thấy tín hiệu ngõ ra của bộ lọc nhạy nhất với thông số là NoiseMargin. 3.2. Đối với phương pháp Wiener Filter Ngoài các thông số SP, IS, NoiseLength, NoiseMargin, Hangover, cửa số Hamming giống như phương pháp trừ phổ, còn có thêm thông số alpha là h? s? làm tr?n trong ph??ng pháp ??c l??ng t? s? SNR pri . Nhóm 3 – CHKTĐT 02-2009 9 Báo cáo: Lab x? ti?ng nói * Nhận xét: - Sử dụng cửa số Hamming vẫn là lựa chọn tối ưu. - Thay đổi IS với các giá trị từ 0.1 s đến 0.2 s thì nhận được tín hiệu với phần đầu tốt hơn. - Thay đổi SP với các giá trị từ 0.2 đến 0.6 thì kết quả không thay đổi nhiều. - alpha thường chọn 0.99 thì loại bỏ hoàn toàn nhiễu. - Noiselength được thay đổi từ 3 đến 10 thì kết quả ngõ ra không thay đổi nhiều. - NoiseMargin: với giá trị bằng 1dB thì công suất của tín hiệu ngõ ra gần giống với tín hiệu sạch nhưng vẫn còn nhiễu. Nếu bằng 2 thì đoạn cuối của tín hiệu ngõ ra bị nhiễu lớn. Với giá trị bằng 4 dB thì triệt được nhiễu hai đầu nhưng tín hiệu vẫn còn nhiễu. Với giá trị bằng 5 dB thì một số đoạn tín hiệu bị mất. Và tín hiệu tốt nhất khi giá trị này bằng 2.5dB hoặc 3dB. - Hangover: với giá trị bằng 6 hoặc 4 thì giảm nhiễu đáng kể. Nếu bằng 1 hoặc 2 thì giảm nhiễu nhưng một số đoạn tín hiệu ra bị nén xuống (nghe nhỏ hơn). 3.3 Nhận xét chung Sau khi nghe các file âm thanh của tín hiệu sạch, tín hiệu sau khi xử 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ử 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ử triệt nhiễu tốt hơn ở môi trường có SNR cao hơn, và xử 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ử triệt nhiễu tốt hơn. Nhìn chung thì thuật toán WF xử triệt nhiễu tốt hơn so với SS. Ngoài ra, 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. • Đ?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? 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.5 dB. Đó 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.15 s, h? s? NoiseMargin là 2.5 dB. Nhóm 3 – CHKTĐT 02-2009 10 [...].. .Báo cáo: Lab x? ti?ng nói 3.4 Đánh giá Mẫu 1: Tín hiệu với SNR=5dB Mẫu 2: Tín hiệu với SNR=15dB Nhóm 3 – CHKTĐT 02­2009 11 Báo cáo: Lab x? ti?ng nói Sau khi thay đổi các thông số đầu vào thích hợp, ta có các đánh giá như sau: -3 -2 -1 0 1 2 3 Much worse Worse Slightly worse About the same Slightly better Better... toán MMSE cho ra tín hiệu tương đối tốt và ít bị mất tín hiệu Thuật toán này tương tự thuật toán WF chỉ khác phần tính toán độ lợi ở trên Nhóm 3 – CHKTĐT 02­2009 12 Báo cáo: Lab x? ti?ng nói 5 Kiểm tra Mẫu 1: Tín hiệu với SNR=5dB Mẫu 2: Tín hiệu với SNR=15dB Nhóm 3 – CHKTĐT 02­2009 13 ... Đề xuất Thuật toán trừ phổ xử nhiễu không tốt bằng thuật toán WF và nó còn gây ra hiện tượng “musical noise” Còn trong thuật toán WF, do quá trình khử nhiễu tốt nên đối với các tín hiệu gần nhiễu cũng bị triệt nên sẽ bị mất một phần tín hiệu Do đó, dựa vào hai thuật toán trên ta điều chỉ độ lợi G để được phương pháp tối thiểu sai hóa sai lệch trung bình bình phương (MMSE ):   SNR prio  1   

Ngày đăng: 17/05/2014, 15:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan