Các biến được sử dụng trong thuật toán lọc nhiễu sử dụng năng lượng tập trung được mô tả như trên Hình 3.9:
A: lưu giá trị tín hiệu.
B: lưu giá trị tín hiệu dạng integer 16 bit
CHƢƠNG 4. XÂY DỰNG ỨNG DỤNG NHẬN DẠNG TIẾNG NÓI 4.1. Xây dựng ứng dụng thử nghiệm 4.1. Xây dựng ứng dụng thử nghiệm
4.1.1. Bài toán nhận dạng tiếng nói
Bài toán đặt ra là hãy xây dựng hệ thống nhận dạng hai từ đơn “Có” và “Không”, trong môi trường có nhiễu là môi trường sinh hoạt bình thường với số người nói không hạn chế. Nói một cách khác đầu vào là phát âm các từ đơn của người nói bất kỳ nếu nhận dạng ra đó là từ “Có” hoặc “Không” hệ thống sẽ hiện lên các từ này.
4.1.2. Mô tả bài toán nhận dạng từ đơn “Có” và “Không”
Hệ thống nhận dạng hai từ “Có”, “Không” dựa trên thuật toán Zerocrossing nghĩa là lấy các đoạn Zerocrossing làm đặc trưng của từ.
Phương pháp: Nhận dạng từ đơn (Isolate word recognition)
Input: file âm thanh dạng .wav, ghi lại phát âm của một từ đơn nào đó.
Output: Màn hình của trương trình hiện lên từ“Có” hoặc “Không” nếu từ vào có đặc trưng trùng với một từ nào đó có trong cơ sở dữ liệu.
Cơ sở dữ liệu: là các dãy Zerocrossing của hai từ “Có” và “Không”.
Khử nhiễu
(sử dụng hàm năng lượng thấp, dựa vào năng lượng tập trung)
Input file.wav từ đơn
Trích, chọn Zerocrossing
Học mẫu Ghi đặc trưng vào
cơ sở dữ liệu
Đối sánh đặc trưng với các đặc trưng trong cơ sở dữ liệu
Đánh giá kết quả đổi sánh
Ra quyết định
Stop Đúng
Sai Begin
Chuẩn hóa dãy Zerocrossing
4.2. Tổ chức, chuẩn hóa dữ liệu
Việc xác định được dữ liệu đầu vào, cách lưu trữ ra sao cho hợp lý luôn là một bước rất quan trọng. Bởi nó không chỉ quyết định tốc độ tính toán, giảm kích thước cơ sở dữ liệu mà còn liên quan đến độ chính xác của kết quả.
Dữ liệu đầu vào: Là một chuỗi của các dãy bộ 3 tham số {x,y,z}(Dữ liệu âm thanh đã qua bước trích, chọn Zerocrossing)
Dãy Zerocrossing {(x,y,z)} được gọi là dãy chuẩn hóa nếu dãy bộ 3 {(x,y,z)} là dãy đan dấu của z và phần tử đầu tiên của dãy ứng với z > 0
Từ dãy Zerocrossing chuẩn hóa {(x,y,z)} ta trích ra dãy con dạng {(x,y)}. Dãy này được gọi là dãy đặc trưng Zerocrossing của từ vào W.
4.3. Học mẫu
Sau quá trình tính và chuẩn hóa dãy Zerocrossing. Ta trích được dãy đặc trưng Zerocrossing, các từ được chọn làm mẫu sẽ được lưu vào cơ sở dữ liệu (DataBase).
Giả sử ta có từ vào W và dãy {(x,y)} là dãy đặc trưng Zerocrossing của nó. Khi đó cơ sở dữ liệu chứa mẫu các từ W có dạng:
W; {(x,y)} = “W; x1,y1, x2,y2, …, xn,yn*”
Nói một cách khác mỗi từ mẫu trong cơ sở dữ liệu là các dòng text kết thúc bằng dấu hiệu “*”
Ví dụ: Co1; 7,6,4,2,5,3,6,1,…,*
4.4. Đối sánh đặc trƣng và đánh giá kết quả
4.4.1. Thuật toán đối sánh theo hệ số tương quan
Ý tƣởng:
Giả sử từ vào nhận dạng làW có dãy đặc trưng Zerocrossing là “W;{(x,y)}*” và trong cơ sở dữ liệu có N từ mẫu có đặc trưng là “Wj;{(x’,y’)}*”.
Từ dãy “W;{(x,y)}*” của từ vào W ta có dãy 𝑑𝑤 = 𝑥𝑖 (𝑖 = 1, 𝑛).
Từ dãy “Wj;{(x’,y’)}*” của các từ mẫu trong cơ sở dữ liệu ta có dãy𝑑𝑤𝑗 = 𝑥𝑖′ (𝑖 = 1, 𝑚).
Tính𝑟𝑘 = max
𝑗=1, 𝑁𝑟 𝑑𝑤,𝑑𝑤𝑗 =𝑟 𝑑𝑤,𝑑𝑤𝑘
Nếu rk> 0.7 ta kết luận từ vào W là từ Wktrong cơ sở dữ liệu, Wk là từ
Mô tả thuật toán:
1) Input (W); Trích dãy đặc trưng Zerocrossing “W;{(x,y)}*” ; trích dãy 𝑑𝑤 = 𝑥𝑖 (𝑖 = 1, 𝑛) từ dãy đặc trưng Zerocrossing của W.
2) Với 𝑗 = 1, 𝑁 lấy dãy đặc trưng Zerocrossing “Wj;{(x’,y’)}*” của từ trong cơ sở dữ liệu; trích dãy 𝑑𝑤𝑗 = 𝑥𝑖′ (𝑖 = 1, 𝑚).
3) Tính 𝑟𝑘 = max
1≤𝑗 ≤𝑁𝑟 𝑑𝑤,𝑑𝑤𝑗 =𝑟 𝑑𝑤,𝑑𝑤𝑘 .
4) Nếu 𝑟𝑘 >𝑐 khẳng định từ vào là Wk ngược lại kết luận không biết. 5) Dừng, kết thúc thuật toán.
Ở đây: - N số từ mẫu trong cơ sở dữ liệu - c là ngưỡng tin cậy, thường c > 0.7.
Lƣu ý:
Khi tính 𝑟 𝑑𝑤,𝑑𝑤𝑗 ta cần chú ý độ dài của dãy của 𝑑𝑤 và 𝑑𝑤𝑗 là khác nhau. Giả sử 𝑑𝑤 =𝑛 và 𝑑𝑤𝑗 =𝑚. Nếu n ≤ m ta phải duyệt tất cả các dãy con có độ dài n bảo toàn thứ tự của dãy 𝑑𝑤𝑗 tìm giá trị tương quan lớn nhất làm giá trị tương quan của 𝑟 𝑑𝑤,𝑑𝑤𝑗 . Trường hợp n > m ta phải duyệt tất cả các dãy con có độ dài m bảo toàn thứ tự của dãy 𝑑𝑤 tìm giá trị tương quan lớn nhất làm giá trị tương của 𝑟 𝑑𝑤,𝑑𝑤𝑗 .
x1 x2 … xm xm+1 xm+2 ……. xn x1' x2' ... xm' dw dwj x1' x2' … xn' xn+1' xn+2' ……. xm' x1 x2 ... xn dw dwj Trường hợp n > m Trường hợp n < m