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

Một phần của tài liệu xu_ly_nang_cao_chat_luong_tieng_noi (Trang 48)

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 pri SNR p D( )| | ^ ω

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 , ) / ) 1 2 cos(( . 85185 . 0 1− k+ π N k = N− (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

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.

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 i i Y M 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 Y T i i ∫ − − = | ) ( ) ( | 2 1 log 20 1 (3.29)

Nếu T ≤−12dB thì frame đó không phải là frame có tiếng nói, khi đó ta có thể cập nhật lại nhiễu đã được ước lượng trước đó.

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.

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á

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.

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 Đ

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

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

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.

¾ Nhn 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.

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á 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ó

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

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

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

Một phần của tài liệu xu_ly_nang_cao_chat_luong_tieng_noi (Trang 48)