Giải thuật DTW đối xứng

Một phần của tài liệu Xử lý âm thanh và hình ảnh (Trang 50 - 53)

Tiếng nĩi là một quá trình phụ thuộc vào thời gian. Tiếng nĩi cĩ nhiều âm tiết tương tự nhau nhưng với khoảng thời gian phát âm khác nhau, hoặc cĩ âm tiết đồng âm nhưng khác ở chỗ nhấn âm, v.v… Để phân tích được sự sai biệt tồn cụ giữa hai mẫu tiếng nĩi (đại diện bởi một chuỗi các vector), vấn đề về thời gian phải được xem xét.

Bài tốn được mơ tảở hình 0, mơ tả một ma trận hai chiều theo thời gian sử dụng cho việc canh chỉnh theo thời gian. Cột là mơ tả cho tiếng nĩi mẫu (template) và dịng là tiếng nĩi thu được cần nhận dạng. Trong hình minh họa, tín hiệu vào “SsPEEhH” được xem là một dạng “nhiễu” của tiếng nĩi mẫu. Tín hiệu vào này sẽđược so sánh trùng với tất cả các mẫu tiếng nĩi được lưu trữ trong hệ thống. Mẫu cĩ độ tương thích tốt nhất sẽ cĩ độ sai biệt nhỏ nhất so với tín hiệu vào cần so sánh. Giá trịđộ sai biệt tồn cục là tổng các sai biệt cục bộ của việc so sánh.

Hình 1.44 Mơ tả canh chỉnh thời gian giữa mẫu tiếng nĩi “SPEECH” và tín hiệu tiếng nĩi đầu vào “SsPEEhH”

Làm cách nào để cĩ thể tính được độ tương thích tốt nhất (cĩ giá trịđộ sai biệt tồn cục nhỏ nhất) giữa tín hiệu cần so sánh và tiếng nĩi mẫu? Việc này được thực hiện bằng cách ước lượng tất cả khoảng cách cĩ thể cĩ, nhưng cách này khơng hiệu quả khi số lượng khoảng cách cĩ dạng hàm mũ theo chiều dài của tín hiệu ngõ vào. Thay vào đĩ, ta xem xét những ràng buộc tồn tại trong quá trình so trùng (hoặc cĩ thể áp đặt các ràng buộc này) và dùng những ràng buộc này để cĩ được giải thuật hiệu quả hơn. Các ràng buộc được thiết lập phải khơng phức tạp và cũng khơng hạn chế nhiều, như:

→ Các khoảng cách so trùng khơng thể thực hiện việc đi lui;

→ Mọi khung của tín hiệu cần so trùng phải được dùng trong quá trình so trùng;

→ Các giá trị sai biệt cục bộđược kết hợp bằng phương pháp cộng dồn vào giá trị sai biệt tồn cục.

Mọi khung trong tín hiệu cần so trùng với mẫu tiếng nĩi được xem xét ứng với từng tính tốn độ sai biệt. Nếu thời điểm đang xét là (i, j) , với i là chỉ số của khung tín hiệu ngõ vào, j là của khung tiếng nĩi mẫu, thì các vị trí trước đĩ là (i−1, j−1), (i−1,j), (i,j −1) . Ý tưởng chính của lập trình động là tại vị trí (i,j), việc tính tốn dự trên độ sai biệt nhỏ nhất của các vị trí ), 1 , 1 (ij− (i−1,j), (i,j −1). Giải thuật lập trình động thực hiện cần phải đồng bộ thời gian: mỗi cột của ma trận thời gian-thời gian được xem như là một sự kế vị các tính tốn trước đĩ, do đĩ, ứng với một mẫu tiếng nĩi cĩ chiều dài N, số lượng bước so trùng tối đa là N.

Gọi D(i, j), d(i,j) tương ứng là độ sai biệt tồn cục và độ sai biệt cục bộ tại vị trí ) , (i j . [ ( 1, 1), ( 1, ), ( , 1)] ( , ) min ) , (i j D i j D i j D i j d i j D = − − − − + (1)

Với D(1,1)=d(1,1) là giá trị khởi tạo ban đầu, giải thuật ứng dụng đệ qui vào việc tính tốn các độ sai biệt tại D(i,j). Giá trị cuối D(n,N) chính là giá trị chênh lệch giữa template và tín hiệu cần so sánh, lưu ý rằng N sẽ khác nhau ứng với mỗi template.

Đối với việc nhận dạng tiếng nĩi, giải thuật DP khơng cần phải chạy trên các máy tính cĩ bộ nhớ lớn, việc lưu trữ được thực hiện bởi một array, lưu giữa từng cột đơn trong ma trận thời gian-thời gian. Ma trận cĩ vị trí đầu tiên cĩ giá trị là 0, như vậy chỉ những hướng di chuyển trong ma trận được mơ tảở hình 1 mới cĩ thể xuất phát từ vị trí (i, j).

Hình 1.45 Ba hướng cĩ độ tương thích tốt nhất cĩ thểđi đến từ ơ (i,j) trong giải thuật DTW đối xứng.

Phương trình (1) được thực hiện bằng phương pháp đệ quy. Tuy nhiên, trừ khi ngơn ngữ đã được tối ưu cho việc đệ quy, phương pháp này cĩ thể tốn nhiều thời gian ngay cả đối với những tín hiệu cần so sánh cĩ kích thước nhỏ. Một phương pháp khác cĩ thể cải tiến được tốc độ xử lý cũng như cần bộ nhớ thực thi nhỏ hơn là dùng hai vịng lặp, sử dụng hai array để lưu trữ các cột kề với ma trận thời gian-thời gian. Hình 1.46 Vị trí ơ (i, j) và (i,0) cĩ các ơ định hướng khác nhau. Từ (i,0) chỉ cĩ thể đi từ ơ ) 0 , 1 (i− . Tuy nhiên tại ơ (i,j) thì cĩ thểđi đến 3 ơ như mặc định. Giải thuật tìm chi phí tồn cục nhỏ nhất:

1. Tính tại cột 0, bắt đầu từđáy của ơ. Giá trị chi phí tồn cụ của ơ bằng giá trị chi phí cục bộ. Sau đĩ, tính tốn giá trị chi phí tồn cục của các ơ cĩ khả năng cho được giá trị thấp bằng cách lấy giá trị chi phí cục bộ của ơ cộng thêm cho giá trị tồn cục của ơ ngay dưới đĩ, ơ này được gọi là predCol (predecessor column).

2. Tính giá trị chi phí tồn cục của ơ đầu tiên của cột kế tiếp là curCol. Giá trị cục bộ của ơ cộng thêm cho giá trị tồn cục của ơ phía dưới cùng của cột trước nĩ.

3. Tính giá trị tồn cục của các ơ cịn lại của curCol.

4. curCol được định là predCol và lặp lại bước 2 cho đến khi tất cả các cột được tính tốn xong.

5. Giá trị chi phí tồn cục tại vị trí cột cuối cùng, dịng trên cục là giá trị cần tìm. Mã giải của quá trình như sau:

Một phần của tài liệu Xử lý âm thanh và hình ảnh (Trang 50 - 53)

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

(175 trang)