Trong chương này, tôi sẽ giới thiệu thêm một kỹ thuật nhận dạng tiếng nói bằng phương pháp đối sánh mẫu, dựa trên thuật toán so sánh thời gian động (Dynamic Time Warping - DTW) và phương pháp trích chọn đặc trưng MFCC đã giới thiệu trong
Chương 3. Những nội dung được trình bày trong chương này được tổng hợp từ tài liệu
Dynamic Time Warping Algorithm Review[15] và Cross-words Reference Template for DTW-based Speech Recognition Systems[3].
5.1. THUẬT TOÁN SO SÁNH THỜI GIAN ĐỘNG (DTW)
So sánh thời gian động là một thuật toán quy hoạch động để đánh giá sự tương đồng giữa hai dãy có độ dài khác nhau. Thuật toán này hoạt động đặc biệt hiệu quả khi áp dụng cho hai dãy biến thiên theo thời gian.
Cho trước hai dãy và có độ dài tương ứng là N và M. Gọi c(xi, yj) là khoảng cách giữa hai thành phần và . Một mảng D có kích thước NxM sẽ được tạo ra để lưu trữ các giá trị trung gian. Giá trị D(i, j) (i=1,…,N; j=1,…,N) là khoảng cách của hai dãy con và . Giá trị D(i, j) sẽ được tính như sau:
Hình sau đây thể hiện việc tính toán giá trị tại từng ô trong thuật toán DTW:
Hình 15: mô hình thuật toán DTW
Khoảng cách giữa hai dãy X và Y, ký hiệu là DTW(X, Y) bằng giá trị ở hàng N, cột M của mảng D:
Thuật toán so sánh thời gian động được dùng để phân lớp mẫu trong bài toán nhận dạng tiếng nói rởi rạc, tức là nhận dạng từng từ riêng biệt. Sau khi trích chọn đặc trưng MFCC, mỗi mẫu tiếng nói sẽ cho ta một dãy các vector nhiều chiều. Khoảng cách giữa hai dãy và bất kỳ sẽ được tính bằng thuật toán DTW như mô tả ở trên, trong đó giá trị c(xi, yj) là khoảng cách Euclid giữa hai vector và . Nếu D là số chiều của một vector thì c(xi, yj) sẽ được tính như sau:
Để có thể nhận dạng, một tập các mẫu tiếng nói (X1, X2, …, Xn) được gán nhãn từ trước sẽ được dùng để làm mẫu đối sánh. Gọi X là mẫu cần nhận dạng, nếu X gần với Xi nhất (khoảng cách DTW giữa X và Xi là nhỏ nhất) thì X và Xi sẽ cùng thuộc một lớp.