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.
91 trang |
Chia sẻ: lylyngoc | Lượt xem: 2728 | Lượt tải: 0
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:
- Unlock-0012535_8964.pdf