Sơ đồ khối thuật toán lọc nhiễu sử dụng hàm năng lượng thấp

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu, nghiên cứu và ứng dụng một số thuật toán nén tiếng nói luận văn ths công nghệ thông tin 60 48 05001 (Trang 46 - 48)

Các biến được sử dụng trong thuật toán lọc nhiễu sử dụng hàm năng lượng thấp được mô tả như trên Hình 3.6:

A: lưu giá trị tín hiệu.

B: lưu giá trị tín hiệu dạng integer 16 bit

L: lưu giá trị tín hiệu đã loại bỏ các đoạn có năng lượng thấp. e: mức ngưỡng năng lượng cho trước.

S: biến trung gian lưu tổng năng lượng đoạn đang xét

3.3.2.2 Thuật toán lọc nhiễu dựa vào năng lượng tập trung.

Khi phát âm một từ, thường phần mang thông tin của từ luôn có mật độ tín hiệu mẫu lấy vào (thông qua Sound Card) rất lớn (năng lượng tập trung).

Hình 3.7: Dạng sóng của từ “Không” khi đọc qua mic (đã lọc năng lượng thấp)

Nhìn vào hình trên, ta nhận thấy “năng lượng” của từ “không” này tập trung ở bên trái nhiều hơn. Vì vậy, ta sẽ tính toán, cắt dần các giá trị ở gần “khu tập trung” nhất. Cách thực hiện:

Bƣớc 1: Tính max (trị tuyệt đối) của giá trị các tín hiệu mẫu.

Bƣớc 2: Từ vị trí max, trượt về bên trái. Nếu giá trị (trị tuyệt đối) nào

dưới 0.25*max thì loại bỏ.

Bƣớc 3: Làm tương tự khi trượt về bên phải.

Hình 3.8: Dạng sóng của từ “Không”ở trên sau khi lọc nhiễu dựa vào năng lượng tập trung.

Thuật toán lọc nhiễu sử dụng năng lượng tập trung được miêu tả như trong hình 3.9:

Input: Tín hiệu tiếng nói, là chuỗi các biên độ ứng với giá trị tín hiệu tiếng nói. Output: Dữ liệu tiếng nói đã loại bỏ các giá trị dưới 25% giá trị max.

Begin

-file.wav

A=ReadAllBytes(file .wav); B=ConvertTo16bit(A,2); M= Max(B);

L=B.length; i = 0; Arraylist L

// Đọc file âm thanh và chuyển sang dạng số nguyên i < L Abs(B[i]) > M/4 i = i + 1 End L.add(B[i]); Đúng Sai Sai Đúng

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu, nghiên cứu và ứng dụng một số thuật toán nén tiếng nói luận văn ths công nghệ thông tin 60 48 05001 (Trang 46 - 48)