Khi giao tiếp, con người phát ra những chuỗi âm thanh nhất định, ta gọi đó là dòng ngữ lưu. Trong từng dòng ngữ lưu, nếu đem chia cắt chúng ra ta sẽ được những đơn vị cấu thành nhỏ hơn, đó là âm tiết, âm tố và âm vị. Trong đó, âm tiết là đơn vị phân chia tự nhiên nhất trong lời nói, là đơn vị phát âm nhỏ nhất. Mỗi âm tiết là một tiếng.
Ví dụ: “Nguyễn Thanh Huyền” có 3 âm tiết.
Về mặt sinh lý – vật lý, âm tiết được định nghĩa là một đơn vị mà khi phát âm được đặc trưng bởi sự căng lên và trùng xuống của cơ thịt trong bộ máy phát âm.
Trong mỗi âm tiết, chỉ có một âm tố có khả năng tạo thành âm tiết (gọi là âm tố âm tiết tính), còn lại là các yếu tố đi kèm, không tự mình tạo thành âm tiết được. Âm tố âm tiết tính thường được được phân bố ở trung tâm, làm hạt nhân âm tiết. Đó thường là các nguyên âm. Điều này dẫn tới hệ quả là một âm tiết khi được phát ra thì phần năng lượng tập trung nhiều nhất ở phần giữa âm (có biên độ cao), đi về đầu và cuối âm tiết thì năng lượng giảm dần.
Hình 3.1: Minh họa sự giảm dần của năng lượng. 1.6.2. Một số đặc điểm của âm tiết tiếng Việt
a. Là ngôn ngữ có kết cấu âm tiết tính
vị nhỏ nhất có nghĩa) luôn luôn trùng nhau, nói cách khác, một âm tiết là một hình thức biểu đạt của một hình vị.
Là vỏ ngữ âm của một hình vị hay một từ đơn nên mỗi âm tiết tiếng Việt bao giờ cũng tương ứng với một ý nghĩa nhất định. Chính vì vậy, việc phá vỡ hay xê dịch vị trí của các âm vị trong một đơn vị âm tiết là điều khó có thể xảy ra. Nói cách khác, cấu trúc của âm tiết tiếng Việt là một cấu trúc chặt chẽ. Vì thế, từ “ cá canh ” sẽ không bị nối âm thành “ các anh” , “ cảm ơn ” sẽ không đọc thành “ cả mơn ”….
Các đặc điểm trên là chung cho một số ngôn ngữ như tiếng Việt, tiếng Hoa, tiếng Thái…Căn cứ vào đặc điểm đó, người ta gọi các ngôn ngữ này là ngôn ngữ có kết cấu âm tiết tính.
b. Mỗi âm tiết có thanh điệu riêng
Thanh điệu là một tập hợp những đặc trưng có liên quan đến độ cao (phụ thuộc tần số rung động của dây thanh âm) của thanh cơ bản của âm tiết. Nó được thể hiện trên tất cả những bộ phận hữu thanh trong âm tiết, nhất là các âm đoạn nguyên âm tính (nguyên âm và bán nguyên âm) và các đoạn phụ âm mũi, dù là thủy âm hay chung âm.
Thanh điệu có thể phân tích thành hai thành phần thường xuyên kết hợp với nhau : âm vực (độ cao của thanh cơ bản) và âm điệu (hướng chuyển biến cao độ (độ tăng giảm của tần số)) trong quá trình thể hiện. Vì vậy, mỗi thanh có thể được miêu tả như một sự kết hợp của hai thông số nói trên.
Hệ thống thanh điệu của tiếng Việt có 6 âm tiết : Thanh ngang (thanh không dấu), thanh huyền, thanh ngã, thanh hỏi, thanh sắc, thanh nặng.
c. Âm tiết có cấu trúc chặt chẽ và ổn định
Trong tiếng Việt, âm tiết có cấu trúc chặt chẽ, mỗi âm tố (âm vị) có một vị trí nhất định trong âm tiết, tạo thành cấu trúc của một âm tiết như sau:
Âm tiết = Phụ âm đầu + Vần
Trong đó
Vần = Âm đệm + Âm chính + Âm cuối
không tham gia vào việc đắp đổi về trường độ giữa các yếu tố bên trong âm tiết. Các âm tiết tiếng Việt khi phát âm về mặt cấu âm bao giờ cũng mở đầu bằng một động tác khép lại, dẫn đến chỗ cản trở không khí hoàn toàn hoặc bộ phận. Đó là cách phát âm của các âm tiết như : bút, bát…Còn những âm tiết như ăn, uống…mặc dù trên chữ viết, phụ âm vắng mặt, nhưng thực tế chúng cũng phải bắt đầu bằng một động tác khép tín khe thanh, sau đó mở ra đột ngột gây nên một tiếng động.
Âm đệm : Đóng vai trò là âm lướt trong kết cấu âm tiết. Âm đệm ảnh hưởng
đến cách mở đầu của âm tiết (bên cạnh phụ âm đầu). Ví dụ chữ “ toàn ” khi phát âm có hiện tượng tròn môi do tác động của âm điệu /-u-/, còn chữ “ tàn ” thì không có hiện tượng tròn môi do không có âm đệm.
Âm chính : Là nguyên âm âm tiết tính trong âm tiết. Âm tiết chính có thể là
một nguyên âm đơn hay nguyên âm đôi.
Âm cuối : Là yếu tố kết thúc âm tiết. Các âm tiết tiếng Việt thường đối lập
bằng những cách kết thúc khác nhau. Một số âm tiết kết thúc bằng sự kéo dài và giữ nguyên. Ví dụ : mới, đưa, cho…Số âm tiết khác kết thúc bằng cách biến đổi âm sắc của âm tiết ở phần cuối do sự đóng lại của các âm cuối tham gia, ví dụ như : một,
mai, màng…Trong trường hợp đầu, ta có âm cuối là âm vị /zero/, trong trường hợp
sau ta có âm cuối là những âm vị bán nguyên âm hoặc phụ âm.
Thứ tự các loại hình âm vị trong cấu trúc của âm tiết như trên được giữ nguyên không thay đổi cho mỗi âm tiết.
1.6.3. Lý thuyết về âm vị
Âm vị là đơn vị nhỏ nhất của ngữ âm, có mang chức năng phân biệt nghĩa và nhận diện từ. Ngoài ra, nó cũng có thể được hiểu là đơn vị nhỏ nhất của cơ cấu âm thanh ngôn ngữ.
a. Chức năng của âm vị
Các âm vị trên nguyên tắc phải có sự khác nhau, ít nhất về một đặc trưng nào đó. Chính nhờ sự khác biệt này mà các âm vị có thể tạo ra sự khác biệt về hình thức âm thanh của các hình vị và từ, tạo nên những tín hiệu khác biệt đối với sự thụ cảm của con người. Theo đó, âm vị có 2 chức năng cơ bản : chức năng khu biệt vỏ âm thanh của hình vị và từ, và chức năng cấu tạo nên những thành tố
của đơn vị có nghĩa.
b. Tách âm vị và xác định âm vị trên chuỗi sóng âm
Số lượng từ trong mỗi ngôn ngữ đều rất lớn. Xây dựng hệ nhận dạng theo từ có khả năng phân biệt số lượng từ lớn đó quả là một thách thức. Thay vào đó, người ta nghĩ ra cách xây dựng hệ nhận dạng dựa trên hướng tiếp cận âm vị. Theo đó, chỉ cần nhận dạng khoảng vài chục âm vị sẽ có thể nhận dạng được toàn bộ từ của một ngôn ngữ (theo thống kê, số âm vị trong một ngôn ngữ dao động trong khoảng 20 đến 60). Và đây cũng chính là hướng tiếp cận đúng đắn cho nhận dạng tiếng nói tiếng Việt. Tuy nhiên, người ta lại gặp một khó khăn khác, đó là tách âm vị và xác định âm vị trên chuỗi sóng âm : Cho một dãy tín hiệu tiếng nói đã thu sẵn. Nhiệm vụ của chúng ta là tìm ra ranh giới của tất cả các âm vị và cho biết âm vị đó là âm vị gì. Chưa nói đến khả năng thực hiện công việc đó tự động bằng máy mà ngay cả con người vẫn có thể bị nhầm lẫn khi tách âm vị bằng tay do ranh giới giữa các âm vị là mập mờ hay chồng lấp lên nhau. Cả khi 2 âm vị thuộc 2 âm tiết khác nhau, nếu đứng kề nhau vẫn có thể xảy ra sự chồng lấp. Vì thế, công việc tách âm vị trên chuỗi sóng âm chỉ mang tính tương đối.
Trong một số nghiên cứu nhận dạng tiếng Việt, một phương pháp tách và nhận dạng âm vị tự động dùng mô hình HMM kết hợp mô hình ngôn ngữ để nhận dạng âm vị Triphone (âm vị mang 3 thông tin, thông tin về nó, thông tin về âm vị đứng trước, âm vị đứng sau) được nêu ra. Phương pháp này cơ bản giải quyết tốt công việc học và tách âm vị một cách tự động bằng máy. Kết quả tách âm vị được dùng cho quá trình nhận dạng tiếng nói tiếng Việt và đã thu được kết quả khả quan.
CHƯƠNG 2
TỔNG QUAN VỀ MÔ HÌNH MẠNG MARKOV ẨN 2.1. Mô hình Markov ẩn
Mô hình Markov được ứng dụng nhiều trong lĩnh vực nhận dạng giọng nói, trong lĩnh vực sinh học như nhận dạng gene hoặc phân loại protein; xử lý tín hiệu, xử lý hình ảnh và các ứng dụng khác liên quan đến chuỗi chuyển tiếp hoặc kết hợp các thành phần, dữ kiện. Trong lĩnh vực điện, mô hình Markov được sử dụng như là 1 công cụ dự báo giá điện năng với các dữ liệu liên quan. Một trong những thông số đặc trưng của mô hình Markov là các trạng thái ‘state’. Tùy thuộc vào việc xây dựng mô hình Markov với các đối tượng khác nhau thì sẽ có các ‘state’ khác nhau. Mô hình Markov có những hạn chế trong nhiều ứng dụng như các giá trị chuyển ‘state’ là các giá trị áp đặt sẵn, không thay đổi trong khi đối tượng, dữ liệu quan sát luôn biến đổi theo thời gian. Để khắc phục tình trạng này, chúng ta sử dụng mô hình Hidden Markov (Hidden Markov Model – HMM).
Mô hình Markov ẩn (Hidden Markov Model –HMM) là mô hình thống kê dùng để mô hình hóa các loại tín hiệu theo thời gian, với các tham số không biết trước và nhiệm vụ là xác định các tham số ẩn từ các tham số quan sát được, dựa trên sự thừa nhận này. Các tham số của mô hình được rút ra sau đó có thể sử dụng để thực hiện các phân tích kế tiếp, ví dụ cho các ứng dụng nhận dạng mẫu. Trong một mô hình Markov điển hình, trạng thái được quan sát trực tiếp bởi người quan sát, và vì vậy các xác suất chuyển tiếp trạng thái là các tham số duy nhất được sử dụng rất thành công trong những ứng dụng về nhận dạng đặc biệt là nhận dạng tiếng nói. Cấu trúc bên trong của HMM không phải dựa vào các kiến thức về tiếng nói, nhưng nó lại có khả năng mô hình hóa tiếng nói tiếng nói theo thời gian dựa trên cấu trúc được ràng buộc bằng toán học chặt chẽ. Thực tế nghiên cứu trong và ngoài nước cho thấy, trong lĩnh vực nhận dạng tiếng nói mô hình Markov ẩn cho kết quả nhận dạng tốt hơn các phương phápkhác.
Mô hình Markov ẩn thêm vào các đầu ra: mỗi trạng thái có xác suất phân bổ trên các biểu hiện đầu ra có thể. Vì vậy, nhìn vào dãy của các biểu hiện được sinh ra bởi HMM không trực tiếp chỉ ra dãy các trạng thái.
Hình 2.1: Minh họa mô hình Markov trong nhận dạng tiếng nói với 5 trạng thái và chèn sp
Mô hình Markov ẩn là kết quả mở rộng của mô hình Markov, ở đó mỗi trạng thái S1, S2,…, SN trong mô hình Markov được gắn với một hàm phát xạ quan sát (observation distribution). Trong mô hình Markov ẩn ngoài quá trình ngẫu nhiên chuyển trạng thái, tại mỗi trạng thái còn có quá trình ngẫu nhiên sinh ra một quan sát. Tập các quan sát O được sinh ra bởi dãy các trạng thái S1, S2,…, SN của mô hình, mặt khác dãy các trạng thái này là không thấy được nên mô hình Markov dạng này được gọi là mô hình Markov ẩn [2].
Một mô hình Markov ẩn gồm có:
N: Số trạng thái của mô hình. Các trạng thái của mô hình Markov ẩn thường được ký hiệu bằng S= { S1 , S2 ,…,SN), trạng thái ở thời điểm t của mô hình ký hiệu là qt với qt thuộc vào tập S.
M: Số các ký hiệu quan sát được (Observation symbol) ứng với một trạng thái của mô hình Markov ẩn. Trong nhận dạng tiếng nói số các ký hiệu quan sát là kích thước của bảng từ vựng của mô hình. Tập các ký hiệu quan sát được biểu diễn bằng V= {v1, v2,…,vM }, ký hiệu quan sát ở thời điểm t kí hiệu là ot với ot
thuộc vào tập V.
A={ aij}: Tập xác suất chuyển trạng thái (state transition probability distribution). Trong đó, aij là xác suất để trạng thái j xuất hiện tại thời điểm t+1 khi trạng thái i đã xuất hiện tại thời điểm t.
aij=P(qt+1 = sj | qt = si)
B={bj(k)}: Tập xác suất phát xạ quan sát được trong các trạng thái (observation symbol probability distribution in state). bj(k) là xác suất quan sát của ký hiệu vk trong trạng thái j tại thời điểm t.
bj(k)=P(vk tại thời điểm t / qt =Sj)
Πi=P[qt = Sj], i thuộc vào tập [1, N] : Là tập xác suất khởi đầu (initial state distribution). Πi là xác suất để trạng thái i được chọn tại thời điểm khởi đầu t=1:
Πi = P (q1 = S1) với :
Với các giá trị A, B, , M, N thích hợp, một mô hình Markov ẩn sinh ra chuỗi các quan sát: O= {O1, O2,…}
Trong đó Oi lấy một trong các giá trị ở tập các ký hiệu quan sát V. Hoạt động của mô hình Markov ẩn (HMM) được mô tả tóm tắt qua các bước như sau:
Bước 1: Chọn một trang thái khởi đầu q1 tương ứng với xác suất trạng thái khởi đầu .
Bước 2: Gán t=1.
Bước 3: Chọn Oi = vk tương ứng với xác suất quan sát tại trạng thái Si: bi(k).
Bước 4: Chuyển sang trạng thái mới qt+1 =Sj tương ứng với xác suất chuyển trạng thái aij.
Hình 2.2: Mô hình Markov ẩn với sáu trạng thái.
Trong hình minh họa trên là một ví dụ về mô hình HMM với 6 trạng thái, trong đó có trạng thái 1 là trạng thái khởi đầu và trạng thái 6 là trạng thái kết thúc. Tập quan sát gồm có sáu quan sát O={o1, o2, o3, o4, o5, o6} được sinh ngẫu nhiên bởi các trạng thái từ 2 đến 5. Mỗi trạng thái có thể chuyển sang trạng thái bên phải nó hay chuyển sang chính nó trừ trạng thái khởi đầu chỉ có thể chuyển sang trạng thái bên phải nó là trạng thái 2.
Thực tế, để biểu diễn một mô hình HMM người ta thường dùng bộ ký pháp =(A, B, ), trong đó A, B và gọi là các tham số (parameters) của mô hình Markov ẩn .
2.2. Các bài toán cơ bản của mô hình Markov ẩn
2.2.1. Bài toán 1
Với dãy quan sát O={o1, o2,…} và mô hình Markov ẩn =(A, B, ) đã được huấn luyện, chúng ta cần tính xác suất P(O/ ).
Đây là bài toán nhận dạng khi có một dãy các quan sát cho trước và tập các mô hình Markov ẩn. Kết quả của tính toán trên sẽ giúp chúng ta tìm ra được mô hình Markov ẩn có xác suất P(O/ ) tương ứng lớn nhất.
2.2.2. Bài toán 2
Giải quyết vấn dề tìm ra phương án tối ưu cho tập trạng thái q={q1, q2,…} theo một tiêu chuẩn nào đó.
Đây chính là quá trình đi tìm phần ẩn của mô hình Markov, tức là tìm dãy trạng thái q tối ưu. Bài toán thường được áp dụng vào bài toán gán nhãn cưỡng bức dữ liệu huấn luyện.
2.2.3. Bài toán 3
Cho chuỗi quan sát O và mô hình Markov ẩn , ta phải hiệu chỉnh các tham số A, B, của mô hình sao cho xác suất có điều kiện P(O/ ) là tối ưu.
Trong bài toán này chúng ta điều chỉnh tham số của mô hình Markov ẩn sao cho nó có thể miêu tả chính xác nhất các quan sát đã được biết trước đó. Dãy quan sát dùng để điều chỉnh tập tham số của mô hình gọi là tập dữ liệu huấn luyện (training data). Với bài toán nhận dạng nói chung và nhận dạng tiếng nói nói riêng, đây là vấn đề quan trọng, nó cho phép điều chỉnh các tham số để học các dữ liệu từ các hiện tượng thực như tiếng nói.
2.3. Các thuật toán cơ bản
2.3.1. Thuật toán tiến (forward)
Hàm forward được định nghĩa như sau:
t(i) =P(o1, o2,……,ot, qt = si / )
Trong đó: t(i) được gọi là toán tử tiến là xác suất của chuỗi quan sát từng phần o1, o2,……,ot và trạng thái Si tại thời điểm t với điều kiện cho mô hình Markov ẩn .
Toán tử tiến t(i) có thể tính được theo nguyên tắc đệ quy như sau:
Bước 1: Khởi tạo
1(i) = ibi (O1), 1 i ≤ N (với N là số trạng thái của mô hình Markov ẩn).
Bước 2: Đệ quy
Với t ∈ [1, T-1], j ∈ [1, N] ta có:
Bước 3: Kết thúc
P(O/λ) = T(i).
2.3.2. Thuật toán lùi (Backward)
Gọi βt(i) là toán tử lùi, βt(i) là xác suất của chuỗi quan sát từng phần Ot+1, Ot+2,