Đề tài Xử lý tiếng nói qua Thuật toán Spectral Subtraction và Wiener Filtering

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 12

1.1 Giới thiệu chương 12

1.2 Nâng cao chất lượng tiếng nói là gì ? 12

1.3 Lý thuyết về tín hiệu và nhiễu 14

1.3.1 Tín hiệu, hệ thống và xử lý tín hiệu 14

1.3.1.1 Tín hiệu 14

1.3.1.2 Nguồn tín hiệu 14

1.3.1.3 Hệ thống và xử lý tín hiệu 15

1.3.1.4 Phân loại tín hiệu 15

1.4 Lý thuyết về nhiễu 16

1.4.1 Nguồn nhiễu 16

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 18

1.5 Tín hiệu rời rạc theo thời gian 19

1.5.1 Tín hiệu bước nhảy đơn vị 20

1.5.2 Tín hiệu xung đơn vị 20

1.5.3 Tín hiệu hàm mũ 20

1.5.4 Tín hiệu hàm sin rời rạc 20

1.6 Phép biến đổi Fourier của tín hiệu rời rạc DTFT 21

1.6.1 Sự hội tụ của phép biến đổi Fourier 21

1.6.2 Quan hệ giữa biến đổi Z và biến đổi Fourier 21

1.6.3 Phép biến đổi Fourier ngược 22

1.6.4 Các tính chất của phép biến đổi Fourier 22

1.6.5 Phân tích tần số (phổ) cho tín hiệu rời rạc 23

1.6.6 Phổ tín hiệu và phổ pha 24

1.7 Các thuật toán sử dụng nâng cao chất lượng tiếng nói 25

1.7.1 Trừ phổ 25

1.7.2 Mô hình thống kê 25

1.8 Tín hiệu tiếng nói 25

1.9 Cơ chế tạo tiếng nói 27

1.9.1.1 Bộ máy phát âm của con người 27

1.9.2 Mô hình kỹ thuật của việc tạo tiếng nói 27

1.9.3 Phân loại âm 28

1.9.4 Thuộc tính âm học của tiếng nói 28

1.10 Kết luận chương 28

CHƯƠNG 2 : ĐÁNH GIÁ CHẤT LƯỢNG TIẾNG NÓI 29

2.1 Giới thiệu chương 29

2.2 Phương pháp đánh giá chủ quan 29

2.2.1 Các phương pháp đánh giá tuyệt đối 30

2.2.1.1 Phương pháp đánh giá tuyệt đối ACR 30

2.2.2 Các phương pháp đánh giá tương đối 30

2.2.2.1 Đánh giá bằng phương pháp so sánh các mẫu tín hiệu 30

2.2.2.2 Phương pháp đánh giá theo sự suy giảm chất lượng 31

2.3 Phương pháp đánh giá khách quan 32

2.3.1 Đo tỷ số tín hiệu trên nhiễu trên từng khung 32

2.3.2 Đo khoảng cách phổ dựa trên LPC 34

2.3.2.1 Phương pháp đo LLR 34

2.3.2.2 Phương pháp đo IS 34

2.3.2.3 Phương pháp đo theo khoảng cách cepstrum 35

2.3.3 Đánh giá mô phỏng theo cảm nhận nghe của con người 35

2.3.3.1 Phương pháp đo Weighted Spectral Slope 36

2.3.3.2 Phương pháp đo Bark Distortion 37

2.3.3.3 Phương pháp đánh giá cảm nhận chất lượng thoại PESQ 37

2.4 Kết luận chương 37

CHƯƠNG 3: THUẬT TOÁN SPECTRAL–SUBTRACTION VÀ WIENER FILTERING 39

3.1 Giới thiệu chương 39

3.2 Sơ đồ khối chung của Spectral Subtraction và Wiener Filtering 39

3.3 Thuật toán Spectral Subtraction 39

3.3.1 Giới thiệu chung 39

3.3.2 Spectral subtraction đối với phổ biên độ 40

3.3.3 Spectral subtraction đối với phổ công suất 41

3.4 Thuật toán Wiener Filtering 43

3.4.1 Giới thiệu chung 43

3.4.2 Nguyên lý cơ bản của Wiener Filtering 44

3.5 Overlap và Adding trong quá trình xử lý tín hiệu tiếng nói 46

3.5.1 Phân tích tín hiệu theo từng frame 46

3.5.2 Overlap và Adding 47

3.6 Ước lượng và cập nhật nhiễu 48

3.6.1 Voice activity detection 49

3.6.2 Quá trình ước lượng và cập nhật nhiễu 49

3.7 Kết luận chương 50

CHƯƠNG 4: THỰC HIỆN VÀ ĐÁNH GIÁ CÁC THUẬT TOÁN 51

4.1 Giới thiệu chương 51

4.2 Quy trình thực hiện và đánh giá thuật toán 51

4.3 Lưu đồ thuật toán Spectral Subtraction 53

4.4 Lưu đồ thuật toán Wiener Filtering 54

4.5 Thực hiện thuật toán 55

4.6 Đánh giá chất lượng tiếng nói đã được xử lý 57

4.6.1 Cơ sở dữ liệu cho việc đánh giá 57

4.6.2 Tổng quan về quy trình đánh giá 57

4.6.3 Kiểm tra độ tin cậy của các phương pháp đánh giá 58

4.6.4 Thực hiện đánh giá 60

4.6.4.1 Đánh giá thuật toán với các hệ số dự đoán ban đầu 60

4.6.4.2 Tối ưu hệ số alpha cho thuật toán WF 63

4.6.4.3 Hệ số gamma cho thuật toán SS 65

4.6.4.4 Đánh giá thuật toán sau khi đã tối ưu 66

4.6.4.5 Đánh giá độ ổn định của thuật toán trong môi trường nhiễu khác 67

4.6.5 Kết luận chương 69

TÀI LIỆU THAM KHẢO 70

KẾT LUẬN ĐỒ ÁN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 73

PHỤ LỤC 74

 

 

doc76 trang | Chia sẻ: lethao | Lượt xem: 2564 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Xử lý tiếng nói qua Thuật toán Spectral Subtraction và Wiener Filtering, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
n_ OE). Dù OE có giá trị thì nó vẫn phải tương quan với cảm nhận của người nghe Phần này sẽ cung cấp một cái nhìn tổng quan về các phương pháp đánh giá chất lượng của tiếng nói đã được xử lý Phương pháp đánh giá chủ quan Đánh giá chất lượng chủ quan là đánh giá chất lượng dựa trên cảm nhận nghe của con người đối với tiếng nói Chất lượng là một trong các thuộc tính của tín hiệu tiếng nói. Về bản chất thì chất lượng có tính chủ quan cao và khó có thể đánh giá một cách đáng tin cậy.Nó chỉ đóng vai trò phần nào trong kỹ thuật đánh giá vì mỗi cá nhân người nghe có những tiêu chuẩn riêng về chất lượng “tốt” hay “xấu”, chất lượng là kết quả của sự cảm nhận và phán đoán chủ quan của người nghe, dẫn đến sự chênh lệch lớn trong kết quả đánh giá. Chất lượng có rất nhiều chỉ tiêu không thể đếm hết được. Tùy vào các mục đích thực tế và tùy vào mỗi ứng dụng mà chỉ tập trung vào một số chỉ tiêu chất lượng tiếng nói. Đánh giá chất lượng tiếng nói là một công việc đầy khó khăn do tính đa chỉ tiêu và tính chủ quan cao. Có một số lượng lớn các đặc trưng để đánh giá khi thực hiện phương pháp nghe chủ quan này. Để kết quả đánh giá là đáng tin cậy thì sự lựa chọn đúng đắn các tham số cho việc đánh giá là điều cần thiết. Dựa trên thực tế đó ITU-T đã đưa ra các khuyến nghị ban hành trong các chuẩn từ ITU-T Rec P.800 đến ITU-T Rec P.899. Có hai loại đánh giá chính là Tuyệt đối và Tương đối. Sự đánh giá dựa trên các thang điểm chuẩn đã được đề ra trong chuẩn ITU-T Rec.P.800[11] Các phương pháp đánh giá tuyệt đối Phương pháp đánh giá tuyệt đối ACR ACR được sử dụng rộng rãi. ITU-T[11] đã khuyến nghị dùng phương pháp này trong hầu hết các ứng dụng. Thang đo được khuyến là Mean Opinion Scores (MOS) Được mô tả trong khuyến nghị P.800 của ITU-T, MOS là một phép đo chất lượng thoại nổi tiếng. Đây là một phương pháp đo chất lượng mang tính chất chủ quan. Có hai phương pháp kiểm tra là đánh giá đàm thoại và đánh giá độ nghe. Bảng 2.1.Thang điểm đánh giá chất lượng tiếng nói theo MOS [12] Score Quality of the Speech Level of Distortion 5 Excellent Imperceptible 4 Good Just perceptible, but not annoying 3 Fair Perceptible and slight annoying 2 Poor Annoying but not Objectinable 1 Bad Very annoying and Objectionable Các phương pháp đánh giá tương đối Nhìn chung phương pháp đánh giá này có độ nhạy cao hơn đối với sự suy giảm chất lượng của tín hiệu đã qua xử lý Đánh giá bằng phương pháp so sánh các mẫu tín hiệu Dạng đơn giản nhất của phương pháp này là thích nghe mẫu nào hơn Preference test hay còn gọi là so sánh đánh giá theo từng cặp tín hiệu Paired Comparison Test. Đối với phương pháp này thì người nghe sẽ được nghe hai mẫu thoại và sẽ đánh giá thích mẫu tín hiệu nào hơn Đánh giá bằng cách so sánh Comparison Category Rating (CCR) được khuyến nghị bởi ITU-T để đánh giá các hệ thống dùng nâng cao chất lượng tiếng nói. [13] Bảng 2.4. Thang điểm đánh giá chất lượng tín hiệu tiếng nói theo CCR Rating Quality of Speech 3 Much better 2 Better 1 Slightly Better 0 About the Same -1 Slightly Worse -2 Worse -3 Much Worse Theshold Test hay còn gọi là Isopreference Test là một biến thể của Preference Test. Phương pháp này là so sánh tín hiệu đã qua xử lý với tín hiệu gốc chuẩn mà độ suy giảm chất lượng của nó có thể được kiểm soát. Được đề ra trong chuẩn ITU-T Rec.P.810 Phương pháp đánh giá theo sự suy giảm chất lượng Đánh giá sự suy giảm chất lượng Degradation Category Rating (DCR) Sự giảm sút về chất lượng của tín hiệu đã qua xử lý so với tín hiệu chất lượng cao chưa qua xử lý được xác định qua năm thang điểm Bảng 2.5. Thang đánh giá DCR Rating Degradation 1 Very annoying 2 Annoying 3 Sightly annoying 4 Audible but not annoying 5 Inaudible Phương pháp đánh giá khách quan Đánh giá chất lượng khách quan là phương pháp đánh giá chất lượng dựa trên các phép đo thuộc tính của tín hiệu Đo tỷ số tín hiệu trên nhiễu trên từng khung Đo SNR trên từng khung trong miền thời gian là một trong những phương pháp đánh giá về mặt toán đơn giản nhất. Để phương pháp này có hiệu quả thì điều quan trọng là tín hiệu gốc và tín hiệu đã qua xử lý phải trong cùng miền thời gian và độ lệch pha hiện tại phải được hiệu chỉnh chính xác. SNRseg đượ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ố Đ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 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 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 ) 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 Đá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. 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] 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: 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 Độ nhạy của tai người phụ thuộc vào tần số âm thanh Â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 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 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 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ý 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 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 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. Thuật toán Spectral Subtraction 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ỏ. 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 (3.2) Chúng ta có thể biểu diễn Y() dưới dạng phức như sau: (3.3) Khi đó |Y()| là biên độ phổ, và 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: (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 , 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: (3.5) ở đây || 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 . Cần chú ý rằng biên độ phổ của tín hiệu đã được tăng cường là , 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: (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. 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: (3.7) ||2, X().và không thể tính được một cách trực tiếp và xấp xỉ bằng E{||2}, E{ X().} và E{}, khi đó E[.] là toán tử kỳ vọng. Bình thường thì E{||2} được ước lượng khi không có tiếng nói hoạt động và được biểu thị là ||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().} và E{} xem là 0. Khi đó phổ công suất của tín hiệu sạch có thể tính được như sau (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 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 (bằng cách lấy căn bậc hai của 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: (3.9) Khi đó , , 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: ( 3.10) Khi đó: (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 phạm vị . 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: (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 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 + - Hình 3.2 Sơ đồ khối của thuật toán Spectral subtraction [26]. Thuật toán Wiener Filtering 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. 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 (3.14) Chúng ta có thể biểu diễn Y() dưới dạng phức như sau: (3.15) Khi đó |Y()| là biên độ phổ, và 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: (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 , 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 từ Y() bằng một hàm phi tuyến được xác định như sau : (3.17) có thể được áp dụng theo Wiener Filtering [28]: (3.18) Trong đó và là phổ công suất của tin hiệu sạch. Đặt Priori SNR và Posteriori SNR như sau[11]: (3.19) (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 mà trong các hệ thống nâng cao chất lượng giọng nói thì 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 và bằng cách cho các thông số thích hợp vào các phương trình sau[12]: (3.21) (3.22) (3.23) Trong đó P[.] là hàm chỉnh lưu bán sóng có dạng như sau: (3.24) Và và chỉ số để 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 bằng . 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ó theo WF như sau: (3.25) Sơ đồ khối của thuật toán Wiener Filtering: 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 Priori SNR Hàm xử lý giảm nhiễuWF Hình 3.3 Sơ đồ khối của thuật toán Wiener Filtering. Overlap và Adding trong quá trình xử lý tín hiệu tiếng nói 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 : (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]. 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

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

  • docXử lý tiếng nói qua Thuật toán Spectral Subtraction và Wiener Filtering.doc