Tổng quan về các công cụ HTK và ứng dụng xây dựng hệ nhận dạng

Một phần của tài liệu Truy vấn thông tin trong tiếng nói tiếng việt (Trang 26)

1.7.1. Tng quan vê các công c HTK

Hidden Markov Model Toolkit (HTK) [10] là bộ công cụ cho phép xây dựng các mô hình Markov ẩn. HTK chủ yếu được sử dụng cho nghiên cứu nhận dạng tiếng nói mặc dù nó đã được sử dụng cho các rất nhiều ứng dụng khác bao gồm các nghiên cứu tổng hợp tiếng nói, nhận dang chữ viết...

HTK bao gồm một bộ thư viện các mô đun và các công cụ có sẵn dưới dạng dạng mã nguồn C. Những công cụ này cung cấp những giải pháp tinh vi cho việc phân tích tiếng nói, huấn luyện HMM , thử nghiệm và phân tích kết quả. Phần mềm có thểđược sử dụng để xây dựng các mô hình HMM phức tạp .

Hình 14: Kiến trúc ca HTK [10, tr. 15]

Theo hình 16, tất cả các tiếng nói đầu vào, đầu ra biểu diễn dạng sóng được thông qua Hwave, được tham số hóa bởi Hprame. Hwave và Hlabel hỗ trợ nhiều định dạng file khác nhau có thểđược nhận vào từ hệ thống khác. Dữ liệu tiếng nói trực tiếp được hỗ trợ bời Haudio. Hutil cung cấp một số các tiện ích cho phép thao tác trên các mô hình markop ẩn, Hrec chứa các chức năng xử lý nhận dạng chính.

1.7.2. Nguyên lý hot động ca b gii mã trong HTK

Giải mã trong HTK được thực hiện bởi thư viện HRec. HRec sử dụng kỹ thuật chuyển thẻ (token passing) để tìm đương đi tốt nhất, ngoài ra còn có tùy chọn tạo ra nhiều giả thuyết đường đi khác nhau. Thông tin nhận dạng phong phú nhất có thể được tạo ra bằng cách thiết lập hệ nhận dạng để sinh ra lưới giả thuyết.

Nội dung của lưới thu được phụ thuộc vào cách thiết lập số token lưu giữ tốt nhất tại một thời điểm trong quá trình tìm đường của token. Để có cái nhìn chi tiết hơn về các thông tin trong lưới kết quả ứng với quá trình nhận dạng, mục này tôi xin được trình bày sâu hơn về mô hình token passing trong HRec.

Để có thể sử dụng HRec từ dòng lệnh, HTK cung cấp một công cụ gọi là Hvite.

Mô hình token passing

Giải mã trong HTK được điều khiển bởi một mạng nhận dạng được biên dịch từ một mạng mức từ, một từđiển và một tập các HMMs. Mạng nhận dạng bao gồm một tập các nút được kết nối bởi các cung. Mỗi nút có thể là một thể hiện của mô hình HMM hoặc là một từ. Mỗi nút mô hình, bản thân nó là một mạng các trạng thái kết nối với nhau bởi các cung. Do đó, một mạng nhận dạng sau cùng bao gồm các trạng thái HMM kết nối với nhau thông qua các chuyển đổi (trạng thái). Tuy nhiên, mạng nhận dạng có thểđược nhìn nhận tại ba mức : mức từ, mức mô hình và mức trạng thái. Hình sau đây mô tả một đoạn trong mạng nhận dạng với ba mức khác nhau: Hình 16: Các mc độ ca mng nhn dng [12] Tôi Học bài Mức từ h ọ c s1 s1 s1 Mức mô hình Mức trạng thái s2 s3

Xét một từđược nói với T frames, mỗi đường truyền từ nút đầu tới nút kết thúc của mạng mà đi qua chính xác T trạng thái HMM- được phát ra, là một giả thuyết nhận dạng. Mỗi đường truyền có một xác suất loga được tính bằng cách tính tổng xác suất của mỗi chuyển đổi riêng biệt trong một đường truyền và xác suất loga của mỗi trạng thái mà phát ra một quan sát tương ứng. Các chuyển đổi trong mô hình HMM được xác định từ các tham số HMM, các chuyển dịch giữa các mô hình là không thay đổi và chuyển đổi giữa các từ được xác định bởi các xác suất thống kê của mô hình ngôn ngữđược đưa vào mạng mức từ.

Công việc của bộ giải mã là tìm những đường truyền thông qua mạng mà có xác suất loga cao nhất. Những đường truyền này được tìm thấy bằng cách sử dụng thuật toán Token Passing. Một token mô tả một đường truyền cục bộ thông qua mạng từ thời điểm 0 tới thời điểm t. Tại thời điểm 0, một token được đặt trong mỗi nút khởi tạo có thể.

Tại mỗi bước thời gian phát ra tín hiệu (frame thời gian), các token được nhân lên theo các chuyển đổi kết. Khi có nhiều đầu ra từ một nút, token được sao chép đồng thời tới tất cả các đường truyền có thểđược tìm thấy. Token được truyền qua các chuyển đổi và thông qua các nút, xác suất loga của nó được tăng với xác suất chuyển đổi và xác suất sinh ra các quan sát tương ứng. Một nút mạng có thể nắm giữ tại nhiều nhất N tokens. Kết thúc mỗi bước thời gian, tất cả các tokens ngoại bị loại bỏ ngoại trừ N token tốt nhất.

Mỗi token đi qua một mạng, nó phải ghi lại lịch sử hướng đi của nó. Toàn bộ các thông tin chi tiết của lịch sử này phụ thuộc vào yêu cầu đầu ra của bộ nhận dạng. Thông thường, chỉ dãy các từđược mong muốn và chỉ các chuyển đổi ngoài các nút từ cần được lưu giữ. Tuy nhiên, để phục vụ cho một số mục đích khác nhau, nó có thể hữu dụng để biết dãy mô hình thực sự và thời điểm mỗi mô hình thực hiện chuyển đổi mô hình. Một mô tả mỗi đường truyền chi tiết tới mức trạng thái có thể được yêu cầu. Tất cả các thông tin này, mức chi tiết được yêu cầu, có thểđược mô tả một cách thuận lợi bằng cách sử dụng cấu trúc lưới.

Số của các token cho phép trên mỗi nút và toàn bộ thông tin lịch sử sẽ có một tác động đáng kể đến thời gian và dung lượng bộ nhớ cần thiết để xây dựng các lưới. Cấu hình hiệu quả nhất là N=1 kết hợp với thông tin lịch sử mức từ.

Chúng ta có thể hình dung như sau, mỗi trạng thái j của một HMM tại thời điểm t giữ một token di động chứa thông tin về lôga xác suất cục bộψj(t).

Các bước thc hin chính ca thut toán:

- Truyền một sao chép của mỗi token trong trạng thái i tới tất cả các trạng thái

j kết nối với trạng thái i, tăng xác suất loga trong thông tin nắm giữ của token sao chép:

log[aij ] + log[bj(o(t)].

- Kiểm tra các token trong mỗi trạng thái và loại bỏ tất cả, chỉ giữ lại các token có xác suất lớn nhất.

Giả thiết rằng, Các HMMs được định nghĩa bởi một mạng trạng thái hữu hạn. Hình bên dưới hiển thị một mạng đơn giản, trong đó mỗi từđược định nghĩa là một dãy các âm vị được xây dựng trên mô hình HMM và tất cả các từ được đặt trong vòng lặp. Trong mạng này, các biểu tượng hình ô van mô tả các HMM và các ô hình vuông mô tả các nút từ. Mạng đa hợp này về bản chất là một tập các HMM và thuật toán Token Passing được áp dụng để tìm kiếm trên mạng này. Công việc bây giờ là xác định các xác suất của token tốt nhất. Khi token tốt nhất đạt tới trạng thái cuối cùng,hướng đi của nó thông qua mạng phải được lưu giữ theo thứ tự khôi phục lại dãy được nhận dạng của các mô hình.

h ọ c đ i t ô i tôi đi học ….vv

Hình 17: Mng nhn dng cho từđược nói liên tc [12]

Lịch sử của mỗi hướng đi của token thông qua mạng có thể được giữ lại mộ cách có hiệu quả. Mỗi token mang một con trỏ gọi là một liên kết từ. Khi một token được nhân ra (sao chép) từ trạng thái ra của một từ (được xác định khi đi qua một nút kết thúc từ) tới trạng thái đầu vào của một từ kế tiếp, sự chuyển tiếp này mô tả một ranh giới của từ. Do đó, một bản ghi gọi là bản ghi liên kết từ (Word Link Record) được sinh ra, trong đó, lưu trữđịnh danh của từ mà token được sinh ra và giá trị hiện thời của liên kết của token. Liên kết thực sự của token sau đó được thay thế bởi một con trỏ tới tới một trạng thái mới mà WLR được tạo ra.

Một khi tất cả các đoạn tiếng nói đã được xử lý. WLRs được gắn tới liên kết của token tốt nhất (đó là token với xác suất loga cao nhất) , do đó, có thể tìm trở lại dãy từ tốt nhất. Tại cùng thời điểm vị trí của các ranh giới của từ cũng được đưa ra.

Hình 18: Token ghi li gii hn t [12] t ô i đ i h ọ c tôi tôi tôi Token tốt nhất đến từ “tôi” logP logP logP t-1 tôi logP t đi

Hình 21 mô tả các token tốt nhất lưu giữ lại lịch sự lộ trình hướng đi của nó: tôi

start đi học end

logP t1 path1 tôi logP t2 path2 đi logP t3 path3 học silence tôi silence->tôi->đi silence logP t4 path4 silence logP t0 path1 silence silence->tôi->đi->học Hình 19: L trình di chuyn ca token [12]

Thuật toán token passing áp dụng cho nhận dạng tiếng nói liên tục đã được mô tảở đây chỉ ghi lại dãy các từ. Ngoài ra, thuật toán còn có thểđược áp dụng để ghi lại chính xác tại mức trạng thái và mức mô hình. Các token tốt nhất tại mỗi ranh giới từ có thể được ghi lại, với mục đích phát ra một lưới các giả thuyết thay vì chỉ tìm ra một giả thuyết tốt nhất.

Thuật toán dựa trên ý tưởng này được gọi là lưới N-best. Mỗi trạng thái của mô hình HMM nắm giữ nhiều token và nhìn nhận các token một cách riêng biệt nếu chúng đến từ các từ khác nhau trước đó. Thuật toán token passing được sử dụng trong gói thư viện Hnet và Hrec và chúng có thể được gọi từ dòng lệnh bằng cách sử dụng công cụ nhận dạng Hvite. Chúng hỗ trợ lựa chọn nhận dạng sử dụng một hoặc nhiều token cho mỗi trạng thái, qua đó sinh ra một kết quả tốt nhất, hoặc danh sách N kết quả tốt nhất, lưới kết quả.

Ví dụ trường hợp bộ nhận dạng giả mã một câu được nói : “tôi đến trường”. Kết quả tốt nhất của bộ nhận dạng (1-best): tôi đi học.

Trường hợp 2-best: tôi đi học, tôi đến học.

Hình 20: Đồ th lưới kết qu mc t to ra bi HVite

Dễ dàng nhận thấy, lưới kết quả cho ra rất nhiều giả thuyết nhận dạng, ngoài kết quả tốt nhất, 2-best, nó còn chứa thêm nhiều giả thuyết nhận dạng nữa. Đặc biệt, ta có thể tìm ra một giả thuyết nhận dạng đúng câu được nói: “tôi đến trường”.

Kết lun: Như vậy, việc truy vấn thông tin muốn tăng độ chính xác thì nên thiết lập HVite chạy theo chế độ sử dụng nhiều hơn 1 token và cho sinh ra kết quả là lưới nhiều giả thuyết thay vì một giả thuyết tốt nhất.

1.7.2. Xây dng h thng nhn dng s dng HTK

- Bước 1: Tạo các file tham số mfcc từ dữ liệu các file wav thu âm. Việc trích chọn các tham số này đươc lệnh HCopy của HTK thực hiện. Hình 23 mô tả các tham số đầu và đầu ra của HCopy

Hình 21: Trích chn thông tin tiếng nói s dng HCopy [10]. Đầu vào cho HCopy là kho d liu tiếng nói Training Corpus, Script file là danh sách các file trong kho cn trích chn tham s, và Configuration file là file cu hình các tham s cn thiết cho HCopy

Hình 22: Khi to mô hình HMM [10]. Proto là khuôn mu ca mô hình markop n, hmmo là thưc mc cha các mô hình markop n trng thái khi to. trainning corpus là kho cha các file mfcc mi tính bước 1

Bước 3: Huấn luyện các mô hình HMM, lệnh Hrest thực hiện việc huấn luyện :

Hình 23: Ước lượng các tham s HMM [10]

Quá trình huấn luyện thực hiện nhiều lần đểđến trạng thái hội tụ :

1.7.3. B nhn dng

Bộ nhận dạng= Mạng lưới từ+ Từđiển+ Tập các mô hình markon ẩn.

Hình 25: Mng lưới t nhn dng t Yes, No, s dng mô hình Markov n trái phi 5 trng thái. [10]

Th nghim h thng nhn dng: Đầu vào là tín hiệu tiếng nói (WAV) , hệ thống sẽ chuyển vê các file tham số mfcc và sau đó được nhận dạng :

Hình 26: X lý nhn dng tín hiu tiếng nói đầu vào chưa biết [10]. Các file tiếng nói đầu vào chưa biết

được trích chn tham s thông qua HCopy, làm đầu vào cho Hvite. Hvite cn phi có từđin phiên âm, mng lưới t, các mô hình âm hc để có th tiếng hành nhn dng

CHƯƠNG 2. TNG QUAN V H THNG TRUY VN THÔNG TIN TING NÓI

2.1. Gii thiu truy vn tiếng nói 2.1.1. Khái nim 2.1.1. Khái nim

Truy vấn tiếng nói là tìm tất cả sự xuất hiện của một term (một dãy các từ ngắn liền kề nhau, và có ý nghĩa về mặt ngữ pháp) trong một cơ sở dữ liệu tiếng nói tương đối lớn.

2.1.2. Mc đích ca truy vn tiếng nói

Giúp người dùng có thể truy vấn thông tin dữ liệu tiếng nói một cách nhanh chóng và chính xác trên một cơ sở dữ liệu khổng lồ từ nhiều nguồn và dạng khác nhau.

Truy vấn thông tin từ các nguồn âm thanh khác nhau (Audio mining)- đánh chỉ mục và tìm kiếm.

2.1.3. Các công vic cn thc hin ca h thng STD

- Đánh chỉ mục cho tập dữ liệu tiếng nói cần khai thác thông tin.

- Tìm tất cả sự xuất hiện của các terms (dãy các từ) xác định trong tập chỉ mục đó. - Một số lượng tương đối lớn các term tìm kiếm và các loại dữ liệu khác nhau

(tiếng nói được ghi âm tại các môi trường khác nhau..) sẽđược sử dụng để đánh giá công nghệ STD được sử dụng.

- Đánh giá chất lượng của hệ thống thông qua các tiêu chí: tốc độ của hệ thống, độ chính xác của hệ thống, và khả năng thi hành của hệ thống đối với các loại dữ liệu và các loại term khác nhau. Ứng với mỗi tiêu chí sẽ có các phép đo chuẩn khác nhau được đưa ra bởi tổ chức NIST.

2.1.4. Đặc đim đầu vào đối vi các term tìm kiếm

Một term bao gồm một hay nhiều từ liên tiếp được ghép nối với nhau theo một trật tựđúng ngữ pháp tương ứng với từng loại ngôn ngữ khác nhau.

Ví dụ đối với term Tiếng Việt: “sinh viên”, “giảng viên”, “chương trình đào tạo”, “quá trình học tập”…

2.1.5. Kết quảđầu ra ca h thng STD

Đối với mỗi term được tìm kiếm, hệ thống sẽ đưa ra danh sách các giả thuyết với thông tin về thời điểm bắt đầu và kết thúc của term được phát hiện trong tập dữ liệu tiếng nói truy vấn.

Kèm theo đó là điểm về mức độ phù hợp của term, ngưỡng cho quyết định đưa ra kết quả. Các điểm sẽ có các công thức khác nhau và cùng được quy ước theo một chuẩn thống nhất. Các ngưỡng sẽ được đưa ra dựa theo kinh nghiệm, tùy theo loại dữ liệu, loại term khác nhau và công nghệ STD khác nhau.

2.1.6. Đánh giá cht lượng ca h thng

• Độ chính xác

Độ chính xác của hệ thống STD sẽ được đánh giá qua các phép đo: tỉ lệ bỏ sót term (miss) và xác suất cảnh báo lỗi (false alarms).

) ( ) ( 1 ) ( q R q C q Pmiss = − ) ( ) ( ) ( 1 ) ( q R T q C q A q P specch FA − − − = { } ∑ = − − = Q q fa miss q P q P Q ATWV 1 ) ( * ) ( 1 1 β (theo NIST 2006, chọn β=1000)

R(q) là số lần thực tế xuất hiện term truy vấn q trong kho dữ liệu. A(q): số lần hệ thống phát hiện truy vấn q, C(q) là số lần hệ thống phát hiện đúng truy vấn q.

Tspeech là tổng thời gian tính bằng giây của các file âm thanh trong kho dữ liệu tiếng nói.

Vị trí của giả thuyết term được đưa ra sẽ được coi là chính xác nếu nó nằm trong phạm vi 0.5 giây xung quanh vị trí được tham chiếu chính xác, việc kiểm tra điều kiện được thỏa mãn như vậy sẽđược kết luật là một so khớp đúng.

Hiu năng ca h thng

Hiệu năng của hệ thống sẽ được đánh giá theo độ chính xác tìm kiếm term đối với các danh mục term khác nhau và trên các loại dữ liệu nguồn khác nhau.

Một phần của tài liệu Truy vấn thông tin trong tiếng nói tiếng việt (Trang 26)