Thuật toán Spectral Subtraction (thuật toán trừ phổ)

Một phần của tài liệu Tìm hiểu một số phương pháp tăng cường chất lượng tiếng nói (Trang 31)

3.1.2.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 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ó 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.

Tín hiệu sạch 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 IDFT Overl ap Và Addin gg Tín hiệu bị nhiễu

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 đó 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 trừ phổ và trong số đó cũng có một vài trƣờng hợp bị loại bỏ.

3.1.2.2 Spectral subtraction đối với phổ biên độ.

Giả thiết rằng 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 .

(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 đó là biên độ, và là pha của tín hiệu đã bị nhiễu.

Phổ của nhiễu có thể đƣợc biểu diễn theo dạng biên độ và pha:

= | | (3.4) Biên độ phổ của nhiễu | | 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 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, 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)

3.1.2.3 Trừ phổ đối với 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, bình phƣơng , ta đƣợc:

(3.6)

| , và không thể tính đƣợc một cách trực tiếp và

xấp xỉ bằng , và }, khi đó là toán

tử kỳ vọng. Bình thƣờng thì đƣợc ƣớc lƣợng khi không có tiếng nói và đƣợc biểu thị là . Nếu chúng ta thừa nhận = 0 và không có một sự tƣơng quan nào với tín hiệu sạch

, thì và xem là 0. Khi đó phổ công suất của

tín hiệu sạch có thể tính đƣợc nhƣ sau:

= +

Công thức trên biểu diễn thuật toán trừ phổ công suất. Theo công thức này, 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 ), 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 (3.7) trên thì ta có một phƣơng trình tƣơng tự trong miền tự tƣơng quan:

(3.7) 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.

(3.8) Trong đó :



+ Y( Pha của tín hiệu |.|p FFT IFFT Tín hiệu bị nhiễu

Tín hiệu sau tăng cƣơng

Ƣớc lƣợng và câp nhật nhiễu

|.|p

Trong lý thuyết hệ thống tuyến tính, là hàm truyền đạt của hệ thống. Trong lý thuyết của tăng cƣờng chất lƣợng tiếng nói, chúng ta xem là hàm độ lợi hay hàm nén. Và là một số thực và luôn luôn dƣơng, có giá trị nằm trong phạm vị 0 ≤ ≤ 1. Nếu nó có giá trị âm là do có sai sót trong quá trình ƣớc lƣợng phổ của nhiễu. đƣợ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 tăng cƣờng chất lƣợng tiếng nói.

Chính vì vậy 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ố 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ả. Nên sẽ có một phƣơng pháp đƣợc đề xuất để hiệu chỉnh hàm để đá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 trừ phổ có thể đƣợcbiểu diễn:

= - (3.10) Trong đó là số mũ công suất, với = 1 là đó là phƣơng pháp trừ phổ biên độ điển hình, = 2 là phƣơng pháp trừ phổ công suất.

Sơ đồ khối của thuật toán Trừ phổ :

3.1.2.4 Thuật toán dự đoán thích nghi tiếng ồn. - Phân loại tín hiệu tiếng nói hiện tại và tiếng nói ẩn.

Trong bất kỳ câu nói có tạm dừng, giữa các từ không chứa bất kỳ một tiếng nói nào mà chỉ là có các khung có tiếng ồn xung quanh.

Để xác định những khung, một thủ tục đơn giản đƣợc sử dụng để tính tỷ lệ ồn phổ điện thoại và phổ năng lƣợng tiếng ồn ở 3 băng tần khác nhau trong mỗi khung tƣơng ứng với các tần số 1 KHz, 3KHz và và tần số lấy mẫu tƣơng ứng. Nếu cả ba tỷ lệ nhỏ hơn ngƣỡng khung đƣợc kết luận có tiếng ồn chỉ có khung nào đó mà nếu không hoặc có một hoặc tất cả các tỷ lệ lớn hơn ngƣỡng thì khung đƣợc coi là tiếng nói của khung hiện tại[4].

- Tối thiểu hóa tiếng tạp âm:

Phƣơng pháp này dựa trên số liệu thống kê và sự tối ƣu của việc làm mịn nhiễu. Phƣơng pháp này dựa trên hai phƣơng pháp chủ yếu:

+ Quan sát 1: Độc lập với tiếng nói của nhiễu điều này dẫn đến phổ công suất của tiếng nói có nhiễu bằng tổng phổ công suất của tiếng nói sạch và tiếng nói có nhiễu tƣơng ứng.

Trong đó: lần lƣợt là phổ công suất của

tín hiệu tiếng có bị nhiễu, tiếng nói sạch và nhiễu. lần lƣợt là chỉ số thời gian và tần số tƣơng ứng.

+ Quan sát 2: Phổ công suất của tiếng nói có nhiễu đôi khi trở nên bằng phổ công suất của nhiễu. Điều này xẩy ra trong quá trình dừng tiếng nói cũng nhƣ trong khoảng giữa các từ trong âm tiết. Vì vậy việc đánh giá mật độ phổ của công suất nhiễu có thể đƣợc thực hiện bằng cách tìm cực tiểu của tiếng nói của nhiễu trong mỗi tần số tách biệt nhau. Bởi vì giá trị cực tiểu hƣớng tới các giá trị nhỏ hơn nên để đánh giá thƣờng phải nhân với một hệ số dẫn suất đƣợc thống kê cực tiểu cục bộ.[4].

- Các hằng số làm mịn phụ thuộc vào tần số[6].

Bằng cách sử dụng đánh giá xác xuất sự có mặt tiếng nói ta tính hệ số làm mịn phụ thuộc vào thời gian tần số nhƣ sau:

a(α,K) = d +(1-d)P(α,k) (3.11) Trong đó:

d là một hằng số.

(α, K) có giá trị trong phạm vi của một d≤ (α, K) ≤ 1.[6]

- Cập nhật giá trị phổ nhiễu.

Sau khi tính hệ số làm mịn phụ thuộc tần số phổ, việc đánh giá phổ nhiễu đƣợc cập nhật nhƣ sau:

D(α, k) = a(α, k) D(α -1, k) +(1 -(α, k)) | Y(α, K)| 2 (3.12) Trong đó D(α, k) là đánh giá phổ công suất nhiễu.

Bởi vậy, toàn bộ thuật giải đƣợc tóm tắt nhƣ sau:

Sau khi phân loại các tần số của tiếng nói có mặt/vắng mặt, cập nhật hệ số làm mịn phụ thuộc thời gian tần số. Cuối cùng việc đánh giá phổ nhiễu đƣợc cập nhật bằng cách sử dụng hệ số làm mịn phụ thời gian tần số. Nhiễu đƣợc đánh giá nhƣ vậy sẽ đƣợc loại khỏi tiếng nói có nhiễu ở đầu vào bằng phép trừ để nhận đƣợc đánh giá của tiếng nói sạch.[6]

3.1.3 Đo lƣờng khách quan để đánh giá hiệu năng.

Các phƣơng pháp đo lƣờng khách quan đƣợc dựa trên sự so sánh về mặt toán học của tín hiệu tiếng nói gốc và tín hiệu tiếng nói đã đƣợc xử lý. Phần lớn các phƣơng pháp đánh giá chất lƣợng khách quan đều lƣợng hóa chất lƣợng tiếng nói theo đo lƣờng khoảng cách số hoặc theo mô hình cảm thụ chất lƣợng tiếng nói của hệ thống thính giác, thƣờng mong muốn các phép đo khách quan phù hợp với đánh giá của hệ thống cảm nhận tiếng nói của con ngƣời.

Tuy nhiên, có thể thấy rằng tƣơng quan giữa các kết quả nhận đƣợc từ các phép đo khách quan không tƣơng quan lắm với kết quả nhận đƣợc từ đo lƣờng đánh giá chủ quan. Tỷ số tín hiệu trên nhiễu (SNR) thƣờng đƣợc sử dụng rộng rãi nhất

trong các phƣơng pháp đo lƣờng đánh giá khách quan. [6]. - Phƣơng pháp đo tỷ lệ nhiễu( SNR).

SNR là một phƣơng pháp phổ biến để đo lƣờng chất lƣợng tiếng nói. Tỷ số này đƣợc tính toán bằng cách lấy tỷ số công suất tín hiệu trên công suất nhiễu. Nếu tổng kết đƣợc thực hiện trên chiều dài toàn bộ tín hiệu, các thao tác đƣợc gọi là SNR tổng quát[6].

- Phép đo lƣờng dùng chỉ số đánh giá trung bính MOS.

MOS là đo lƣờng bằng số đối với chất lƣợng tiếng nói, phƣơng pháp này sử dụng phép thử chủ quan (Tỷ lệ ý kiến nhận đƣợc). Đó là trung bình về mặt toán học để nhận đƣợc chỉ tiêu chất lƣợng của hiệu năng hệ thống.

Để xác định MOS một số ngƣời nghe nào đấy sẽ đánh giá chất lƣợng của câu cần phải kiểm thử, các câu này đƣợc đọc bởi các giọng Nam và Nữ thông qua mạng truyền thông, mỗi ngƣời nghe đánh giá nhƣ sau:

(1) Tồi (2) Kém (3) Tạm đƣợc (4) Tốt (5) Rất tốt.

MOS là trung bình cộng của tất cả các điểm cá nhân, và có thể dao động từ 1 (kém nhất) đến 5 (tốt nhất)[6].

3.2 Thuật toán bộ lọc Wiener.

Sơ đồ khối chung của thuật toán

3.2.1 Giới thiệu chung.

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 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 bộ lọc Wiener (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.2.2 Nguyên lý cơ bản của lọc Wiener.

Giả thiết rằng 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 .

(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) Tín hiệu sạch 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 IDFT Overl ap Và Addin gg Tín hiệu bị nhiễu

Khi đó là biên độ, và là pha của tín hiệu đã bị nhiễu. Phổ của nhiễu có thể đƣợc biểu diễn theo dạng biên độ và pha:

= | | (3.16) Biên độ phổ của nhiễu | | 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 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, 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ừ bằng một hàm phi tuyến đƣợc xác định nhƣ sau :

 (3.17) có thể đƣợc áp dụng theo lọc Wiener. (3.18)

Đặt Priori SNR và Posteriori SNR nhƣ sau:

(3.19)

(3.20)

. (3.21)

Pha của tín hiệu IFFT SNRpri Ƣớc lƣợng cập nhật nhiễu Tín hiệu bị nhiễu FFT Tín hiệu sau khi tăng cƣờng Hàm xử lý giảm nhiễu |.|1/2 |.|1/2  (3.22) Sơ đồ khối của thuật toán lọc Wiener:

Hình 3.3 Sơ đồ khối của thuật toán lọc Wiener. 3.3 Xếp chồng và cộng trong quá trình xử lý tín hiệu tiếng nói 3.3.1 Phân tích tín hiệu theo từng khung

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 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 đó, 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 khung liên tục, trong từng khung, tín hiệu 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 khung, 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à “ theo từng khung một”.

Để 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.25)

Hình 3.4 Phân tích tín hiệu thành các khung[5].

Tín hiệu có nhiễu đƣợc chia ra thành nhiều Segment ( hay Frame ) có chiều dài bằng 25 ms với độ dịch là 40% của cửa sổ trên suốt chiều dài tín hiệu. Cửa sổ có thể chọn Rectangle, Hamming, Blackman … Việc chọn loại cửa sổ sẽ ảnh hƣởng tới việc khôi phục tín hiệu đã tăng cƣờng sau này. Ở đây, cửa sổ đƣợc lựa chọn là Hamming. Do Hamming là cửa sổ phi tuyến nên khi thực hiện biến đổi FFT thì vô tình đã làm suy giảm tín hiệu , vì thế yêu cầu đặt ra là các Segment phải sắp xếp chồng lên nhau theo 1 tỉ lệ dịch (SP) thích hợp, vùng xếp chồng giữa 2 Segment liên tục gọi là “overlap”.[5]

Minh họa quá trình phân khung bằng cửa sổ chữ nhật : tín hiệu có nhiễu cộng vào.

: shift percentage-Tỷ lệ dịch.

: Window Length: chiều dài cửa sổ.

: số mẫu ở vùng overlap ( ) .

Noisy Length : Chiều dài nhiễu.

Số Segment có thể đƣợc tính dựa vào công thức sau:

Number of noisy signal Segments = (LengthSignal - WindowLength)/(Shift Percentage* WindowLength) + 1

Dấu ▪ để chỉ là lấy giá trị nguyên nhỏ hơn và gần kết quả nhất.

Khi tín hiệu đƣợc phân tích thành các Segment liên tục, trong từng Segment, tín hiệu của ta sẽ biến đổi chậm và nó đƣợc xem là tĩnh ( trạng thái dừng). 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ả. Cách phân tích tín hiệu đƣợc sử dụng là nhân với hàm cửa sổ, mỗi vector

Một phần của tài liệu Tìm hiểu một số phương pháp tăng cường chất lượng tiếng nói (Trang 31)

Tải bản đầy đủ (PDF)

(76 trang)