Nhận dạng tiếng nói tiếng việt theo hướng tiếp cận nhận dạng âm vị tự động

Phương pháp được chúng tôi sử dụng là data driven- clustering. Chúng ta sẽ gom nhóm các trạng thái của các mô hình triphone dựa vào độ đo khoảng cách giữa các trạng thái. Các trạng thái cùng 1 phân nhóm sẽ được buộc vào thành 1 trạng thái. Dựa vào các nhóm trạng thái này chúng ta sẽ gom nhóm các âm vị. Cách gom nhóm các trạng thái được tiến hành nhưsau. Ban đầu mỗi trạng thái sẽ nằm ở 1 cluster. Tại mỗi bước lặp, hai cluster khi trộn sau khi trộn vào có khoảng cách trung bình giữa các trạng thái trong cùng 1 cluster là nhỏ nhất sẽ được trộn lại. Quá trình được lặp cho đến khi tồn tại 1 cluster có khoảng cách trung bình giữa các trạng thái lớn hơn ngưỡng T. Nếu ngưỡng T càng lớn thì sốcluster càng giảm.

pdf91 trang | Chia sẻ: lylyngoc | Lượt xem: 2728 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Nhận dạng tiếng nói tiếng việt theo hướng tiếp cận nhận dạng âm vị tự động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ch khoảng như vậy của dãy bộ lọc, tỉ lệ nhận dạng đúng được nâng lên. ƒ Tiếp theo, các hệ số cepstral được tính từ phép biến đổi Cosine rời rạc (DCT). 41 KH OA C NT T – Đ H KH TN Tiền xử lý tín hiệu Tiếng nói và rút trích đặc trưng c’ = DCT{S’’’(ω)} 12 hệ số đầu tiên (trừ đi hệ số thứ 0) chính là các đặc trưng MFCC 3.3.2.3. Phương pháp Mã hoá cepstral tần số Mel dựa trên LPC (MFCC) Phương pháp này giống như phương pháp MFCC. Điểm khác biệt là sau bước phân chia cửa sổ, phổ tín hiệu được tính thông qua phép biến đổi dự báo tuyến tính LPC thay vì dùng các phép biến đổi Fourier. Tín hiệu tiếng nói Làm nổi tín hiệu Phân chia cửa sổ FFT LPC HÌNH 11 – Sơ đồ của bộ lọc MFCC dựa trên biến đổi dự báo tuyến tính và các biến đổi Fourier 3.3.2.4. Các hệ số delta (D) và hệ số gia tốc (A) Hiệu suất của một hệ nhận dạng tiếng nói có thể tăng lên đáng kể nếu chúng ta đưa thêm gia số thời gian vào bộ tham số tĩnh cơ bản. Ở đây, chúng ta sẽ xem xét hệ số D (delta) và hệ số A (accelerator). Dãy bộ lọc Mel Log|tín hiệu đã lọc Mel| DCT Các đặc trưng MFCC Dãy bộ lọc Mel Log|tín hiệu đã lọc Mel| DCT Các đặc trưng MFCC dựa trên LPC 42 KH OA C NT T – Đ H KH TN Tiền xử lý tín hiệu Tiếng nói và rút trích đặc trưng Hệ số D là hệ số có được do tính đạo hàm bậc nhất của đặc trưng gốc, hệ số gia tốc A có được nhờ tính đạo hàm bậc hai của đặc trưng gốc. Hệ số A không thể dùng riêng lẻ một mình. Hệ số delta được tính dựa vào công thức truy hồi sau: ( ) ∑ ∑ Θ = Θ = −+ −= 1 2 1 2 θ θ θθ θ θ tt t cc d trong đó, dt là hệ số delta tại thời điểm t được tính dựa theo các hệ số tĩnh và θ+tc θ−tc Do phương trình trên phụ thuộc vào các giá trị tham số tiếng nói đã sử dụng và chưa sử dụng nên chúng ta cần tinh chỉnh phần đầu và cuối của lời nói. Thông thường, chúng ta nhân đôi vector đầu tiên hoặc vector cuối cùng. Một cách khác là sử dụng điểm khác biệt vị trí đầu ở đầu và cuối tiếng nói: dt = ct+1 - ct, t < Θ và dt = ct - ct-1, t >= T – Θ trong đó, T là chiều dài dữ liệu Nếu sử dụng hệ số delta và hệ số gia tốc trong đặc trưng, chúng được áp dụng cho toàn bộ các đặc trưng gốc, bao gồm cả năng lượng nếu có. Trong vài ứng dụng, năng lượng tuyệt đối không đóng vai trò quan trọng, nhưng những trích đoạn về thời gian của năng lượng thì quan trọng. 3.3.3. So sánh các phương pháp trích đặc trưng ™ Phương pháp LPC – Phương pháp MFCC dựa trên LPC Spectral LPC dùng bộ lọc tỉ lệ Mel (MFCC dựa trên LPC) có hiệu suất tốt hơn một chút so với spectral LPC dự báo tuyến tính. Nguyên nhân có thể do hiệu ứng làm mượt vùng tần số cao của bộ lọc tỉ lệ Mel, làm giảm đi các yếu tố cao thất thường trong vòng tần số cao bằng cách nâng cao băng thông của các dãy bộ lọc Mel. 43 KH OA C NT T – Đ H KH TN Tiền xử lý tín hiệu Tiếng nói và rút trích đặc trưng ™ Phương pháp MFCC dựa trên LPC – Phương pháp MFCC dựa trên FFT MFCC dựa trên LPC có khuynh hướng phụ thuộc người nói, do đó, thích hợp hơn cho các công việc nhận dạng người nói. Đối với tiếng nói không bị pha tạp tiếng ồn hoặc tiếng nói giống tiếng nói đã học mẫu, phương pháp LPC có hiệu suất kém hơn FFT (cả 2 đều dùng bộ lọc tỉ lệ Mel), nhưng đối với tiếng nói ở môi trường ồn ào hoặc không giống dạng tiếng nói đã học mẫu, ước lượng spectral LPC có hiệu suất cao hơn. 44 KH OA C NT T – Đ H KH TN Thuật giải Embedded training CHƯƠNG 4 Thuật giải Embedded training – tách và xây dựng mô hình HMM tự động cho âm vị 4.1. Tách và nhận dạng âm vị tự động dựa trên HMM 4.1.1. Thuật toán huấn luyện đối với những đơn vị độc lập - Huấn luyện trên dữ liệu gán nhãn Đầu vào chính là các mô hình HMM đã được khởi tạo dữ liệu huấn luyện đã được gán nhãn với biên xác định của từng âm vị. Tool để thực hiện việc này trong HTK là HRest. Như đã giới thiệu về HMM HRest cũng sử dụng Baum-Welch Re-estimation. Như đã giới thiệu ở trên phần thuật giải Baum-Welch nó liên quan đến việc tìm xác suất đạt mỗi trạng thái tại mỗi frame theo thời điểm t sử dụng thuật giải Forward-Backward. Xác suất này dùng để tính giá trị trung bình các tham số của HMM. Thuật giải được mô tả bằng lưu đồ sau: 45 KH OA C NT T – Đ H KH TN Thuật giải Embedded training HMM khởi tạo:λao Thuật toán forward-Backward Cập nhật tham số HMM: λao. HÌNH 12 – Lưu đồ huấn luyện từ đơn của công cụ HRest (HTK) Giả sử chúng ta cần huấn luyện HMM cho âm vị /a/ (HMM λa). HRest sẽ load mô hình HMM khởi tạo λao và quá trình ước lượng tham số sử dụng tất cả các đoạn dữ liệu được gán nhãn (được xác định trong file đánh nhãn) cho âm vị /a/ áp dụng thuật toán Baum-Welch để ước lượng các tham số cho HMM λa theo hình vẽ trên. 4.1.2. Thuật giải Embedded training - huấn luyện trên dữ liệu âm thanh không gán nhãn âm vị Thuật giải này dựa trên thuật toán Baum-Welch nên còn có tên gọi là Embedded Baum-Welch. Thuật giải huấn luyện cho từng đơn vị riêng lẻ thích hợp cho mô hình HMM cho từ đơn và nó được khởi tạo dựa trên dữ liệu gán nhãn. Đối với nhận dạng tiếng nói dùng mô hình dưới từ (âm vị) thì thuật toán Embedded training thường được sử dụng. Không giống như quá trình huấn luyện đã mô tả ở trên, embedded training sử dụng tất cả các dữ liệu huấn luyện để cập nhật tất cả các HMM. Trong HTK công cụ thực hiện chức năng này có tên là HERest. false true Hội tụ Mô hình HMM ước lượng được 46 KH OA C NT T – Đ H KH TN Thuật giải Embedded training Hoạt động của thuật toán như sau. Đầu tiên chương trình load tất cả các tập hợp các định nghĩa của mô hình HMM. Mỗi file huấn luyện sẽ có 1 file đánh nhãn đi kèm với nó. File đánh nhãn này chỉ chứa thứ tự các âm vị chứ không chứa biên các âm vị. Embedded training xử lý mỗi file huấn luyện như sau: Sau khi load toàn bộ file dữ liệu chương trình sẽ sử dụng file gán nhãn (như đã nói ở trên) để xây dựng 1 mô hình HMM tổng hợp cho toàn bộ câu. Mô hình HMM tổng hợp được tạo ra bằng cách móc nối các mô hình HMM cho từng âm vị theo thứ tự của âm vị chứa trong file đánh nhãn. Sau đó thuật toán Forward và Backward để tính các giá trị trọng số trung bình của HMM tổng hợp theo cách bình thường. Khi tất cả các file huấn luyện được xử lý các tham số mới sẽ được tính bằng cách lấy các giá trị trung bình. Giả sử ban đầu chúng ta có các định mô hình HMM (chưa được huấn luyện) của các âm vị sau: /m/: λm, /o6/2: λo6 , /t/: λt , /h/: λh, /b/: λb, /a/: λa, /i/: λi, /sil/3: λsil HÌNH 13 – Dãy sóng âm “MO6T MO6T HAI HAI BA MO6T” Dữ liệu huấn luyện là dãy âm tiết: “một một hai ba một”, viết theo ký hiệu âm vị được chúng tôi quy ước là “MO6T MO6T HAI HAI BA MO6T” Thứ tự âm vị của dãy âm tiết: /sil/ /m/ /o6/ /t/ /sil/ /m/ /o6/ /t/ /sil/ /h/ /a/ /i/ /sil/ /h/ /a/ /i/ /sil/ /b/ /a/ /sil/ /m/ /o6/ /t/ /sil/ Mô hình HMM tổng hợp trên toàn câu: λsil -> λm-> λo6-> λt->λsil -> λm -> λo6 -> λt -> λsil -> λh -> λa -> λi -> λsil -> λh -> λa -> λi -> λsil -> λb -> λa -> λsil 2 /o6/: ký hiệu thể hiện âm vị /ô/ tiếng Việt 3 /sil/: ký hiệu thể hiện khoảng im lặng trong lời nói (Khoảng im lặng được chúng tôi quy ước là một âm vị) 47 KH OA C NT T – Đ H KH TN Thuật giải Embedded training Ta có mô hình huấn luyện Embedded training như sau: h a i … b a sil k b o6 n sil … data/tr1.lab data/tr2.lab data/tr3.lab c a n sil … data/tr3.lab HÌNH 14 – Mô hình huấn luyện Embedded training Khi huấn luyện, nên theo dõi hiệu quả của quá trình huấn luyện và nên dừng khi thấy không kết quả huấn luyện không tốt hơn. Ta sẽ xem giá trị log likelihood trung bình trên mỗi frame của file huấn luyện. Độ đo này là điều kiện hội tụ của thuật toán Embedded training. Tuy nhiên để hội tụ sẽ mất rất nhiều thời gian. Tệ hơn nữa nếu huấn luyện quá lâu chúng sẽ gây ra hiện tượng quá luyện vì các mô hình HMM sẽ quá khớp với dữ liệu huấn luyện do đó tính tổng quát của nó không cao. Trong thực tế thì số bước huấn luyện có thể là từ 2 đến 5 bước đối với nhận dạng âm vị. Chúng ta có thể quyết định số bước này thông qua quan sát kết quả sau mỗi bước huấn luyện hoặc qua kết quả huấn luyện. Để đạt được độ chính xác cao, nên chẩn bị lượng dữ liệu huấn luyện càng nhiều càng tốt. Theo thực nghiệm, với lượng dữ liệu là vài giờ đọc thì thơi gian của mỗi bước lặp cũng có thể lên đến vài giờ. Để tăng hiệu quả tính toán thì người ta áp dụng 2 giải pháp: 48 KH OA C NT T – Đ H KH TN Thuật giải Embedded training Giải pháp thứ nhất được HERest (thư viện HTK) sử dụng: cắt bớt những tính toán không cần thiết trong công thức của thuật toán forward-backward. Cơ chế này được gọi là pruning. HERest sẽ tính xác suất backward βj (t) trước sau đó tính xác suất forward αj (t) sau. Tính toán αj(t) và βj (t) trên tất cả các trạng thái j và tất cả các thời điểm t là không cần thiết vì nhiều tính toán trong số đó là không có ảnh hưởng đáng kể tới kết quả. Do đó áp dụng prunning sẽ giảm số trạng thái được xét αi(t) và βi(t). Giảm tính toán trên forward αj (t) luôn luôn được thực hiện vì nó không ảnh hưởng nhiều tới kết quả và trong HTK, nó được thực hiện tự động. Còn giảm bớt số trạng thái trên backward βi(t) thì được thực hiện thông qua ngưỡng do người dùng đưa vào. Ngưỡng này phụ thuộc vào dữ liệu nên cần thông qua thực nghiệm để kiểm chứng. Giải pháp thứ hai để tăng tốc độ tính toán là dùng nhiều CPU chạy song song. 4.2. Các công thức ước lượng tham số của mô hình HMM 4.2.1. Ước lượng tham số khi huấn luyện các mô hình HMM độc lập Giả sử chúng ta có 1 tập các chuỗi quan sát như sau: O={O1, O2, …, Or, …, OR} được dùng để ước lượng cho mô hình λ và mô hình HMM cần ước lượng tham số hiện tại là λ=(A,B). Mỗi vector quan sát Or=(o1, o2, …, oTr}. λ có N trạng thái. Như vậy chúng ta cần ước lượng các tham số sau: A={ai j} là xác suất chuyển trạng thái và tập tham số đặc trưng cho mỗi trạng thái là vector trung bình µ và hiệp phương sai ∑. ™ Xác suất chuyển trạng thái Công thức để chung để ước lượng xác suất chuyển trạng thái: ),1( )()(1 )1()()(1 ˆ 1 1 1 1 1 1 Nji tt P tobat Pa R r r i r i Tr t r R r Tr t r j r tjji r i r ji << − = ∑ ∑ ∑ ∑ = = = − = + βα βα với: 49 KH OA C NT T – Đ H KH TN Thuật giải Embedded training Pr= P(Or | λ) ƒ αri (t) βrj là hàm xác suất Forward xác suất Backward đã được giới thiệu. ƒ ai j là xác suất chuyển trạng thái từ trạng thái i sang trạng thái j trong mô hình cũ λ. ƒ bj(ort+1) là xác suất frame đạt trạng thái j đối với vector đặc trưng ort+1 trên mô hình HMM cũ. ƒ Tr là số vector đặc trưng của chuỗi quan sát or. Xác suất chuyển trạng thái từ trạng thái khởi đầu đến trạng thái j trong là: ∑ = <<= R r r j r j r ji NjPR a 1 1,)1()1(11ˆ βα )1()()()( )()()(1 ˆ )1( 1 )( 1 )( 1 )( 11 )( 1 1 1 1 )()()( 1 )( 1 )( 1 rqq Nq rqrqR t rq R r Tr t rq j r t q j q j rq rq j attt tobat Pa + = = − = +=∑ ∑ ∑ βαβα βα Xác suất chuyển từ 1 trạng thái bất kỳ đến trạng thái kết thúc: Ni tt P TT Pa R r Tr t r i r i r R r r i r i r j <<=∑ ∑ ∑ = = = 1, )()(1 )()(1 ˆ 1 1 1 1 βα βα ™ Các tham số µ và ∑ của mỗi trạng thái Ta có: αrj(t)βj(t)=P(Or, s(t)=j|λ) Đặt: )()(1 )|( )|)(,()|)(|()( tt P OP jtsOPjtsOPt jj r r r rr jL βα λ λλ = ==== 50 KH OA C NT T – Đ H KH TN Thuật giải Embedded training Ta có: ∑ ∑ ∑ ∑ = = = == R r Tr t r j R r Tr t r t r j j tL OtL 1 1 1 1 )( )(µˆ ∑ ∑ ∑ ∑ = = = = ′−−=∑ R r Tr t r j R r Tr t j r tj r t r j j tL OOtL 1 1 1 1 )( )ˆ)(ˆ()(ˆ µµ 4.2.2. Ước lượng tham số trong thuật giải Embedded training Các công thức ước lượng tham số của embedded training cần phải thay đổi để sao cho trạng thái đầu của HMM có thể xuất hiện bất cứ lúc nào do kết quả của sự đi ra khỏi mô hình trước. Xác suất chuyển đổi trạng thái cơ bản sẽ được xác định như sau: ∑ ∑ ∑ ∑ = = = − = + + = R r rq i Tr t rq ji r R r Tr t rq j r t q j q ji rq i rq ji t P tobat Pa 1 )( 1 )( 1 1 1 )( 1 )()()( )( )(1 )1()()(1 βα βα Xác suất chuyển trạng thái từ 1 trạng thái khởi đầu đến 1 trạng thái khác là: ∑ ∑ ∑ ∑ = − = = − = + + + = R r Tr t rqq Nq rqrqrq r R r Tr t rq j r t q j q j rq rq j tattt P tobat Pa 1 1 1 )( 1 )( 1 )( 1 )( 1 )( 1 1 1 1 )( 1 )()( 1 )( 1 )( 1 )()()()(1 )1()()(1 ˆ βαβα βα trong đó là xác suất chuyển đến HMM kế. )()( )(1)(1)(1 tat rqqNqrq βα Xác suất chuyển trạng thái đi ra khỏi HMM tức chuyển đến trạng thái kết thúc của HMM được tính như sau: ∑ ∑ ∑ ∑ = − = = − = = R r Tr t rq i rq i r R r Tr t rq Nq q Nqi rq i rq Nqi tt P tat Pa 1 1 1 )()( 1 1 1 )()()( )( )()(1 )()(1 ˆ βα βα 51 KH OA C NT T – Đ H KH TN Thuật giải Embedded training Cuối cùng xác suất chuyển trạng thái từ trạng thái đầu đến trạng thái kết thúc của HMM được xác định: ∑ ∑ ∑ ∑ = − = = − = + = R r Tr t rqq Nq rqrq i rq i r R r Tr t rqq Nq rq rq Nq tattt P tat Pa 1 1 1 )( 1 )( 1 )( 1 )()( 1 1 1 )( 1 )( 1 )( 1 )( 1 )()()()(1 )()(1 ˆ βαβα βα Các tham số µ và ∑ được xác định tương tự như đối với huấn luyện mô hình độc lập ở trên. Trong đó các giá trị ( )trqi )(α và được tính hơi khác so với thuật giải forward-backward nguyên thủy. Trong quá trình huấn huấn luyện Embedded training, HMM trên toàn bộ chuỗi quan sát O là mô hình HMM phức bao gồm Q mô hình HMM âm vị móc nối với nhau. Giả sử tại thời điểm t giá trị α và β tương ứng với trạng thái mở đầu và trạng thái kết thúc của 1 HMM tại thời điểm t-∆t và t+ ∆t với ∆t tương đối nhỏ. )()( trqiβ Đối với xác suất Forward: Tại thời điểm t=0: ⎪⎩ ⎪⎨ ⎧ ≠ == −− − 1,)1( 1q,1 )1( )1( 1 )1( 1 )( 1 1 qa qN q q q αα ∑− = = = 1 1 )()( 1 )()( 1 )( )1()1( )()1( q qq N i q Ni q i q N q j q j q j a oba αα α với q là chỉ số của HMM thứ q trong Q HMM trên chuỗi vector quan sát. Với t>1 ⎪⎩ ⎪⎨ ⎧ ≠+− == −−− − − 1,)()1( 1,0 )( )1( 1 )1( 1 )1( 1 )( 1 1 qatt q t q N qq N q qq ααα 52 KH OA C NT T – Đ H KH TN Thuật giải Embedded training ∑ ∑ − = − = − = ⎥⎦ ⎤⎢⎣ ⎡ −+= 1 2 )()()( )( 1 2 )()1( 1 )( )()( )()1()()( q qq q N i q Ni q i q N t q j N i ji q i qq j att obattt αα ααα Đối với xác suất Backward: Tại thời điểm t=T: ⎪⎩ ⎪⎨ ⎧ ≠ == ++ ++ Qqa Qq q N q N q N qq q )1( 1 )1( )( 11 )1( ,1 )1( ββ ∑− = = = 1 2 )()( 1 )( 1 )()()( )()()1( )()( q qq N i q jT q j q j q q N q Ni q i Toba TaT ββ ββ Tại thời điểm t<T: ⎪⎩ ⎪⎨ ⎧ ≠+ == ++− ++ Qqat Qq q N q N q q qq ,)()1( 0 )1( )1( 1 )1()1( 1 )( 1 11 βββ ∑ ∑ = += − = + )()()( )()()( )()()( 1 )( 1 1 2 )( 1 )()()()()( tobat obatat q jt q j q j q N j q jt q j q ji q Nq q Nqi q i q ββ βββ 4.3. Các vấn đề về tham số của HMM khi sử dụng thuật giải Embedded training. Ở đây, chúng tôi giới thiệu các vấn đề liên quan đến quá trình huấn luyện. Các giải pháp cụ thể sẽ được nêu trong phần thực hiện bài làm. 4.3.1. Khởi tạo tham số Dù là huấn luyện đối với dữ liệu có gán nhãn hay là dữ liệu không gán nhãn thì việc khởi tạo tham số cho HMM đều rất quan trọng vì nó ảnh hưởng đến tốc độ hội tụ và độ chính xác của thuật toán. Hơn nữa khi sử dụng thuật giải Baum-Welch, 53 KH OA C NT T – Đ H KH TN Thuật giải Embedded training nếu dữ liệu không đầy đủ sẽ cho ra kết quả cục bộ. Đặc biệt, khởi tạo tham số lại càng quan trọng đối với huấn luyện không giám sát. Trong thực tế sẽ có rất nhiều phương pháp để khởi tạo tham số. Chúng ta có thể dùng một số dữ liệu huấn luyện để khởi tạo một vector trung bình toàn cục µ và vector covariance toàn cục ∑ cho toàn bộ các trạng thái của cho HMM. 4.3.2. Ngưỡng Như đã giới thiệu ở phần trên, để tăng tốc độ tính toán thì trong quá trình huấn luyện chúng ta sẽ sử dụng một số giá trị ngưỡng. Tuy nhiên, nếu số lượng ngưỡng này càng lớn thì độ chính xác của thuật toán sẽ càng thấp (vì càng khó xác định được tập ngưỡng chính xác nhất). Ngưỡng phụ thuộc vào chất lượng và khối lượng dữ liệu huấn luyện. Việc xác định các ngưỡng thường được xác định qua thực nghiệm. 4.3.3. Số lần lặp trong mỗi bước luyện của thuật toán Số lần lặp càng nhiều thì kết quả huấn luyện sẽ càng chính xác đối với dữ liệu đang huấn luyện. Tuy nhiên, nếu huấn luyện nhiều quá sẽ sinh ra hiện tượng tượng quá luyện - các mô hình HMM quá sát với dữ liệu huấn luyện. Quá luyện làm mức độ tổng quát của các mô hình HMM không cao, khi áp dụng cho dữ liệu mới có thể không đạt kết quả cao. Số lần lặp này cũng phụ thuộc vào dữ liệu. 4.3.4. Dữ liệu huấn luyện Dữ liệu huấn luyện phải đầy đủ. Nếu dữ liệu không đầy đủ thì kết quả học sẽ không tốt đều. Ví dụ: huấn luyện dữ liệu cho âm vị /t/. Nếu chúng ta có nhiều dữ liệu cho âm vị /t/ ở đầu và có rất ít dữ liệu có âm vị /t/ khi xuất hiện ở cuối từ thì khi huấn luyện xong, chương trình sẽ không nhận dạng tốt các âm vị /t/ ở cuối từ. Dữ liệu phải chính xác. Trường hợp không chính xác thường do đọc sai hoặc đánh nhãn theo thứ tự các âm tiết trong câu bị sai. Chúng ta có thể loại bỏ dữ liệu xấu bằng cách: sau khi huấn luyện được 1 số bước, cho nhận dạng lại ngay trên các 54 KH OA C NT T – Đ H KH TN Thuật giải Embedded training mẫu đã huấn luyện. Nếu kết quả nhận dạng trên mẫu nào không tốt thì loại bỏ mẫu đó ra khỏi tập mẫu huấn luyện. 55 KH OA C NT T – Đ H KH TN Thực hiện chương trình CHƯƠNG 5 Thực hiện chương trình 5.1. Các khó khăn trong quá trình nhận dạng 5.1.1. Âm vị độc lập và âm vị phụ thuộc ngữ cảnh Trong âm tiết phần vần thường dài, trong đó phần nguyên âm là trọng âm sẽ chiếm phần lớn độ dài của âm tiết còn phụ âm đầu và cuối thường rất ngắn nên rất khó để nhận dạng. Thêm vào đó ảnh hưởng của các nguyên âm lên các phụ âm này thường rất lớn. Do đó, chúng dễ sinh ra những biến điệu. Các nguyên âm (thường là trọng âm) tuy dài nhưng sự ảnh hưởng của các yếu tố khác lên nguyên âm còn lớn hơn nữa nên những biến điệu trên nguyên âm còn lớn hơn. Những biến điệu này đôi khi làm các thể hiện của cùng 1 âm vị trở nên rất xa nhau. Ví dụ âm vị /b/ trong “ba” khác với âm vị /b/ trong “bi” rất nhiều và đặc biệt sự khác nhau này càng lớn đối với trường hợp âm vị đầu và âm vị cuối. Do sự khác nhau đó, chúng ta không thể không thể xây dựng 1 mô hình HMM độc lập ngữ cảnh cho tất cả các âm vị triphone của cùng 1 âm vị monophone. Chẳng hạn đối với nhận dạng âm vị /b/ chúng ta có thể có các âm vị triphone sau đây /b+a/4, /b+e/, /b+i/, /b+u/. Qua thực nghiệm, chúng tôi thấy rằng nếu xem âm vị /b/ trong các từ này đều là 1 âm vị (/b/) thì nó sẽ gây nhầm lẫn với các âm vị rất giống nó, chẳng hạn /đ/. Như đã nói ở trên trong 1 số trường hợp, sự ảnh hưởng của các âm vị lẫn nhau gây ra những biến điệu rất lớn. Đặc biệt là khi phân bố các âm vị phụ thuộc ngữ cảnh (triphone) của cùng 1 âm vị độc lập ngữ cảnh (monophone) không phải là 4 /a0-a1+a2/ là ký hiệu của âm vị triphone a1. Nó cho biết rằng trong ngữ cảnh, âm vị đứng trước a1 là a0 và âm vị đứng sau a1 là a2. /b+a/ là ký hiệu của âm vị triphone /b/ xuất hiện trong những từ bắt đầu bằng “ba” (âm vị đứng sau /b/ là /a/) 56 KH OA C NT T – Đ H KH TN Thực hiện chương trình 1 tập lồi (không nằm trong 1 siêu cầu) thì sự nhầm lẫn với các âm vị khác rất lớn (như hình dưới). Phân bố âm vị /p/ không nằm trên 1 siêu cầu Âm vị khác Kết quả huấn luyện âm vị /p/ HÌNH 15 – Các âm vị không nằm trong 1 siêu cầu Chúng tôi đã thử nghiệm trên 2 chương trình nhận dạng nhận dang từ đơn. Cả hai chương trình đều nhận dạng trên các phụ âm đầu /b/, /d9/5, /kh/, /s/, /t/ và các vần /a/, /ang/, /u/, /e/, /i/: ƒ Chỉ huấn luyện mô hình monophone và nhận dạng trên mô hình HMM monophone. Kết quả nhận dạng: sự nhầm lẫn giữa phụ âm /b/ và /đ/, vần /a/ và vần /ang/ tương đối nhiều ƒ Huấn luyện trên mô hình âm vị phụ thuộc ngữ cảnh (triphone), và gom nhóm các âm vị triphone giống nhau. Quá trình nhận dạng được thực hiện trên các HMM triphone đã gom nhóm. Sự nhầm lẫn trên hầu như không còn. 5 /d9/: ký hiệu cho âm vị /đ/ trong tiếng Việt 57 KH OA C NT T – Đ H KH TN Thực hiện chương trình 5.1.2. Tách âm tiết trong tiếng nói liên tục và sự phụ thuộc giữa các âm vị lẫn nhau trong tiếng nói liên tục Khi con người nói chuyện ở tốc độ bình thường thì ranh giới giữa các âm tiết đôi khi khó phân biệt. Vì vậy, khó đưa việc tách âm hết vào quá trình tiền xử lí. Chúng tôi thực hiện tách âm tiết theo hướng vừa nhận dạng vừa tách. Một đặc điểm nữa là khi nói chuyện ở tốc độ liên tục, các âm tiết kề nhau sẽ ảnh hưởng tới nhau rất nhiều, gây ra các biến thiên trong âm tiết, đặc biệt là đối với các âm tiết mở có âm vị cuối là nguyên âm đơn (ví dụ “ba”, “bi”, “bo”, “na”, “nu”, …) Ví dụ đối với âm tiết “ba”, nếu trong chuỗi tiếng nói liên tục có hai âm tiết gần nhau là “ba” và “na”, thì nếu chúng ta tách riêng hai âm tiết ra, chúng ta sẽ nghe âm tiết “ba” giống với âm tiết “ban” hơn là “ba”. Điều này là do ảnh hưởng của âm mũi /n/ của âm tiết “na” lên âm vị /a/ của âm tiết “ba”. Và nếu chúng ta huấn luyên không khéo thì chương trình sẽ nhận ra là âm tiết “ban” chứ không phải là “ba”. Nhưng nếu trong dữ liệu huấn luyện của chúng ta có đầy đủ dữ liệu có dạng trên (sau âm tiết “ba” là “na” hoặc một âm tiết khác có phụ âm /n/ đứng đầu) thì vấn đề trên sẽ không xảy ra. Vì vậy chúng ta không thể đưa chương trình huấn luyện trên tiếng nói rời rạc vào vào nhận dạng tiếng nói liên tục. Trong thực tế thì không phải lúc nào chúng ta chúng ta cũng có đầy đủ dữ liệu như thế. 5.1.3. Các nguyên âm đôi Trong ngữ âm học Tiếng Việt có 3 nguyên âm đôi được viết là /iê/, /uô/ và /ươ/. Trong các âm tiết mở các nguyên âm đôi này được ghi là /ia/, /ua/ và /ưa/. Trong ngữ âm Tiếng Việt người ta xem các nguyên âm đôi này là 1 âm vị, nhưng trong nhận dạng trong 1 số trường hợp nếu chúng ta xem chúng như 1 âm vị thì kết quả nhận dạng sẽ rất kém. Chúng ta có thể quan sát trên chuỗi sóng âm các âm tiết chứa các nguyên âm đôi trên và đi đến quyết định xem các nguyên âm đơn trên là 1 âm vị hay hai âm vị. Trong phần này chúng tôi không có thời gian để tìm hiểu hết các đặc trưng của tất 58 KH OA C NT T – Đ H KH TN Thực hiện chương trình cả các nguyên âm đôi nên ở đây chúng tôi chỉ nêu lên 1 ví dụ là không nên xem tất cả các nguyên âm đôi như là 1 âm vị. Ví dụ đối với trường hợp âm vị /ia/ trong các âm tiết mở. Nếu chúng ta xem /ia/ như là 1 âm vị đôi thì kết quả nhận dạng sẽ kém hơn chúng ta xem nó bao gồm 2 âm vị. 5.1.4. Ảnh hưởng của thanh điệu lên âm vị Thanh điệu làm biến đổi các âm vị đi đôi chút, đặc biệt là ảnh hưởng của nó tới trọng âm trong phần vần. Qua thực nghiệm chúng tôi thấy được rằng đặc biệt trong trường hợp thanh sắc, nó làm âm tiết và âm vị bị biến đổi đi rất nhiều dẫn đến rất khó nhận dạng. Ví dụ âm tiết “ba” với thanh sắc (“bá”) trên sóng âm bao gồm 3 âm vị sau: /b/ /a/ /a/ nên nếu lúc huấn luyện, nếu chỉ cho huấn luyện trên các âm tiết “ba” (có thanh ngang) thì lúc nhận dạng âm tiết “bá” có thể cho ra 2 âm tiết /ba/ và /a/. Thực tế, nếu chỉ cho huấn luyện các âm tiết trên thanh ngang và cho nhận dạng âm tiết trên tất cả các thanh thì kết quả nhận dạng sẽ không tốt bằng huấn luyện âm tiết trên nhiều thanh điệu. 5.2. Quá trình thực hiện chương trình Mục đích của chúng tôi là cho thấy khi huấn luyện mô hình HMM trên dữ liệu không gán nhãn vào nhận dạng âm vị Tiếng Việt, chúng ta có thể nhận dạng được trên số lượng lớn các âm tiết và đồng thời có thể nhận dạng được trên tiếng nói liên tục. Vì vậy chúng tôi xây dựng 2 chương trình: 1. Chương trình nhận dạng tiếng nói liên tục nhận dạng các chưỗi số hình thành từ 10 chữ số. 2. Chương trình thứ hai nhận dạng từ đơn trên 104 âm tiết bao gồm các phụ âm đầu được kí hiệu trong chữ viết Tiếng Việt là /d/, /đ/, và /k/, /kh/, /m/, /s/, / t/ và các vần là /a/, /an/, /ang/, /ăm/, /ao/, /e/, /en/, /eo/, /ê/, /o/, /ong/, /ông/, /u/, /ung/. 59 KH OA C NT T – Đ H KH TN Thực hiện chương trình 5.2.1. Các bước chính Các bước chính mà chúng tôi xây dựng chương trình bao gồm: 1. Chuẩn bị dữ liệu huấn luyện ƒ Thu dữ liệu. ƒ Gán nhãn dữ liệu. ƒ Đánh giá về dữ liệu. ƒ Rút trích đặc trưng. 2. Xây dựng mô hình ngôn ngữ. 3. Huấn luyện ƒ Khởi tạo tham số cho HMM ƒ Huấn luyện trên mô hình mohophone ƒ Huấn luyện mô hình tied-state triphone . 4. Xây dựng chương trình nhận dạng. 5.2.2. Thu dữ liệu và gán nhãn dữ liệu 5.2.2.1. Thu dữ liệu Do không có dữ liệu huấn luyện nên chúng tôi phải tự thu lấy dữ liệu huấn luyện. Để thuận tiện cho quá trình gán nhãn, chúng tôi đã sử dụng mô hình ngôn ngữ và công cụ của HTK để phát sinh các câu ngẫu nhiên (bằng văn bản). Sau đó, thu mẫu theo các câu đã phát sinh. Đối với nhận dạng từ đơn chúng tôi thu mỗi âm tiết từ 20 đến 40 mẫu. Đối với nhận dạng tiếng nói liên tục, trung bình mỗi âm tiết thu 60 mẫu. Đối với dữ liệu tiếng nói liên tục chúng tôi chia làm hai phần. Phần thứ nhất: tiến hành thủ công, tách các câu ra thành các từ đơn. Phần thứ hai: giữ nguyên các câu với tiếng nói liên tục. 60 KH OA C NT T – Đ H KH TN Thực hiện chương trình Chúng ta có thể nhận thấy nếu dữ liệu tách ra càng nhiều thì kết quả nhận dạng càng chính xác. Tuy nhiên, nếu chúng ta phải nhận dạng tiếng nói liên tục trên số lượng âm tiết lớn thì lượng dữ liệu huấn luyện sẽ rất lớn. Vì vậy, công sức bỏ ra để tách dữ liệu cũng không nhỏ. Vì vậy 1 yêu cầu nữa là giảm số lượng dữ liệu phải tách xuống mà kết quả nhận dạng không bị ảnh hưởng nhiều. Đây là 1 bài toán lớn của huấn luyện tiếng nói. Trong chương trình, dữ liệu của chúng tôi được chia như sau: 40% là dữ liệu đã tách âm tiết và 60% là dữ liệu tiếng nói liên tục (chưa tách âm tiết). 5.2.2.2. Gán nhãn dữ liệu Chúng ta chỉ cần tạo các file mô tả thứ tự các âm tiết trong câu và dùng từ điển âm vị để chuyển chuỗi âm tiết thành chuỗi âm vị. Trong lúc gán nhãn, chúng ta nên thêm âm vị silence vào giữa 2 âm tiết. Điều này làm tăng hiệu quả của quá trình nhận dạng lên nhiều, vì thực tế là giữa 2 âm tiết thường có khoảng silence. Nhưng nếu không có âm vị sillence giữa 2 âm tiết thì cũng không ảnh hưởng tới quá trình huấn luyện. 5.2.2.3. Đánh giá dữ liệu Sau khi thu và gán nhãn dữ liệu, chúng ta cũng nên đánh giá mức độ đầy đủ và cân đối của dữ liệu. Chúng ta sẽ thống kê xem trong dữ liệu huấn luyện có bao nhiêu tỉ lệ % số lần xuất hiện của các âm tiết, các âm vị. Nếu âm tiết hoặc âm vị nào có tần số xuất hiện quá ít, chúng ta có thể nhân dữ liệu huấn luyện có chứa âm tiết hoặc âm vị đó lên. 5.2.2.4. Rút trích đặc trưng dữ liệu Dữ liệu sóng âm được thu dưới tần số lấy mẫu 16000 mẫu /giây, kích thước mỗi mẫu là 16 bit. Kích thước mỗi cửa sổ là 25 ms. Độ chồng lấp của các cửa sổ là 15 ms. Sử dụng dãy bộ lọc sử dụng có 26 kênh.Các đặc trưng được rút trích là MFCC_O (13 đặc trưng). Sử dụng thêm 2 đặc trưng nữa là độ biến thiên ∆ (13 đặc trưng) và gia 61 KH OA C NT T – Đ H KH TN Thực hiện chương trình tốc biến thiên (accelerator) ∆∆ (13 đặc trưng). Như vậy mỗi vector đặc trưng sẽ có 39 thành phần. 5.2.3. Khởi tạo mô hình HMM Mô hình HMM được dùng có 5 trạng thái, trong mỗi trạng thái vector µ và ∑ sẽ có định dạng là MFCC_0_D_A. Như đã giới thiệu trong giải thuật Embedded Training, khời tạo HMM cho các mô hình là rất quan trọng, nó ảnh hưởng đến tốc độ hội tụ của thuật toán, và sự chính xác của thuật toán. Ở đây chúng tôi đã thực hiện 2 phương pháp khởi tạo tham số cho HMM: Phương pháp thứ nhất: Khởi tạo Flat-start. Đây là phương pháp khởi tạo trên dữ liệu không gán nhãn của HTK. Ý tưởng của cách khởi tạo này là dựa vào các dữ liệu huấn luyện được đưa vào, chúng ta sẽ khởi tạo các HMM sao cho chúng có vector trung bình và hiệp phương sai bằng nhau và bằng với vector trung bình toàn cục và vector hiệp phương sai toàn cục của dữ liệu huấn luyện. Trong HTK, công cụ dùng để khởi tạo mô hình HMM là HCompV. HCompV sẽ load 1 số file huấn luyện tự động tách trên dữ liệu huấn luyện và xác định các vector thuộc về các trạng thái của HMM. Và chúng sẽ tính vector trung bình và vector hiệp phương sai toàn cục dựa trên các dữ liệu đó. Tuy nhiên cách khởi tạo này gần giống như khởi tạo ngẫu nhiên, các trạng thái là các trạng thái toàn cục của dữ liệu huấn luyện vì vậy nó vẫn chưa có ảnh hưởng nhiều tới quá trình huấn luyện. Phương pháp thứ 2: Sử dụng 1 số dữ liệu nhỏ huấn luyện ra các mô hình monophone cho các âm vị. Sau đó sử dụng các mô hình này làm mô hình khởi tạo để huấn luyện trên khối lượng lớn dữ liệu còn lại. Trong 2 phần dữ liệu đã thu nói trên chúng tôi sử dụng 1 số ít dữ liệu đã được tách ở phần 1 để huấn luyện tạo ra các mô hình HMM khởi tạo. Cụ thể mỗi âm tiết có 10 mẫu huấn luyện. Phương pháp thứ 2 được chọn sử dụng trong chương trình 62 KH OA C NT T – Đ H KH TN Thực hiện chương trình 5.2.4. Huấn luyện mô hình HMM 5.2.4.1. Huấn luyện mô hình HMM cho âm vị độc lập ngữ cảnh (monophone) Công cụ để thực hiện huấn luyện Embedded training trong HTK là HERest. HERest sẽ dùng các mô hình HMM vừa khởi tạo và dữ liệu huấn luyện để huấn luyện ra các HMM âm vị độc lập ngữ cảnh monophone. Mô hình của quá trình huấn luyện như hình dưới. Chi tiết về thuật toán huấn luyện trên dữ liệu không gán nhãn âm vị Embedded training đã được chúng tôi giới thiêu ở phần trên. Danh sách HMM (monophone0) Danh sách file huấn luyện (trains.scp) HÌNH 16 – Mô hình huấn luyện monophone (Từ in nghiêng trong dấu ngoặc đơn là tên thư mục hoặc tập tin trong bài làm của nhóm) HERest sẽ load các mô hình HMM vừa khởi tạo chứa trong file hmmdefs (file chứa định nghĩa các mô hình HMM) trong danh sách âm vị monophone0. Quá trình ước lượng tham số sẽ sử dụng các file huấn luyện chứa trong danh sách file huấn luyện trains.scp và các chuỗi các âm vị tương ứng nằm trong file phone.mlf để tạo ra các HMM mới. Các HMM được huấn luyện được lưu trong thư mục new_hmm. Chúng ta sẽ lặp lại số lần huấn luyện nhiều lần đến khi hội tụ. Tiêu chuẩn để đánh giá hội tụ là xem sự hội của giá trị log_likelihood trung bình trên mỗi frame dữ liệu huấn luyện. Thường thì số lần huấn luyện là từ 2 đến 5 lần. Nếu số bước lặp huấn luyện quá ít thì mức độ chính xác của các HMM không cao. Nhưng HMM đã khởi tạo HERest Các monophone được huấn luyện File gán nhãn âm vị (phone0.mlf) 63 KH OA C NT T – Đ H KH TN Thực hiện chương trình nếu số bước lặp quá lớn, sẽ xảy ra tình trạng quá luyện dẫn đến mức độ tổng quát của các HMM lại bị giảm đi. Vì vậy chúng ta sẽ phải quyết định số lượng các bước lặp sao cho hiệu quả nhất. Chúng ta có thể quan sát sự giảm log_likelihood/frame để quyết định số bước lặp. log_likelihood trung bình sẽ giảm khi số bước huấn luyện tăng (xem HÌNH 17). Quá trình huấn luyện nên dừng khi log_likelihood/frame tiến tới điểm hội tụ. Chúng ta cũng có thể dùng 1 ngưỡng ε để quyết định dừng quá trình huấn luyện. nếu (log_likelihoodbước trước – log_likelihood bước sau) < ε thì dùng quá trình huấn luyện. Nhưng ngưỡng ε cũng phải được quyết định thông qua quan sát sự giảm log_likelihood sau từng bước huấn luyện để quyết định. Likelihood/frame Số bước huấn luyện HÌNH 17 – Mối liên hệ giữa likelihood trung bình và số bước huấn luyện Sau đây là kết quả thực nghiệm nhận dạng trên 4 phụ âm đầu chỉ huấn luyện trên monophone /b/, /đ/, /m/, /t/, và kết hợp với các vần /a/, /ang/, /e/, /i/, /u/ trên cùng dữ liệu và cùng dữ liệu test Số bước lặp huấn luyện Kết quả nhận dạng trên chính dữ liệu huấn luyện Kết quả nhận dạng trên dữ liệu test 2 99.6 98.1 3 99.8 98.5 4 100.0 98.3 5 100.0 98.0 BẢNG 2 – Ảnh hưởng của số bước lặp huấn luyện đến kết quả nhận dạng 64 KH OA C NT T – Đ H KH TN Thực hiện chương trình Vấn đề thứ hai: quyết định ngưỡng prunning. Ngưỡng prunning làm giảm số trạng thái được xét trong toán tử forward và toán tử backward. Trong trường hợp bình thường ngưỡng prunning là tương đối nhỏ (chỉ 1 số trường hợp đặc biệt thì ngưỡng này hơi lớn) nhưng trong 1 số trường hợp do lỗi của dữ liệu huấn luyện (thường là do gán nhãn sai hoặc dữ liệu Tiếng nói bị nhiễu quá nhiều) thì ngưỡng này sẽ phải lớn hơn. Trong chương trình của chúng tôi ngưỡng bình thường được sử dụng là 150.0, trong trường hợp quá trình ước lượng tham số thất bại thì ngưỡng prunning sẽ tự động tăng lên 100.0. Quá trình tiếp diễn đến khi ước lượng tham số thành công hoặc prunning vượt trên 600.0. Nếu prunning vượt trên ngưỡng này tức là đã có vấn đề trong câu huấn luyện này (thường là gán nhãn sai) và chúng ta nên xem lại nó. Lúc này ta có thể nhận ra là lỗi trong dữ liệu huấn luyện quá nặng và nên bỏ câu huấn luyện này ra khỏi dữ liệu huấn luyện. Sau khi kết thúc giai đoạn huấn luyện chúng ta có thể dùng các mô hình monophone vừa huấn luyện được để gán nhãn lại các file huấn luyện. Quá trình này được gọi là realigning data. Chúng ta sẽ nhận dạng lại các file huấn luyện và tạo ra các file đánh nhãn mới. Đồng thời trong lúc này, nếu 1 âm tiết trong từ điển có nhiều cách phiên âm thì chương trình sẽ chọn cách phiên âm hợp lí nhất dựa trên các mô hình HMM vừa học được. Đồng thời thông qua bước này chúng ta có thể đánh giá mức độ đúng đắn của các file dữ liệu huấn luyện. Quá trình này được thực hiện bằng công cụ nhận dạng của HTK là HVite. Nếu file huấn luyện nào sai quá nhiều (thường là do gán nhãn sai) thì HVite sẽ không nhận dạng được. Chúng ta sẽ loại bỏ các câu huấn luyện này ra khỏi quá trình huấn luyện ở các bước tiếp theo. Tuy nhiên, trong 1 số trường hợp chúng ta loại bỏ 1 số câu huấn luyện mà nó là 1 hiện tượng ngữ âm ít xuất hiện trong dữ liệu huấn luyện nên bị xem như là dữ liệu sai (thường xảy ra là do gán nhãn không chính xác hoặc các âm tiết gần nhau quá không tách được). Vì vậy chúng không nên loại bỏ các dữ liệu này mà nên xem lại chúng. Nếu có nhiều câu sai theo kiểu này thì chúng ta phải xem xét lại sự đầy đủ của dữ liệu huấn luyện. Có thể chúng ta sẽ phải huấn luyện lại từ đầu và nhân dữ liệu huấn luyện hiếm này lên. 65 KH OA C NT T – Đ H KH TN Thực hiện chương trình Kết quả của bước này là chúng ta sẽ được file gán nhãn mới align.mlf. Chúng ta sẽ thay thế file này cho file gán nhãn lúc đầu phone0.mlf mà chúng ta tạo ra trong các bước huấn luyện tiếp theo. 5.2.4.2. Huấn luyện trên mô hình âm vị phụ thuộc ngữ cảnh (triphone) 5.2.4.2.1. Khởi tạo và huấn luyện mô hình triphone: Quá trình huấn luyện trên mô hình triphone phụ thuộc ngữ cảnh có thể được thực hiện bằng cách nhân các mô hình HMM monohone lên và huấn luyện tham số HMM dựa vào các file gán nhãn theo âm vị triphone chứ không dựa vào các file gán nhãn monophone. Chúng ta có thể dùng công cụ HLed để tạo ra file gán nhãn âm vị trên mô hình triphone dựa vào các HMM monophone và dựa vào các file gán nhãn monophone như sau: Sau đó chúng ta nhân các mô hình HMM monophone được ở bước trước thành các mô hình triphone tương ứng với nó. Quá trình huấn luyện trên mô hình triphone được thực hiện tương tự như trong huấn luyện đối với mô hình monophones. Chỉ khác là chúng ta sử danh sách HMM cho mô hình triphone và file gán nhãn theo âm vị triphone. 5.2.4.2.2. Gom nhóm các mô hình triphone: Chúng ta đã được mô hình các triphone trong các bước huấn luyện trước. Nếu chúng ta dùng các mô hình này để nhận dạng thì không gian tìm kiếm quá lớn, vì vậy tốc độ nhận dạng sẽ rất chậm. Thứ hai nữa là đối với mỗi âm vị triphone dữ liệu huấn luyện rất ít vì vậy độ chính xác sẽ không cao. Vì vậy chúng ta phải gom nhóm các âm vị triphone giống nhau lại. Trạng thái trung tâm của HMM là ít chịu ảnh hưởng của ngữ cảnh nên chúng sẽ giống nhau, còn 2 trạng thái 2 bên trạng thái trung tâm là chịu ảnh hưởng của ngữ cảnh rất nhiều. Vì vậy chúng ta sẽ gom nhóm các dựa vào mức độ giống nhau của 2 trạng thái xung quanh. Và chúng ta sẽ gom nhóm các trạng thái bên trái và gom nhóm các trạng thái bên phải của các âm vị 66 KH OA C NT T – Đ H KH TN Thực hiện chương trình triphone và dựa vào các cluster trạng thái này chúng ta sẽ gom nhóm các âm vị triphone. Vì vậy gom nhóm các âm vị triphone còn gọi là buộc các trạng thái của các âm vị triphone và các mô hình HMM cho các âm vị được tạo ra trong bước này gọi là các mô hình triphone buộc trạng thái. Có hai cơ chế cho việc tiến hành buộc các trạng thái của HMM đó là Data-driven clustering và Tree-based clustering. Phương pháp Tree based-clustering dựa vào tính chất âm học của ngữ cảnh trái và ngữ cảnh phải của âm vị triphone. Phương pháp cluster dựa vào cây quyết định sử dụng cây quyết định âm học nhị phân để phân nhóm các âm vị triphone của cùng 1 âm vị monophone. Tại mỗi nút của cây có 1 câu hỏi đúng/sai để phân loại âm vị triphone. Câu hỏi này kiểm tra tính chất âm học của âm vị bên trái và bên phải của âm vị triphone trạng thái tại mỗi nút sẽ được quyết định. Cứ như vậy cho đến nút lá của cây. Tại nút lá chúng ta sẽ được 1 cluster âm vị triphone. Phương pháp này rất hiệu quả tuy nhiên để tiến hành được phương pháp này chúng ta cần có những kiến thức về âm học để đặt những câu hỏi vì vậy nên chúng tôi đã không lựa chọn phương pháp này. 67 KH OA C NT T – Đ H KH TN Thực hiện chương trình BED PBrush    t-i+n s-a+n Âm dừ ? h các trạng hái t i+nh L: âm vị trái R: âm vị phải HÌNH 18 – Phương pháp góm nhóm âm vị dựa vào cây quyết định âm học Phương pháp được chúng tôi sử dụng là data driven- clustering. Chúng ta sẽ gom nhóm các trạng thái của các mô hình triphone dựa vào độ đo khoảng cách giữa các trạng thái. Các trạng thái cùng 1 phân nhóm sẽ được buộc vào thành 1 trạng thái. Dựa vào các nhóm trạng thái này chúng ta sẽ gom nhóm các âm vị. Cách gom nhóm các trạng thái được tiến hành như sau. Ban đầu mỗi trạng thái sẽ nằm ở 1 cluster. Tại mỗi bước lặp, hai cluster khi trộn sau khi trộn vào có khoảng cách trung bình giữa các trạng thái trong cùng 1 cluster là nhỏ nhất sẽ được trộn lại. Quá trình được lặp cho đến khi tồn tại 1 cluster có khoảng cách trung bình giữa các trạng thái lớn hơn ngưỡng T. Nếu ngưỡng T càng lớn thì số cluster càng giảm. Ngưỡng T có vai trò rất quan trọng trong việc tăng hiệu quả của quá trình nhận dạng. Sự chính xác của nhận dạng phụ thuộc vào ngưỡng T được mô tả trong 68 KH OA C NT T – Đ H KH TN Thực hiện chương trình đồ thị sau. Để tìm được ngưỡng chính xác chúng tôi đã gom nhóm trên nhiều ngưỡng khác nhau để tìm ra ngưỡng tối ưu. ị tri one óm gom hính xác chồng p HÌNH 19 – Buộc trạng thái theo phương pháp Data-driven-clustering ٛ chính xác Ngưỡng T HÌNH 20 – Sự phụ thuộc của kết quả nhận dạng vào ngưỡng phân nhóm các trạng thái của HMM 69 KH OA C NT T – Đ H KH TN Thực hiện chương trình Trong quá trình thực hiện để đánh giá sự phụ thuộc của độ chính xác của nhận dạng vào ngưỡng phân nhóm T chúng tôi đã tiến hành thống kê như sau. Tất cả các quá trình huấn luyện và nhận dạng đề được thực hiện trên cùng dữ liệu huấn luyện và dữ liệu test. Quá trình được thực hiện trên các âm tiết là kết qủ của sự tổng hợp các đơn vị sau: phụ âm đầu là /d/, /đ/, /k/, /kh/, /m/, /s/, /t/; các vần được huấn luyện và nhận dạng là: /a/, /ang/, /an/, /ao/, /ăm/, /e/, /eo/, /en/, /ê/, /ôn/, /ông/, /ong/, /u/, /ung/ thành các âm tiết (không xét tới thanh điệu). Chúng ta có 18 âm vị monophone cho tiếng nói và 2 âm vị không tiếng nói và 173 âm vị triphone. Kết quả ngưỡng T tốt nhất tại ngưỡng T=1.4, sau khi gom nhóm chúng tôi được 53 âm vị buộc trạng thái thì kết quả nhận dạng tốt nhất. Sau khi gom nhóm các trạng thái chúng ta đồng thời cũng sẽ gom nhóm được các mô hình HMM. Các HMM lần lượt có 3 cặp trạng lần lượt nằm trong 3 cluster sẽ được gom nhóm lại. Sau khi gom nhóm các cluster chúng ta sẽ tiến hành huấn luyện lại trên dữ liệu huấn luyện để được các HMM cuối cùng. 5.2.5. Nhận dạng Xây dựng mô hình ngôn ngữ: Qua thuật giải tìm kiếm chúng ta thấy không gian tìm kiếm của giải thuật Viterbi là rất lớn đặc biệt là khi có nhiều mô hình HMM. Mô hình ngôn ngữ làm giảm không gian tìm kiếm và làm tăng độ chính xác của nhận dạng. Mô hình HTK hỗ trợ xây dựng mô hình ngôn ngữ N-gram. N-gram là chuỗi n-symbol (ví dụ từ) và 1 mô hình ngôn ngữ n-gram để đoán từ thứ n dựa vào n-1 từ đã biết. Trong thực tế sức mạnh của mô hình ngôn ngữ còn cho phép chúng ta xây dựng các cú pháp mạnh hơn cú pháp theo chuỗi từ. Thư viện HTK hỗ trợ chúng ta khám phá ra các qui luật ngôn ngữ trong dữ liệu huấn luyện. Qua thực nghiệm chúng tôi thấy rằng nếu nhận dạng mà không sử dụng mô hình ngôn ngữ sẽ cho ra kết quả rất xấu. Chúng ta sẽ nhận dạng thừa rất nhiều âm vị. 70 KH OA C NT T – Đ H KH TN Thực hiện chương trình Ở mức độ từ, nếu biết trước được n-1 từ chúng ta sẽ đoán được từ thứ n thông qua các qui luật ngữ pháp trong mô hình ngôn ngữ và như vậy không gian tìm kiếm sẽ hạn chế đi rất nhiều và độ chính xác sẽ lớn hơn. Đối với mức độ âm vị khi biết được n âm vị của 1 từ chúng ta sẽ đoán được âm vị tiếp theo nằm trong 1 số lượng hạn chế các âm vị, và như vậy quá trình tìm kiếm cũng nhanh hơn và chính xác hơn. Đặc biệt trong nhận dạng tiếng nói liên tục, vai trò của mô hình ngôn ngữ rất quan trọng. Do tốc độ nói nhanh và do ảnh hưởng của các từ lẫn nhau nên các từ sẽ bị biến điệu đi rất nhiều. Vì vậy nếu không kết hợp mô hình ngôn ngữ vào mô hình âm học để quyết định các từ nhận dạng thì kết quả nhận dạng hầu như rất thấp. Sau khi tạo được mô hình ngôn ngữ chúng ta sẽ đưa mô hình ngôn ngữ về dạng mạng các âm tiết và mạng các mô hình HMM để sử dụng trong quá trình nhận dạng. Nhận dạng Trong nhận dạng, chúng ta áp dụng thuật giải Vitebi, sử dụng các mô hình HMM vừa huấn luyện được và sử dụng mạng các từ và mạng các mô hình HMM để tìm ra các chuỗi các âm vị có xác suất cao nhất trên chuỗi sóng âm đã được rút trích đặc trưng. Để tăng độ chính xác, chúng tôi chọn ra 2 chuỗi âm vị có xác suất cao nhất sau mỗi lần nhận dạng, sau đó dùng heuristic để quyết định chuỗi âm vị chính xác nhất cho chuỗi sóng âm. 5.3. Đánh giá kết quả và hướng phát triển: 5.3.1. Kết quả nhận dạng Chúng tôi thực hiện 2 chương trình Chương trình nhận dạng từ đơn. Chúng tôi thực hiện 2 chương trình. Chương trình nhận dạng dãy số liên tục từ /không/ đến /chín/. Chương trình huấn luyện trên 100 câu. Mỗi câu chứa từ 1 đến 20 mẫu. Kết quả nhận dạng trên 80 71 KH OA C NT T – Đ H KH TN Thực hiện chương trình câu. Các câu huấn luyện và test được phát sinh ngẫu nhiên và được nói ở tốc độ bình thường: Số câu huấn luyện 100 Số từ huấn luyện 768 Số câu test 80 Số từ test 628 Số câu đúng 79 Số từ sai 1 BẢNG 3 – Kết quả nhận dạng các tiếng là chữ số đọc liên tục Đối với chương trình nhận dạng từ đơn, chúng tôi xây dựng như sau: ƒ Có 18 âm vị monophone được huấn luyện: /kh/, /o6/, /m/, /t/, /e/, /ê/, /a/, /i/, /n/, /ng/, /a8/, /s/, /o/, /u/, /ch/, /k/, /d/, /đ/. ƒ Có 104 âm tiết (gồm 5 thanh /ngang/, /sắc/, /hỏi/, /huyền/, /nặng/) sau được huấn luyện và nhận dạng: DA, D9A, KA, KHA, SA, MA, TA, KAO, KHAO, DAO, D9AO, MAO, SAO, TAO, DAN, D9AN, KAN, MAN, KHAN, SAN, TAN, KANG, DANG, D9ANG, KHANG, MANG, SANG, TANG, DA8M6, D9A8M, KA8M, KHA8M, MA8M, SA8M, TA8M, DE, D9E, KE, KHE, ME, TE, DE67, D9E6, KE6, KHE6, ME6, SE6, TE6, DEN, D9EN, KEN, KHEN, MEN, SEN, TEN, DEO, D9EO, KEO, KHEO, MEO, TEO, D9I, KI, KHI, MI, SI, TI, D9O, DO, KO, KHO, MO, SO, TO, KONG, DONG, D9ONG, MONG, SONG, TONG, DO6NG, D9O6NG, KO6NG, MO6NG, SO6NG, TO6NG, DO6N, D9O6N, KO6N, KHO6N, MO6N, TO6N, DU, KHU, MU, SU, TU, DUNG, D9UNG, KHUNG, KUNG, MUNG, SUNG, TUNG. ƒ Vì vậy các phụ âm đầu được huấn luyện là /d/, /dd/, /k/, /kh/, /m/, /s/, /t/; các vần được huấn luyện và nhận dạng là: /a/, /ang/, /an/, /ao/, /a8m/, /e/, /eo/, /en/, /e6/, /o6n/, /o6ng/, /ong/, /u/, /ung/. ƒ Kết quả số âm vị triphone buộc trạng thái sau khi gom nhóm là 53 âm vị. 6 /a8/: ký hiệu cho âm vị /ă/ trong tiếng Việt 7 /e6/: ký hiệu cho âm vị /ê/ trong tiếng Việt 72 KH OA C NT T – Đ H KH TN Thực hiện chương trình ƒ Mỗi âm tiết được huấn luyện trên 20, 30, 40 hoặc 50 mẫu. Tổng số mẫu huấn luyện: 3240 mẫu ƒ Quá trình kiểm tra thực hiện kiểm tra mỗi âm tiết là 20 mẫu. Số mẫu test là 2080 mẫu. ƒ Kết quả có 21 mẫu sai. Độ chính xác 99%. Sai nằm vào các trường hợp sau: /e/ - > ê, /ong/ -> /ông/, /t/ /d9/. Số mẫu huấn luyện 3240 Số mẫu đánh giá 2080 Kết quả nhận dạng 99% BẢNG 4 – Kết quả nhận dạng từ đơn 5.3.2. Nhận xét Chương trình nhận được số lượng từ tương đối lớn với độ chính xác khá cao. Trong khi tiếng Việt chưa có được những kho dữ liệu có gán nhãn âm vị, hướng tiếp cận nhận dạng âm vị tự động với công việc huấn luyện trên dữ liệu không gán nhãn âm vị là một hướng tiếp cận hợp lý. Đây sẽ là hướng tiếp cận trong tương lai dùng để nhận dạng toàn bộ âm tiết tiếng Việt. Tuy nhiên, còn một số hạn chế sau: ƒ Xây dựng kho dữ liệu chưa đầy đủ ƒ Xử lý lọc nhiễu còn hạn chế ƒ Chưa có công đoạn hậu xử lý ƒ Chương trình nhận dạng tốt trong môi trường ít tiếng ồn, nhưng hiệu suất sẽ giảm khi nhận dạng trong môi trường có tiếng ồn lớn. 5.3.3. Hướng phát triển Kết hợp với nhận dạng thanh điệu Tiếng Việt để tăng số lượng từ nhận dạng. Xây dựng mô hình ngôn ngữ để nâng kết quả nhận dạng trong nhận dạng tiếng nói liên tục. 73 KH OA C NT T – Đ H KH TN Thực hiện chương trình Kết hợp thêm mô hình tương thích giọng người nói để có thể xây dựng hệ nhận dạng độc lập người nói. Xây dụng thuật giải huấn luyện tăng cường để mỗi khi tăng lượng dữ liệu học mẫu sẽ không tốn thời gian huấn luyện lại từ đầu. 74 KH OA C NT T – Đ H KH TN Tài liệu tham khảo TÀI LIỆU THAM KHẢO [1] Mathew Magimai. Doss, Todd A. Stephenson, Herv Bourlard, and Samy Bengio, Phoneme-Grapheme Based Speech Recognition System, Dalle Molle Institute for Artificial Intelligence [2] Ahmed M. Abdelatty Ali et al, An Acoustic-phonetic feature-based system for automatic phoneme recognition in continuous speech, Dept. of Electrical Engineering, University of Pennsylvania [3] Guido Aversano et al, A New Text-Independent Method for Phoneme Segmentation, a Dipartimento di Fisica “E.R. Caianiello”, Universit`a di Salerno. [4] Youngjoo Suh and Youngjik Lee, Phoneme segmentation of continuous speech using multi-layer perceptron, Electronics and Telecommunications Research Institute, 1996. [5] Jesper Salomon , Support Vector Machines for Phoneme Classification, Master of Science, school of Artificial Intelligence, Division of Informatics, University of Edinburgh, 2001. [6] Barbara Resch, Gaussian Statistics and Unsupervised Learning, A Tutorial for the Course Computational Intelligence, Signal Processing and Speech Communication Laboratory, IEEE International Workshop on Circuits and System. [7] Giuseppe Riccardi and Dilek Hakkani , Active And Unsupervised Learning For Automatic Speech Recognition, AT&T Labs-Research 75 KH OA C NT T – Đ H KH TN Tài liệu tham khảo [8] Steve Young, HTKBook (version 3.2), Cambridge University Engineering Department. [9] Lawrence R. Rabiner, A tutorial on Hidden Markov Models and Selected Applications in Speech Recognition, IEEE, 1989 [10] Đinh Lê Thư - Nguyễn Văn Huệ, Cơ cấu ngữ âm Tiếng Việt, NXB Giáo Dục, 1998 [11] Thái Hùng Văn, Luận án thạc sĩ, khoa Công nghệ thông tin, Đại học Khoa học Tự nhiên, 2000 [12] Đỗ Xuân Đạt – Võ Văn Tuấn, Luận văn tốt nghiêp khoa Công nghệ thông tin, Đại học Khoa học Tự nhiên, 2003 [13] Tarun Agarwal, Pre-Processing of Noisy Speech for Voice Coders, Department of Electrical & Computer Engineering, McGill University, Montreal, Canada, January 2002 [14] Ing Yann Soon and Soo Ngee Koh, Speech Enhancement Using 2-D Fourier Transform, IEEE Transactions On Speech And Audio Processing, VOL. 11, NO. 6, NOVEMBER 2003 (pages 717 through 724) [15] John H.L. Hansen, Bryan Pellom, An Effective Quality Evaluation Protocol For Speech Enhancement Algorithms, ICSLP-98: Inter. Conf. On Spoken Language Processing, Sydney, Australia, Nov. 30 – Dec. 4, 1998. [16] Hagai Attias John C. Platt Alex Acero Li Deng, Speech Denoising and Dereverberation Using Probabilistic Models, Microsoft Research [17] James G. Droppo III , Time-Frequency Features For Speech Recognition, Doctor of Philosophy thesis, University of Washington, 2000 76 KH OA C NT T – Đ H KH TN Tài liệu tham khảo [18] C.J.Long and S.Datta, Wavelet Based Feature Extraction for Phoneme Recognition, Department of Electronic and Electrical Engineering, Loughborough University of Technology [19] Amit Juneja and Carol Espy-Wilson, Segmentation Of Continuous Speech Using Acoustic-Phonetic Parameters And Statistical Learning, ECE Department, University of Maryland [20] Ryuta Terashima, Estimating Speech-Recognizer Performance Based on Log-Likelhood Difference Distribution of Word-Pairs, Special Issue Speech-Based Interfaces In Vehicles. (pages 10 through 15) 77

Các file đính kèm theo tài liệu này:

  • pdfUnlock-0012535_8964.pdf
Luận văn liên quan