Đồ án Thuật toán xử lý tiếng nói trong Speech Enhancement và đánh giá tính hiệu quả của thuật toá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

pdf77 trang | Chia sẻ: lylyngoc | Lượt xem: 4336 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đồ án Thuật toán xử lý tiếng nói trong Speech Enhancement và đánh giá tính hiệu quả của thuật toán, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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) Chương 2 : Đánh giá chất lượng tiếng nói SVTH: Nguyễn Thị Ngọc Diệp Trang 37 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] Chương 2 : Đánh giá chất lượng tiếng nói SVTH: Nguyễn Thị Ngọc Diệp Trang 38 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 Chương 2 : Đánh giá chất lượng tiếng nói SVTH: Nguyễn Thị Ngọc Diệp Trang 39 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 2 : Đánh giá chất lượng tiếng nói SVTH: Nguyễn Thị Ngọc Diệp Trang 40 Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 41 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 : 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 Phân tích tín hiệu thành các frame FFT Ước lượng nhiễu Hàm xử lý giảm nhiễu Tín hiệu bị nhiễu IDFT Overlap và adding Tín hiệu sạch Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 42 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 )()()( ωωω DXY += (3.2) Chúng ta có thể biểu diễn Y(ω ) dưới dạng phức như sau: )(|)(|)( ωφωω yjeYY = (3.3) 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: )(|)(|)( ωφωω djeDD = (3.4) 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 Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 43 )(ωφy , 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: )(|])(||)([|)( ωφωωω yjeDYX ∧∧ −= (3.5) ở đâ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 |)(||)(|,|)(|)()( ^^ ωωωωω DYDYX (3.6) 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(ω )| 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(ω )|, ta được: { })()(Re.2)()( )()()(.)()()()( *22 **222 ωωωω ωωωωωωω DXDX DXDXDXY ++= +++= (3.7) Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 44 | )(ω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 −= (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 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. 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: )()()( ^^^^ mrmrmr dd yy xx −= (3.9) Khi đó )(^^ mr xx , )(mryy , )(^^ mr 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: 222 ^ |)(|)(|)(| ωωω YHX = ( 3.10) Khi đó: 2 2 ^ |)(| |)(|1)( ω ω ω Y DH −= (3.11) Trong lý thuyết hệ thống tuyến tính, H(ω ) là hàm truyền đạt của hệ thống. Trong lý thuyết của Speech enhancement, chúng 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 Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 45 phạm vị 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. 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(ω ) 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(ω ) để đá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: ppp DYX |)(||)(||)(| ^^ ωωω −= (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 : 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 Tín hiệu bị nhiễu FFT |.| p Ước lượng, cập nhật nhiễu Pha của tín hiệu |.|1/p IFFT Tín hiệu sau khi tăng cường + )(ωY - pD |)(| ^ ω Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 46 đượ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 )()()( ωωω DXY += (3.14) Chúng ta có thể biểu diễn Y(ω ) dưới dạng phức như sau: )(|)(|)( ωφωω yjeYY = (3.15) 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: )(|)(|)( ωφωω djeDD = (3.16) 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 [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 )(ω ∧ X từ Y(ω ) bằng một hàm phi tuyến được xác định như sau : )(/)()( ωωω YXG ∧ = (3.17) Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 47 )(ωG có thể được áp dụng theo Wiener Filtering [28]: })({})({ })({ )( 22 2 ωω ω ω DESE SE G + = (3.18) Trong đó )(ωsP và )(ωdP là phổ công suất của tin hiệu sạch. Đặt Priori SNR và Posteriori SNR như sau[11]: })({ })({ 2 2 ω ω DE SE SNRpri = (3.19) })({ })({ 2 2 ω ω DE YE SNR post = (3.20) 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 priSNR mà trong các hệ thống nâng cao chất lượng giọng nói thì priSNR 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 priSNR và postSNR bằng cách cho các thông số thích hợp vào các phương trình sau[12]: 21 )()1()()( ϖλωλω t t d t d DPP −+= −∧∧ (3.21) )( })({ 2 ω ω t d post P YE SNR ∧ = (3.22) )( )( 1)()1()( 21^ ω ω βωβω d t t post t pri P S SNRPSNR ∧ − ∧∧ +⎥⎦ ⎤⎢⎣ ⎡ −−= (3.23) Trong đó P[.] là hàm chỉnh lưu bán sóng có dạng như sau: ⎩⎨ ⎧ ≠ > = ,0 0, )( XX XP (3.24) Và và chỉ số t[.] để tín hiệu tại khoảng thời gian đang xử lý. Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 48 Trong phương trình nếu cho hệ số β ta có thể ước lượng được priSNR bằng postSNR . Trong thực tế hệ số β =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 theo WF như sau: pri pri SNR SNR G + = 1 )(ω (3.25) Sơ đồ khối của thuật toán Wiener Filtering: 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í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ử lý giảm nhiễuWF priSNR pD |)(| ^ ω Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 49 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,)/)12cos((.85185.01 −=+− NkNk π (3.27) 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”. N : kích thước của frame m : số lượng frame Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 50 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. Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 51 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 0 )(1)( M i ii YM D ωω (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 : ω ω ω π π π d D YT i i∫ − − = | )( )(| 2 1log20 1 (3.29) Nếu dBT 12−≤ 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 đó. Chương 3 : Thuật toán Spectral Subtraction và Wiener Filtering SVTH: Nguyễn Thị Ngọc Diệp Trang 52 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 SVTH: Nguyễn Thị Ngọc Diệp Trang 53 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 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. 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á Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 54 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. Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 55 4.3 Lưu đồ thuật toán Spectral Subtraction Hình 4.2 Lưu đồ thuật toán SS Tính lại mức nhiễu N End I=I+1;nhập frame tiếp theo Begin Phân chia Frame tín hiệu đầu vào Tinh cong suat nhieu trung binh N ban đầu I=0;Nhập frame đầu tiên VAD X(:,i)=Beta*Y(:,i) D=YS(:,i)-N; % Thực hiện trừ phổ X(:,i)=max(D,0); Y=biến đổi FFT cho các frame X = X = S Đ SpeechFlag==0? S I<number of frame Thực hiên IFFT và nối các frame Đ Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 56 4.4 Lưu đồ thuật toán Wiener Filtering Hình 4.3 Lưu đồ thuật toán WF Tính lại mức nhiễu trung bình End I=I+1;nhập frame tiếp theo Begin Phân chia Frame tín hiệu đầu vào Tinh cong suat nhieu trung bình N ban đầu SpeechFlag==0? I=0;Nhập frame đầu tiên VAD Tính Priori SNR Y=biến đổi FFT cho các frame Tính Gain Function G X(:,i)=G.*Y(:,i);tin hiệu sạch X = X = Đ S Đ Đ I<number of frame Thực hiên IFFT và nối các frame X Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 57 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 Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 58 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. Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 59 • 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ó Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 60 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. 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 Các thuật toán giảm nhiễu Nhận xét Đánh giá SE Đánh giá OE Chỉnh sửa các thông số của thuật toán giảm nhiễu Tiếng nói đã đợc giảm nhiễu Tín hiệu sạch Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 61 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 Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 62 ¾ Đố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 Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 63 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. Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 64 Đố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. Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 65 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 Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 66 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 Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 67 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. Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 68 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. Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 69 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 Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 70 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. Chương 4: Thực hiện và đánh giá các thuật toán SVTH: Nguyễn Thị Ngọc Diệp Trang 71 Đ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. Đồ án tốt nghiệp SVTH: Nguyễn Thị Ngọc Diệp Trang 72 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. Đồ án tốt nghiệp SVTH: Nguyễn Thị Ngọc Diệp Trang 73 [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. Đồ án tốt nghiệp SVTH: Nguyễn Thị Ngọc Diệp Trang 74 [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] Đồ án tốt nghiệp SVTH: Nguyễn Thị Ngọc Diệp Trang 75 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ị. Đồ án tốt nghiệp SVTH: Nguyễn Thị Ngọc Diệp Trang 76 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:

  • pdfdo_an_tot_nghiep_xu_ly_tieng_noi_9417.pdf
Luận văn liên quan