Một vài ứng dụng có sự hỗ trợ của ASR ta hay thấy là: e Ghi chú nhanh: các trợ lý ảo như Alexa, Siri được tích hợp vào điện thoại di động giúp chuyên những gì chúng ta nói thành ghi chú,
Trang 1ĐẠI HỌC QUOC GIA VIỆT NAM - TP HO CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THÓNG THÔNG TIN
DO QUANG THIEN
XAY DUNG MO HINH NHAN DIEN AM THANH
CHO TIENG VIET DUA TREN BO CONG CU
KALDI VA MO HINH DNN
CU NHAN NGANH HE THONG THONG TIN
THANH PHO HO CHi MINH, 2021
Trang 2ĐẠI HOC QUOC GIA TP HÔ CHÍ | CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT
MINH NAM
TRƯỜNG ĐH CÔNG NGHỆ Độc Lập - Tự Do - Hạnh Phúc
THÔNG TIN
DANH SÁCH HỘI DONG BẢO VỆ KHÓA LUẬN
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số ngày
beeen eee ene ene eeaes của Hiệu trưởng Trường Dai hoc Công nghệ Thông tin.
1 TS Cao Thị Nhạn - Chủ tịch.
2 ThS.Vũ Minh Sang — Thư ký.
3 Th§ Mai Xuân Hùng - Ủy viên.
TP HCM ngày 22 tháng 7 năm 2021
Trang 3LOI CAM ON
Lời đầu tiên, em xin gửi lời cảm on chân thành đến thay Nguyễn Thanh Binh vì là mộtngười hướng dẫn tận tâm, cho em những lời khuyên bồ ích Bằng sự kiên nhẫn, nhiệt huyết
và chuyên môn vững vàng, thầy Bình đã giúp em rất nhiều trong quá trình nghiên cứu và
trình bày luận văn này Không có sự hướng dẫn của thầy em sẽ không có được kết quả nay.
Tiếp đến, em gửi lời cám ơn đến quý Thầy Cô trường Đại học Công nghệ thông tin đặc biệt
là quý Thầy Cô Khoa Hệ thống thông tin những người đã dùng tri thức và tâm huyết của
minh dé truyền đạt cho chúng em vốn kiến thức vô cùng quý báu trong khoảng thời gian họctập tại trường Những kiến thức mà Thầy Cô truyền đạt là bước đệm quan trọng giúp chúng
em có thê hoàn thành đề tài tốt hơn
Trong thời gian thực hiện dé tài, em đã cô găng vận dụng những kiến thức nền tang đã học,kết hợp học hỏi và tìm hiểu những cái mới dé ứng dụng xây dựng đề tài khóa luận tốt
nghiệp Tuy nhiên trong quá trình thực hiện, do kiến thức và kinh nghiệm còn nhiều hạn chế,
nên khó tránh khỏi những thiếu sót Chính vì vậy, em rất mong nhận được sự góp ý từ quýThầy Cô đề em hoàn thiện thêm những kiến thức và kỹ năng cần thiết, làm hành trang quý
báu cho mai sau.
Xin chân thành cảm ơn quý Thầy Cô!
Sinh viên thực hiện
Đỗ Quang Thiện
Trang 4MỤC LỤC
9:1019)/€80019))/e19)0/.) 0000 1
LoL Dat Van dbs 1
1.2 Pham vinghién CỨU: 11111 ng ki 4 1.3 Các cơng cụ SỬ Ụng: nọ net 4
1.4 Phương pháp thực hiỆn: - S1 1S Đ S92 S2922 111v 5
1.5 Cau trúc luận VĂn: cccT n S120 121 1131151151111 111 1111111111111 T11 1xx HnH rệt 5CHUONG 2: NEN TANG VE ASR VÀ BỘ CƠNG CỤ KALDI c:c+cc++: 7
2.1 Các thành phan ngơn ngữ học trong tiếng Viét: c.c.cccccccececececsesceceteseseseseeseeees 7
2.1.1 Language Model (LM) dựa trên âm tiẾt: - 522222 S S222 ££z£vzrxe2 7
2.1.2 Từ điền phát âm dựa trên ørapheme: + ¿2 + + Sx+E+E£££EvE£EzEzE£rrrrrerea 7
2.2 Lexicon và âm CÏ: - TS 2111111011101 1111k nọ TT ch 8
2.2.1 icon 45 8
2.2.2 ÂmCD:, 61001 21 tình HH 10
2.3 Rút trích đặc trưng: - HT TH ket 13 2.4 Hidden Markov Model (HMMI): - c c1 11 xxx TT ng kh re 21
2.4.1 LIkelihoOỞ: HS ng ng và 25 2.4.2 Decoding và aÏIgnmN€HI(: - - - - << < <1 11111111 19531111 kh k4 28
" N a6 a nen 29 2.5 Acoustic model (AM|): - cQ Q11 SH HH 1H HH n TH ng cv 33
2.5.1 Mơ hình Gaussian Mixture Model (GMMI): SS se 33 2.5.2 M6 hình Deep Neural Network (DNN): LG HH HHHHH He 40 2.6 Language Model (LÌM): - ni 50 2.7 Bộ mã hĩa (HDecOdđer): + - c S111 111101 111111 111111 11111 111v xntvy 52 2.8 KÏỞH: TH nọ nà 56
2.8.1 Giới thiỆU: ng ng n0 kh 56
2.8.2 Kiến trúc của Kaldi: 5-5 1 11 1 1515111122221 rcee 572.8.3 Chuẩn bị dữ liệu (Data Preparation): ::sssseeeeseeeeeeeeeeeeeeeeeeeeeeeceeeeceeeeeeeees 582.8.4 Ý nghĩa các folder và các file trong project: c.ccccececesseseeeseseseseseeeeseeees 59
Trang 5CHƯƠNG 3: XÂY DUNG MÔ HÌNH VÀ DANH GIÁ KET QUẢ - :-:czs55¿ 65
CHUONG 4: UNG DUNG VA DANH GIA KET QUA uw cesecesecesesescececeseststsestseseieees 84
4.1 Ứng dung minh hoat o cccccecccccccccscscsesesescscsesesesesesesssssesesssecscsessssisisesssesseseeeees 84
4.1.1 Thiết kế lOgiC: E222 St S111 212111 5151115121111 1111111 011111111111 e 84
Trang 61: lexicon CỦa tT “SIX” - ng ng nh 9
2: ba trang thai CHa MOt AM raiẳiẳẳiẳầẳầiaáaaiiiiaaiẳiẳiẳẳẳ 9
3: từ ‘rat’ khi sử dung ba trạng thai con dé mô tả trong HMM - 10
4: cách thé hiện ngắn gon của HMM topology - 5-5 22s cv +£z£zrersees 10
5: /eh/ nằm trong ngữ cảnh khác nhau - ¿2 + + +E+2+2£££+E+E+E+E+E£e£eeeerxrxcee 11
6: âm CD và âm C Ì - - c1 1111111132111 119911 12
7: minh họa việc nối trạng thái -. +2 St St S321 22 2 35181212515 1115155 xxx 12
8: sử dụng GMM để huấn luyện triphone ¿ ¿5 5 S2 S£+E+E+E+E£z£z£z£sxzxzxz 13
9: biểu diễn dạng sóng của một audiO - ¿5:5 +s+S£+S+SvEvEvEezzezsseszzesez 14
10: quá trình chia tín hiệu thành các khung +3 + + + eeess 15 11: hình dạng của đặc trưng MECC - - - SH kt 15 12: tín hiệu trước va sau khi được pre-emphas1s + +++++++++++xerres 16 13: chia window cho tín hiỆU - c- 2222211112111 1 1111113111111 111115151112 17
14: phương trình cho Hamming WIndOW 111111 re 17
15: công thức biến đổi FOui€T - + St SE+E2E£E£EEEEEEEEEEEEEEEEEEEEEEEEErrrrrrrree 18
16: công thức tính MelÌL c1 11H ng Tnhh 18
Trang 7dựa vào bộ lọc tam giác tính hệ SỐ MEl cccceccecceccescescesceseeseeseeteeseeseeseeseeseens 18
công thức tính hệ số cepstral + ¿+2 + E+E+EE£E£E#EEEEEEEEEEEEEEEEEEEEEkrrrsrea 19
12 hệ số cepstral đầu tiên - ¿ ¿21 2S SE2E2E2E5212121211212121511 2.2.2 xe 19
công thức năng lượng mỗi frame - + ¿+2 1+ E22 E22 E2E££E+E£Eekeeereerxed 20
công thức của thuật toán ÍorWard c1 111 111v vv v iy 25
tham số ẩn j tại thời điỀm (L E22 CS E1 2121E1 5151111121111 818111110 re 26
công thức khởi tạO tt 27
công thức đệ quy đề tính xác suất forWard ¿+ ¿+ 2+2 cexvxzxzxzezrersrea 27
công thức xác suất tính tông ¿-¿ ¿5:52 2222222222 2E2E2E2E25252E212121212E 2x2 2xe 27
bước khi {ạO -ccc 111111211 HH TT TK TH cv cty 28
công thức đệ QUY - c1 SH việt 28
công thức chấm dỨt + 2+ St +12 E8EEE9E9E5125 E3 E5111212111 1111111111111 xEg 28
công thức chính của thuật toán Vit€rb1 c1 1kg 29
đường path dự đoán .- - - - ty 29 công thức tính OI¡(Ẩ) cọ iy 30
công thức tính ÿ¡(Ệ) - - - c9 ng nh 30
Trang 8công thức tính EP và TP cải thiỆn 2E E 1111111111111 1111111 11 3 x2 32
mô tả lại quá trình huấn luyện AM - ¿52 2 S+E+E2E£E£E£EeEeEzEzrrererea 33
công thức phân phối chuẩn cho đặc trưng x ¿-:-¿©25252 5222 22+22z2zz+zxz2 34
công thức ước lượng các tham số của phân phối chuẩn - ¿2 2 + +: 34
minh họa của ví dụ đơn giản trÊn - - - 1 1 113 ** 333355 11111 krrrrseeee 34
công thức phân phối chuân đa chiều + 2 2S +E+E+E£2££E+E+E+E+E££eeeesz 35
ma trận hiệp phương Sa1 - c2 1011111 ng 3 1111k rre 35
ước lượng các tham số của phân phối chuẩn đa chiều - 5-5-2 2 52: 35
công thức tính xác suất của GÌMM - + 2+2 +2+2E2E2EE2525252121212121 2121 2x 36
công thức đếm điểm dữ liệu ¿2+2 2122 SE EEEEEEEE2E25 E2 1121212 xx 37
công thức ước lượng các tham số GMM khi biết nguồn gốc điểm dit liệu 37
công thức đếm điểm đữ liệu ¿2S S E122 SE 5E EEE212511 1111121212 te 38
công thức ước lượng các tham số GMM khi không biết nguồn gốc điểm dit liệu
¬ 38
công thức xác suất của GMM trong mô hình GMM-HMM - 39
minh họa MM - 1111022111111 11111111112 111111 cv 40 phân phối chuẩn Gaussian biến thành GMM (2-component) - 40
Trang 9ví dụ một NN đơn giản - - S911 111 vê 41
công thức tính xác suất dự d0an c.c.ccceccccccscscsssesestesssesesesteessseststsseeeseeeees 42
minh họa cho công thỨC - - 33 399883118111111111111111 111111111 222tr 42
biểu diễn dạng ma trận của ví dụ trÊn +33 vke 43
kiến trúc của DNN-HMM 52 tt HH HH 45
cơ chế convolution trong nhận diện tiếng nói ¿-2- 55252 5++*+s+Sz2+z3 46
kiến trúc TDNN - ¿+ tt 2 2 22122 HH tre 47
phép toán tích chập trong TDNN nhe 47
minh hoa W kernel và các $6 ổO - ¿tk E118 181191 51 1S SE EEEskerkrrkri 48
công thức tính kích thƯỚc O 222232 3331811111 1111111111111 11 11111 3 re, 48 công thức tính xác suất dự đoán của một neuron trong TDNN - 48
ví dụ subsampÏIng 3311911111111 111111111111 1v v.v 49 TDNN với sub-sampling (mau đỏ) và không có subsampling (đỏ và xanh) 5Ö
công thức o khi subsamplIng 2322133 11111111 1111111111111 1111111 re, 50 công thức dé tính xác suất một từ ¿-¿-¿ ¿5222 2222222222 222E222E2E2x2x2x2xcxe2 51
VE dụ LM eec ccc cecccccceeeceeseeeeeeeeeeeeeueseeesaeeceeeueeeeeeeeeeesaneeeeesaeseteaeeseeeaneeees 51
G tranSđUC€T - - cc CC c0 13020101000 100190 1111k kh TH nh TK kh kh hy ky 53
L transSđUC€T - - - cc- CS 232112111112 110 111111 cv nh ch ch cv ca 54
Trang 10Hinh 2 79: FSM TA 54 I0 )0020010a 7 VN 55 Hình 2 81: vi dụ hai trường hợp đặc bĐiỆt - 2201111111111 9 2 111 khe 55 Hình 2 82: quá trình HCLG 2 3233 E13111111101 1110110111101 101 11v 1 nh re 56
Hình 2 83: minh họa một weighted finite-state transducers +++++++++ees 57
Hình 2 84: kiến trúc của Kaldi - 5:5: 5: S3 39EEEEEEEEEEEEEE1212121212121212121 212121 2e6 58
Hình 3 1: mô tả quá trình huấn luyện oo ceceeccccsccesescscsssceseseseseseseseeeeseseseseseeseseees 68
Hình 3 2: công thức WE cece cece HH ng 69
Hình 3 3: ví dụ công thức WER ng HH nhe 69
Hình 3 4: sử dụng đặc trưng Tandem (hoặc bottle-neck) trong GMM-HMM Mô hình
DNN được huấn luyện đề rút trích đặc trưng Tandem (hoặc bottle-neck), cái mà sẽ được kết
hợp với đặc trưng MECC Đặc trưng kết hợp được giảm độ tương quan bằng Principal
component analysis trước khi được học bởi GMM-HMM 5 << scs+ssseves 71
Hình 3 5: ding DNN như rút trích đặc trưng cho GMM, tang màu xám là đặc trưng được
dùng bởi GMM HT ng ng 1 ng 72
Hình 3 6: LIN adaptatiơn 111311 3111111101 10110110111 ng ng HH ng 74 Hình 3 7: LON adapftation - - - << 11111 1K ng 74
Hinh 3 8: LHN ái 75
Hình 3 9: minh hoa input của DNN khi có kết hợp thông tin người nói 76
Hình 3 10: xác suất dự đoán khi không có thông tin người nói - 5 22+ s+s+s+: 76
Trang 11Hình 3 11: xác suất dự đoán khi có thông tin người nói ¿2+2 2 +x+*+z+z£z£z£zx+2 77
Hình 3 12: i-vector làm input cho DÌÑN c1 11 11 ng khe 78
Hình 3 13: quá trình rút trích Ï-V€CfO 111111111 ng 5 1111k khe 78
Hình 3 14: phân phối chuẩn X: - 2 5253 E212 EEEE9E9E2123 E3 5151112125 111E1111111 1111 xEg 79
Hình 3 15: phân phối chuẩn x;(§) 5: 5:2 S252 S2SS2SE22E2EE121212121212121212123222x 2x 79
Hình 3 16: công thức tính 1-V€C{OT 3311101111111 111110 2v vn nghe 79 Hình 3 17: công thức (S) - - - << << << 111111911 K kg ng 79
Hình 3 18: công thức Õk(S) TS 31110111101011 11g HH nghe 79 Hình 3 19: công thỨC (S) 2222221111111 TH 10k TT nh 80
Hình 3 20: ví dụ của script “gef_tram_ctim.Shỉ” cc c1 SH ren 81
Hình 3 21: một phan của quá trình alignment (sử dụng “show-alignments”) 81
Hình 4 1: khi mới mở app hoặc dừng lại - - 1511111135355 EErrree 86 Hình 4 2: khi ảnh được thay đôi liên CUC cecececeeccccececscesecesecscseetenetseeseseueseseseseseseseseess 87
Hình 4 3: khi ảnh chuyền sang trdic c.ccccccccsesecesescscsccesesescsesesseseseseseseeseesvscsesseeseseees 88
Hình 4 4: khi ảnh chuyền sang phải ¿ ¿5:52 S2 5252222222222 2E222E2E2E2521252222222x2xe5 89
Trang 12DANH SACH CAC BANG
tập âm vi dựa trên grapheme - - << 1 111g 11kg và 8
ví dụ về từ điển phát âm dựa trên grapheme - ¿+ ¿2 +£+2£z£z£+E+EzEzz£zczed 8
so sánh kết quả khi áp dụng kĩ thuật SaT - ¿2 2 + 2222 z£z£vEexzxzsrered 82
kết quả STT của FPT +2 SE E121 E5EE5E51515121 1111111111111 111111111111 xe 92
kết quả STT của Vietfel -¿-¿-¿- ¿5c 2222221 22252553212121212121212111111111 111111 re 93
kết quả STT tự xây dựng ¿-¿ ¿222 22221212121 2E2121212121211511 111 eEerrrrei 94
Trang 13DANH SÁCH CÁC CHỮ VIET TAT
MM: Markov Model
HMM: Hidden Markov Model
LM: Language Model
AM: Acoustic Model
MFCC: Mel-frequency cepstral coefficients
GMM: Gaussian Mixture Model
UBM: Universal Background Model
DNN: Deep Neural Network
TDNN: Time-Delayed Neural Network
CNN: Convolutional Neural Network
NN: Neural Network
SaT: Speaker aware Training
TP: Transition Probability
EP: Emission Probability
ASR: tự động nhận diện tiếng nói
CD: Context-Dependency
CI: Context-Independency
WEST: Weighted Finite-State Transducer
FSM: Finite State Machine
Trang 14FSA: Finite State Acceptor
FB: Forward-Backward
EM: Expectation-Maximization
jp: joint probability
p.d.f : probability density function (hàm phân phối mật độ xác suất)
PCA: Principal component analysis
STT: Speech-To-Text
Trang 15CHUONG 1: TONG QUAN 1.1 Đặt van đề:
Nhận diện tiếng nói hay tự động nhận diện tiếng nói (ASR) là một chương trình chuyền tín
hiệu âm thanh của con người thành dạng chữ Khi mà ngày nay mọi công việc dần được
chuyên đối sang hướng tự động hóa, con người ra lệnh cho máy móc làm việc.
Một vài ứng dụng có sự hỗ trợ của ASR ta hay thấy là:
e Ghi chú nhanh: các trợ lý ảo như Alexa, Siri được tích hợp vào điện thoại di động
giúp chuyên những gì chúng ta nói thành ghi chú, thay vì cần một cuốn số và câyviết, tránh ghi không kịp và bỏ sót thông tin quan trọng
e Giúp đỡ những người khuyết tật: ứng dụng vào trong các máy bán hàng tự động khi
người khuyết tật không thể đi đứng đề chọn đồ uống hoặc những người khiếm thính,giúp họ học và hòa nhập vào cộng đồng
e_ Tạo phụ đề : khi xem phim nước ngoài có thé khả năng nghe không được tốt, ta buộc
phải đọc phụ đề, ASR giúp nhận diện lời thoại của diễn viên mà không cần phải soạnphụ đề trước sau đó tích hợp vao video
Đi đầu trong lĩnh vực này có thê kê đến Google hay Amazon Họ cung cap các dịch vụ dangcloud mở ra các API cho các ứng dụng có thê tích hợp rất dễ dàng Ví dụ hiện nay Google
hỗ trợ nhận diện trên 120 ngôn ngữ, sử dụng nhiều mô hình máy học, công cụ dé tăng độ
chính xác, phương pháp xử lý tiếng ồn ngày càng tốt hơn Nhưng nó không miễn phí, mỗitài khoản sẽ cho sử dụng 60 phút miễn phí sau đó phải trả tiền để tiếp tục sử dụng, có giá
$0.006 mỗi 15 giây và giá cả có triển vọng sẽ ngày càng tăng cao khi được nhiều người sửdụng Ngoài ra các mô hình do Google hay Amazon cung cấp đòi hỏi thiết bị, ứng dụngphải có kết nối internet, phục vụ cho nhu cầu đại trà với quy mô lớn tổng quát mà đôi khitrở nên dư thừa với nhu cầu hạn chế của các ứng dụng, thiết bi đặc thù, nhỏ, chi phí thấp,chỉ cần tập trung vào một vài khâu lệnh đơn giản như máy bán hàng tự động, thiết bị trình
1
Trang 16diễn điện tử Chính vì lẽ đó trong luận văn này tôi tập trung vào nghiên cứu các phương
pháp xây dựng bộ nhận diện giọng nói cho tiếng Việt, đặt trọng tâm giải quyết bài toán khâu
lệnh đơn giản, tốc độ nhanh, độ chính xác cao, thích hợp cho những ứng dụng và thiết bị đã
đê cập ở trên.
Standard models
Enhanced models
Feature (all models except enhanced video and phone
(video, phone call)
call)
0-60 Over 60 Mins up to 1 Million 0-60 Over 60 Mins up to 1 Million
Minutes Mins Minutes Mins
Speech Recognition (without Data Logging - Free $0.006 / 15 seconds ** Free $0.009 / 15 seconds **
default)
Speech Recognition (with Data Logging opt-in) Free $0.004 / 15 seconds ** Free $0.006 / 15 seconds **
Hinh 1 1: bang gia ASR cua Google
Trang 17Hình 1 2: máy bán nước tự động
Trang 181.2 Pham vi nghiên cứu:
Tìm hiểu ASR và quá trình hoạt động, các thuật toán chính sử dụng.
Bộ công cụ Kaldi, cách cài dat, sử dụng, cấu trúc các dự án theo chuẩn Kaldi
Cách xây dung dataset, quá trình sử dụng thuật toán Gaussian Mixture Model (GMM) và
Deep Neural Network (DNN) dé huấn luyện mô hình với sự trợ giúp của Kaldi
So sánh mô hình DNN và GMM và trình bày một vài cách cải tiến
Sử dụng mô hình thu được đề xây dựng ứng dụng tranh điện tử thông minh
1.3 Các công cụ sử dụng:
Trang 19Bộ công cụ Kaldi, dùng để huấn luyện mô hình nhận diện, nền tang CUDA dé hé tro chay
DNN tốc độ cao trên card đồ họa Hệ điều hành Ubuntu là môi trường huấn luyện cũng như
kiểm thử thuật toán.
Android Studio: IDE dùng để xây dựng ứng dụng trên các thiết bị chạy hệ điều hành
Android.
1.4 Phương pháp thực hiện:
Cơ sở lý thuyết:
Trước tiên tìm hiểu ASR
Chức năng của các thành phần, thuật toán áp dụng vào đó
Tập trung tìm hiểu chuyên sâu vào thuật toán DNN và GMM, vì đây là hai hướng
tiếp cận phô biến và quan trọng trong lĩnh vực này
Tìm hiểu cách thức tự xây dựng dataset, từ điển, file mô tả nội dung của nó
Tìm hiểu quá trình huấn luyện mô hình, cách điều chỉnh các thành phan kết hợp với nhau đê cho ra kêt quả cuôi cùng.
Quá trình huấn luyện mô hình và xây dựng ứng dụng:
1.5
Tìm hiểu cách sử dụng nền tảng Kaldi dé huấn luyện mô hình
Nghiên cứu cấu trúc dự án theo chuẩn quy định của Kaldi
Thực nghiệm để chỉnh sửa các thông số dé thu được mô hình tốt nhất.
Cách thức sử dung mô hình, các thư viện hồ tro dé xây dựng ứng dụng trên nền tang
android.
Cầu trúc luận văn:
Luận văn sẽ gôm bôn chương:
Trang 20Chương 1: trình bay đặt vấn đề tại sao lại tự xây dựng một hệ thống ASR, nhữngkiến thức cần có đề có thé hiểu được một hệ thống ASR, phương pháp thực hiện.
Chương 2: đi sâu vảo giải thích và tìm hiểu các thành phần của ASR, những thuật
toán áp dụng và bộ công cụ Kaldi.
Chương 3: trình bày cách thức xây dựng dataset, huấn luyện mô hình dé nhận diệnmột vài khẩu lệnh tiếng Việt cơ bản Các độ đo sử dung dé đánh giá mô hình DNN-HMM và GMM-HMM, cách cải thiện độ chính xác của mô hình va dé cập một vảicải tiến làm tăng độ chính xác So sánh hiệu quả giữa hai mô hình được tạo ra theo
hai hướng tiếp cận trên.
Chương 4: mô tả ứng dụng demo và đánh giá kết quả, kết luận
Trang 21CHUONG 2: NEN TANG VE ASR VÀ BỘ CÔNG CỤ KALDI
2.1 Các thành phan ngôn ngữ hoc trong tiếng Việt:
2.1.1 Language Model (LM) dựa trên âm tiết:
Trong nhận diện tiếng nói việc quan trọng dau tiên là cách phân chia từ trong một câu dé
sao cho có nghĩa, ở đây ta sẽ sử dụng tiếng Anh làm ngôn ngữ chuẩn dé so sánh với tiếng
Việt
Một từ trong tiếng Anh có thể gồm nhiều âm tiết nhưng trong tiếng Việt ta sử dụng khoảng
trăng đê chia âm tiét của các từ.
Tiêng Việt Tiêng Anh
Tôi I
hoc learn
tiéng_Anh English
Tất nhiên vẫn có trường hợp một âm tiết là một từ, đứng một mình có một nghĩa khác khi
ghép với từ khác là một nghĩa khác Vi dụ: “tiêu” chỉ gia vi, “tiêu tan” có nghĩa là biên mat.
LM dựa trên âm tiết giúp tránh nhiều lỗi xảy ra trong bước phân chia từ và giảm độ phức tạp
khi số âm tiết quá ít Chúng ta sẽ có được một trigram language model khi train model với
bộ dữ liệu.
Chúng ta không cần quan tâm định dạng của chữ trong file text là ASCII hay Unicode, vì
công cụ Kaldi sẽ ánh xa từ và âm vi từng cái một vào một con sô.
2.1.2 Tir điên phat âm dựa trên grapheme:
Một grapheme là một ky tự hay nhiều ký tự đại diện cho một âm vỊ.
Không dễ dé mô hình hóa những đặc trưng độc nhất trong ngôn ngữ của một quốc gia
Trang 22Cách được dùng phổ biến hơn cả là sử dụng grapheme như là âm vị với mỗi kắ tự được xemnhư là một âm vị Phụ âm có thé gồm từ một tới ba kắ tự Nguyên âm gồm từng kắ tự một
cùng với dâu(săc, ngang, huyén, hỏi, ngã, nặng).
Phụ âm e 3kýtự e ngh
e 2kytu e chgh gikhng nh ph qu tr th
e lIkýtự e bcdđghklmnprstv
Nguyên âm e Thanh ngang e addeéiodouuy
e Thanh sac e áảãéêắ¡óôớúứý
e Thanh huyén e Adacéiddouty
e Thanh hỏi e ảảâƯêiỏôởủửỷ
e Thanh ngã e ããảảẽêlđôỡũữỮỹ
e Thanh nang ệ addetiodguuy
Bang 2 1: tap âm vị dựa trên grapheme
Thanh th a nh Mèo mèo
Nguyên nguy én Chuyên chuyên
Bảng 2 2: vắ dụ vê từ dién phát âm dựa trên grapheme
2.2 Lexicon và âm CD:
2.2.1 Lexicon:
Lexicon là một thành phan quan trọng trong ASR, dùng dé mô hình hóa những âm của một
từ bằng cách sử dụng chuỗi Markov Chúng ta dựa vào lexicon va AM dé chuyền đổi tắn
hiệu (được biéu diễn bằng đặc trưng) thành một từ
Trang 23Hình 2 1: lexicon của từ ‘six’ (Nguồn: “Speech Recognition— Acoustic, Lexicon &
Language Model, Jonathan Hui medium website”)
Những âm vi không đồng nhất Biên độ của tần số thay đổi từ khi bắt đầu cho đến khi kết
thúc Đề thé hiện điều đó, ta chia một âm thành ba trạng thái con : đầu, giữa, kết thúc.
5000
0.48152 ay Time (s)
Hình 2 2: ba trạng thái của một âm (Nguồn: “Speech Recognition — Acoustic,
Lexicon & Language Model, Jonathan Hui medium website”)
Mô hình truyền thong HMM thường dùng ba trạng thái con dé mô hình mỗi âm Mô hình này thực hiện alignment giữa những trang thai và những observation.
Trang 24‘ae hy?SE EN ANG me SE my BE xxx
Xị 3o yy =
Hình 2 3: từ ‘rat’ khi sử dung ba trang thái con dé mô tả trong HMM (Nguén: nam
trong những slide về ASR cua dai hoc Edinburghg [3])
Dé cho đơn giản cho việc biéu diễn HMM topology, dau ra của phân phối sẽ được vẽ bangmột đường cong và tham số quan sát sẽ được đánh nhãn trên đường cong đó và con số sau đó
là kết quả của AM Dưới đây là một ví dụ minh họa cho thay đôi trên, từ ‘two’ sẽ chứa 2 âm
mỗi âm có ba trang thái.
g¡/0.5 ga/0.5 g3/0.5 ga/0.5 gs/0.5 96/0.5
g:/0.5 S g2/0.5 (7) g3/0.5 ia 94/0.5 fas gs/0.5 is 96/0.5 C)
Hình 2 4: cách thé hiện ngắn gọn của HMM topology (Nguôn: “Speech Recognition
— Acoustic, Lexicon & Language Model, Jonathan Hui medium website”)
Dé xử lý những tap âm trong audio Ta sé mô hình chúng như là SIL và xem nó như là một
âm Vì khó đề bắt được tạp âm nên ta phải sử dụng 5 trạng thái con thay vì ba
2.2.2 Am CD:
Âm thanh thay đổi phụ thuộc vào ngữ cảnh của từ, tức là những âm xung quanh nó Ví dụ khi phát âm chữ “pin” va “spin”, tuy phiên âm của hai chữ ‘p’ đều là /p/, nhưng khi đưa tay
lên miệng ta sẽ thấy có sự khác biệt khi nói
Đề xây dựng một AM phức tạp, ta không thể bỏ qua ngữ cảnh của âm được Như hình bêndưới, tuy âm vị là /eh/ nhưng âm phổ của nó khác nhau bởi /eh/ nằm trong những ngữ cảnh
10
Trang 25khác nhau, hình đầu tiên /eh/ nằm giữa hai âm /w/ và /d/, hình thứ hai /eh/ nằm giữa hai âm/y/ và /l/, hình thứ ba /eh/ nằm giữa hai âm /b/ và /n/.
500+
Frequency (Hz)
Hình 2 5: /eh/ nằm trong ngữ cảnh khác nhau (Nguồn: “Speech Recognition —
Acoustic, Lexicon & Language Model, Jonathan Hui medium website”)
Do vậy ta phải xét ngữ cảnh của âm vị Những âm đó được gọi là triphone hay âm CD,
những âm ngược lại được gọi là monophone hay âm context-independency (CI) Như ví dụ
bên dưới nếu ngữ cảnh bị bỏ qua âm /eh/ của ba khung audio chỉ được coi như một âm vi,
ngược lại âm vị của ba khung sẽ được xem như ba âm vị khác nhau.
11
Trang 26Context-independent phone Context-dependent phone
Hình 2 6: âm CD và âm Cl (Nguồn: “Speech Recognition — Acoustic, Lexicon &
Language Model, Jonathan Hui medium website”)
Trong thực tế, số triphone rat nhiều và không đủ dữ liệu dé huấn luyện hết chúng, triphone
có thể xảy ra luôn lớn hơn triphone có trong dữ liệu của chúng ta Do vậy một vài state cóthé dùng chung một mô hình GMM Việc đó gọi là nối trạng thái (State Tying)
Trang 27cảnh trái và ngữ cảnh phải của từ Not lá của cây gom các triphone, những triphone sử dụng
chung mô hình GMM.
Mục đích của việc huấn luyện là tối đa hóa xác suất của tập dữ liệu huấn luyện bằng môhình GMM cuối cùng Từ ý tưởng đó chúng ta phát triển lên một bậc, sử dụng nói trạng tháicho các triphone Ta sử dụng GMM dé mô hình triphone thay vì phân phối chuẩn thông
thường.
(1) Train monophone 68-6
single Gaussian
models IÑ II IN
(2) Clone monophones _— eee a i
to triphones t-iy+n~ t-iy+ng f-iy+l *s-iy+l
Hình 2 8:sử dung GMM dé huan luyện triphone (Nguồn: “Speech Recognition —
Acoustic, Lexicon & Language Model, Jonathan Hui medium website”)
2.3 Rut trich đặc trưng:
Muc dich cua viéc nhan dién tiéng nói là dựa vào LM và Acoustic Model (AM) dé timnhững từ tương thích nhất khi người nói khi nói vào bộ phận thu hoặc được nhận diện từmột đoạn video Đặc trưng được rút trích được dùng dé biéu diễn dang sóng của audio, đặc
13
Trang 28trưng bao gôm thông tin của formant trong việc xác định âm và hiệu ngữ cảnh của âm, cách
Hình 2 9: biểu diễn dạng sóng của một audio (Nguồn:
https.//transitionssc.org/interview-dude-transitions/)
Chúng ta sé chia tín hiệu cua audio thành những khung (frame) kéo dai trong 25ms, khung
sau sẽ chồng lên 10ms của khung trước đề lấy đặc trưng Bề rộng của một khung là 25ms đủ
dé bắt đầy đủ thông tin Làm một con tính cơ bản, néu một người nói 3 từ mỗi giây, ba từ đó
được biểu diễn bang 4 âm (phone), mỗi âm có 3 giai đoạn con, suy ra sẽ có 36 trạng tháimỗi giây do đó bề rộng là 25ms là vừa phải
Dé tạo một acoustic model, observation X được đại diện bởi các vector đặc trưng (x1, x2,x3, ) Có nhiều cách đề lây đặc trưng nhưng được dùng nhiều và rộng rãi nhất trong lĩnh
vực này là phương pháp Mel-frequency cepstral coefficients (MFCCs), mỗi khung của một MFCC sẽ chứa 39 đặc trưng.
14
Trang 29Frames of acoustic feature vectors
Hình 2 11: hình dạng của đặc trưng MFCC (Nguồn: “Feature Extraction MFCC &
PLP, Jonathan Hui medium website”)
Các bước thực hiện của phương pháp Mel-frequency-cepstral-coefficients (MFCC):
15
Trang 30e Pre-emphasis: do câu trúc thanh quản nên năng lượng của âm thanh ở tân sô cao suy
giảm hơn âm thanh ở tan số thấp, ma tần số cao vẫn có nhiều thông tin có giá trị Do
đó, ta cân tăng năng lượng tại tân sô cao đê có thê lây được nhiêu thông tin cho AM.
Điêu này sẽ giúp cải thiện độ chính xác của việc phát hiện âm.
x’ [ta] = x[ta] — œx[ta — 1] 0.95 < œ < 0.99
zol
2.
Scand pressure level dB /Mz
Frequency (Hz Frequency (Hz)
Jurafsky & Martin, fig 9.9
Hình 2 12: tin hiệu trước và sau khi được pre-emphasis (Nguôn: “Feature
Extraction MFCC & PLP, Jonathan Hui medium website”)
e Windowing:
o Bước nay sẽ chia tin hiệu thành các khung (frame) có bề rộng 25ms do tin
hiệu thay đổi liên tục theo thời gian nên thông tin cũng biến đổi theo, nếu chỉ
xét trên một dãy tín hiệu thì thông tin thu được sẽ không tốt.
16
Trang 31Hình 2 13: chia window cho tín hiệu (Nguồn: “Feature Extraction MFCC & PLP,
Jonathan Hui medium website”)
o Thông thường loại window được sử dụng là Hamming, sử dung cửa sô nay
trượt trên toàn bộ tín hiệu đê trích ra một loạt các frame, trong mỗi frame các thông tin đặc trưng được coi là tinh.
Hamming (œ = 0.46164) or Hanning (œ = 0.5) window
w[n] = (1—œ) — œcos (5) L: window width
Hình 2 14: phương trình cho Hamming window (Nguồn: “Feature Extraction MFCC
& PLP, Jonathan Hui medium website”)
e Biên đôi Fourier:
o Ta áp công thức dé lay thông tin từ miền tan số.
N-¬I 2
XIk]= 3 ainlexp[~ sa »
17
Trang 32Hình 2 15: công thức bién déi Fourier (Nguồn: “Feature Extraction MFCC & PLP,
Jonathan Hui medium website”)
e B6 loc Mel:
o Bước nay sẽ chuyên đổi đoạn tín hiệu trong miền tần số sang thang do Mel
băng công thức Mel
M(ƒ)=11271nq+ ƒ /700) „
Hình 2 16: công thức tinh Mel (Nguồn: “Feature Extraction MFCC & PLP, Jonathan
Hui medium website”)
o Tai người chỉ thu nhận âm thanh ở những tần số nhất định Do đó ta sử dung
một loạt các bộ lọc tam giác, thông thường có từ 20 đến 40 bộ lọc tam giácđược sử dung, tập trung nhiều vào tan số trung tâm dé tính toán hệ số Mel
DFT(STFT) power spectrum |X[kI|”
N
= Frequency bins
T2 w
Mel-scale power spectrum Y[m]
Hình 2 17: dựa vào bộ lọc tam giác tính hệ số Mel (Nguôn: “Feature Extraction
MFCC & PLP, Jonathan Hui medium website”)
e Log:
o Cuối cùng cho đoạn tín hiệu di qua các bộ lọc va tính tổng các giá tri đầu ra
tương ứng, ta sẽ được một chuỗi giá trị M=(m1, m2, , mk), với mỗi giá trị m
lấy logarith ta sẽ được các hệ số mel
18
Trang 33e_ Biến đổi Fourier nghịch:
o Bước này được thực hiện dé tính hệ số cepstral
ZrnŒm — 0.5)
M-1
c(n) = » log,)(s(m)) cos w :n=0,12, C-1)
Hình 2 18: công thức tính hệ sé cepstral (Nguồn: “Feature Extraction MFCC &
PLP, Jonathan Hui medium website”)
o Vì mục đích cuôi cùng là phân loại âm vi nên ta chi lay 12 hệ sô cepstral dau
Cepstrum index
Hình 2 19: 12 hệ số cepstral dau tiên (Nguồn: “Feature Extraction MFCC & PLP,
Jonathan Hui medium website”)
e Đặc trưng động:
o Mục dich của việc thêm đặc trưng động để biểu diễn sự thay đôi thông tin khi
chuyền từ một frame này sang frame khác
o Mỗi frame rút trích được 12 hệ số và hệ số thứ 13 là năng lượng trong nỗi
frame, giúp cho việc xác định âm vi.
19
Trang 34Energy = yx [t]
t=t, 4)
Hình 2 20: công thức năng lượng mỗi frame (Nguôn: “Feature Extraction MFCC &
PLP, Jonathan Hui medium website’)
o Từ 13 đặc trưng ban dau, ta tinh delta dé biéu dién su thay đôi của đặc trưng
khi chuyên từ frame này sang frame khác Ta thực hiện đạo hàm bậc I của đặc
trưng.
c(t +1)—c(t—-1)
2 (5)
Hình 2 21: đạo hàm bậc 1 (Nguồn: “Feature Extraction MFCC & PLP, Jonathan
Hui medium website”)
d(t) =
lo Tiếp theo ta đạo hàm thêm một lần nữa để tính delta-delta và thu được 39 đặc
trưng MFCC
o Sau cùng 39 đặc trưng thu được gồm : 13 đặc trưng + 13 đặc trưng của đạo
ham bac 1 + 13 đặc trưng của đạo hàm bậc 2.
Dưới đây là tổng kết quá trình rút trích đặc trưng bang phương pháp MFCC:
20
Trang 35AG (jar te}
Sơ đồ 2.1: quy trình rút trích đặc trưng bằng phương pháp MFCC (Nguồn: “Feature
Extraction MFCC & PLP, Jonathan Hui medium website”)
2.4 Hidden Markov Model (HMM):
HMM là mô hình thống kê trong đó hệ thống được mô hình hóa với các tham số biết trước(observation), giá tri của observation có thê là rời rạc hoặc liên tục, và nhiệm vụ là xác địnhcác tham số ân từ các tham số quan sát được Ví dụ: sử dụng mô hình HMM dé dự đoán trời
sẽ nắng hay mưa dựa vào các hoạt động trong ngày
e Trực quan hóa ví dụ trên băng hình ảnh
21
Trang 36CLEAN SHOP BIKE
(Nguồn:” Hidden Markov Models — Part 1: the Likelihood Problem, Maria
Burlando”)
e Ta có tham số an S = {Nắng, Mua} vì là cái ta muốn dự đoán khi không thể biết
chính xác được và tham số quan sát được O = {Son, Don dẹp, Mua sắm, Đạp xe} lànhững điều ta biết chắc chắn
° Xác suất khởi tao x tại ngày đầu tiên to: x = |0.6, 0.4| với xác suất dé ngày đầu tiên
nang là 0.6, ngày mưa là 0.4 Chú ý: tổng xác suất trên một dòng cộng lại phải bằng
1.
e Transition Probability (TP) là xác suất chuyên đổi từ ngày mưa sang nắng và ngược
lại Ví dụ nếu xác suất ngày hôm nay là nang và ngày tiếp theo cũng nắng là 0.8,
tương tự ngày hôm nay là mưa và ngày tiếp theo là mưa 0.6 Ta lập được ma trận
sau.
22
Trang 37Hình 2 22: ma trận của TP (Nguôn:” Hidden Markov Models — Part 1: the
Likelihood Problem, Maria Burlando”)
e Emission Probability (EP) là xác suất ta sẽ lam gi đó trong trời năng hoặc mưa Vi
dụ nếu ngày hôm trời nang ta quyết định dọn dep là 0.1, trời mưa ta quyết định đạp
xe là 0.05 từ thông tin đó ta lập một ma trận
tớ
PAII CLEAN SHOP BIKE
3#| 04 01 02 03
Hình 2 23: ma trận của EP (Nguén:” Hidden Markov Models — Part 1: the
Likelihood Problem, Maria Burlando”)
HMM topology xác định một tập các trạng thái cho phép chuyên đồi qua lại lẫn nhau, dướiđây là ví dụ của một HMM topology bao gồm tat cả các tham số có thé có của hệ thống và
TP.
23
Trang 38Hình 2 24: HMM topology (Nguồn: “Speech Recognition — GMM, HMM, Jonathan
Hui medium website”)
Ví dụ một HMM topology trong nhận diện tiếng nói.
(Nguôn: nằm trong những slide về ASR của đại học Edinburghg [3])
Loại mô hình này được ứng dụng nhiêu trong nhận diện tiêng nói, mô hình sẽ bao gôm các
tham sô ân là âm vị và các tham sô quan sát được là các đặc trưng có được băng phương
pháp MECC Trong mô hình này có hai loại xác suất ta phải biết đó là TP và EP
e TP: xác suất dé chuyền từ trạng thái ân này sang trang thái an tiếp theo
e EP: xác suât của tham sô quan sát được đôi với moi tham sô ân.
24
Trang 39_ nme
11111
Observable
a =
Hình 2 25: mô hình HMM (Nguôn: “Speech Recognition — GMM, HMM, Jonathan
Hui medium website”)
Khi sử dung mô hình HMM, có ba van dé cần giải quyết:
e Likelihood : tính tong xác suất của những observation được tạo ra từ HMM topology
đã biét> sử dụng thuật toán Forward
e Decoding và alignment: khi biết được một chuỗi những observation, có xác định
được những chuỗi có thê là trạng thái ân cần tim > sử dụng thuật toán Viterbi
e Training: khi biết được một chuỗi observation và một HMM, tiến hành hoc xác suất
state occupation dé tìm ra tham số (TP va EP) tốt nhất cho HMM > sử dụng thuật
toán Forward-Backward (FB) và thuật toán Expectation-Maximization (EM).
2.4.1 Likelihood:
Thuật toán forward là thuật toán được dùng để tính tổng xác suất của những tham số quansát được khi đã biết HMM topology Với X là các observation, S là các state:
p(X)=>_p(X,S) =D) P(X S)p(S) 6)
Hình 2 26: công thức của thuật toán forward (Nguồn: “Speech Recognition —
GMM, HMM, Jonathan Hui medium website”)
25
Trang 40Nhung chúng ta không làm theo công thức như trên vì số chuỗi trạng thái có thé có tương
ứng với các observation là rất nhiều Độ phức tạp của nó sẽ gia tăng theo hàm mũ O(2TNT)
với N là sô lượng trạng thái của HMM, chiêu dài của chuỗi observation.
Ta sẽ áp dụng cách tính toán đệ quy dé chia vấn đề thành các bước nhỏ Trong HMM, kếtquả có được tại thời điểm t sẽ dựa vào kết quả tại thời điểm t-1 hoặc t+1 Mỗi vòng tròn bên
dưới đại diện cho một tham sô ân j tai thời điêm t, sô lượng rat nhiêu.
A time sequence of states © ® © © © ® © C)
C<A O JO 2 CÀ O
or
Hình 2 27: tham sé ẩn j tại thời điểm t (Nguôn: “Speech Recognition — GMM,
HMM, Jonathan Hui medium website”)
OOO OO
Thuật toán forward trai qua 3 bước:
e Khởitạo:
o_ Biến xác suất forward œ¡() đầu tiên được tính băng xác suất khởi tại của tham
số an 7¡ nhân với phân tử dòng 1 cột 1 của ma trận EP
a, (i) = 7, -b,(O,)
(7)
26