1.18.1Giớ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.
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:
Hình 3.3 Sơ đồ khối của thuật toán Wiener Filtering.
1.19Overlap và Adding trong quá trình xử lý tín hiệu tiếng nói 1.19.1Phâ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)
H
N : kích thước của frame
m : số lượng frame
ình 3.4 Phân tích tín hiệu thành các frame [31].
1.19.2Overlap 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”.
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].
Chia sẻ với bạn bè của bạn: |