Tải bản đầy đủ (.pdf) (76 trang)

Xây dựng giao tiếp tiếng nói với phần mềm kế toán và quản trị doanh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.98 MB, 76 trang )

MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT ..........................................................................3
DANH MỤC BẢNG ..................................................................................................4
DANH MỤC HÌNH ...................................................................................................5
MỞ ĐẦU ....................................................................................................................6
CHƢƠNG 1 TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI ...............................8
1.1. Lịch sử phát triển .............................................................................................8
1.2. Cấu trúc ngôn ngữ............................................................................................9
1.3. Quá trình nhận dạng ngôn ngữ ......................................................................10
1.4. Các mô hình trong nhận dạng tiếng nói .........................................................11
1.5. Mô hình Markov ẩn .......................................................................................11
1.5.1. Mô hình Markov .....................................................................................11
1.5.2. Mô hình Markov ẩn.................................................................................13
CHƢƠNG 2 GIẢI PHÁP TÍCH HỢP NHẬN DẠNG TIẾNG NÓI VÀO PHẦN
MỀM KẾ TOÁN VÀ QUẢN TRỊ DOANH NGHIỆP FAB – EIS .....................14
2.1. Giới thiệu phần mềm kế toán và quản trị doanh nghiệp FAB - EIS..............14
2.1.1. Hệ thống chức năng ................................................................................16
2.1.2. Kiến trúc hệ thống ...................................................................................20
2.1.3. Các công nghệ sử dụng trong quá trình xây dựng hệ thống FAB – EIS.22
2.1.4. Công cụ ...................................................................................................28
2.2. Giải pháp tích hợp nhận dạng tiếng nói vào phần mềm kế toán và quản trị
doanh nghiệp FAB – EIS ......................................................................................29
2.2.1. Xây dựng giao tiếp tiếng nói như một chương trình độc lập ..................29
2.2.2. Xây dựng giao tiếp tiếng nói như một module thuộc phần mềm kế toán
và quản trị doanh nghiệp ...................................................................................33
2.2.3. Đánh giá và lựa chọn giải pháp ...............................................................33
CHƢƠNG 3 BỘ CÔNG CỤ SPHINX ...................................................................35
3.1. Giới thiệu .......................................................................................................35
3.2. FrontEnd ........................................................................................................36
3.3. Linguist ..........................................................................................................37
3.3.1. Mô hình nguôn ngữ - LanguageModel ...................................................37



1


3.3.2. Từ điển - Dictionary ................................................................................37
3.3.3. Mô hình âm học AcousticModel .............................................................38
3.3.4. Đồ thị tìm kiếm .......................................................................................38
3.3.5. Cài đặt .....................................................................................................38
3.4. Decoder ..........................................................................................................39
CHƢƠNG 4 TÍCH HỢP NHẬN DẠNG TIẾNG NÓI VÀO PHẦN MỀM KẾ
TOÁN VÀ QUẢN TRỊ DOANH NGHIỆP FAB - EIS ........................................40
4.1. Xác định phạm vi nhận dạng .........................................................................40
4.2. Xây dựng mô hình ngôn ngữ .........................................................................41
4.2.1 Xây dựng mô hình ngữ pháp ....................................................................41
4.2.2 Xây dựng mô hình ngôn ngữ thống kê sử dụng bộ công cụ CMU ..........42
4.3. Xây dựng từ điển âm học ...............................................................................46
4.4. Ghi âm file mẫu .............................................................................................48
4.4.1. Môi trường ghi âm ..................................................................................48
4.4.2. Thành phần ghi âm ..................................................................................50
4.4.3. Phương pháp ghi âm ...............................................................................50
4.4.4. Kết quả ghi âm ........................................................................................51
4.4.5. Cắt file ghi âm thành ...............................................................................52
4.5. Huấn luyện mô hình âm học ..........................................................................54
4.6. Tích hợp nhận dạng tiếng nói vào phần mềm................................................66
4.7. Kết quả nhận dạng .........................................................................................73
KẾT LUẬN ..............................................................................................................75
DANH MỤC TÀI LIỆU THAM KHẢO ...............................................................76

2



DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt
API
CMU
CNTT
ERP
EJB
FAB – EIS
HMM
JPA
JEAP
JAAS
PAM
IDE
JSGF
CMMS
DARPA
CCDC
JEAP
JNLP
DLL
DCT
LPC
CFG
FST
FSG

Ý nghĩa
Application Programming Interface – Giao diện lập trình ứng

dụng
Carnegie Mellon University – Đại học Carnegie Mellon – Hoa
Kỳ
Công nghệ thông tin
Enterprise Resource Planning – Lập kế hoạch tài nguyên
doanh nghiệp
Enterprise Java Bean – Đối tượng Java cho các ứng dụng
doanh nghiệp
FAB – Enterprise Information System – Hệ thống thông tin
doanh nghiệp FAB
Hidden Markov Model – Mô hình Markov ẩn
Java Persistence API – Giao diện lập trình ứng dụng lưu trữ
Java
JBoss Enterprise Application Platform – Nền tảng ứng dụng
doanh nghiệp JBOSS
Java Authentication and Authorization Service – Dịch vụ
chứng thực JAVA
Pluggable Authentication Module
Integrated Development Environment – Môi trường phát triển
tích hợp
JSpeech Grammar Format – Định dạng ngữ pháp JSpeech
Computerized Maintenance Management System – Hệ thống
quản lý bảo trì sử dụng máy tính
Defense Advanced Research Projects Agency - Cơ quan
nghiên cứu dự án quốc phòng tiên tiến của Mỹ
Công cụ dụng cụ
JBoss Enterprise Application Platform – Nền tảng ứng dụng
doanh nghiệp Jboss
The Java Network Launch Protocol – Giao thức thực thi ứng
dụng Java qua mạng.

Dynamic – Link Library – Thư viện liên kết động
Discrete Cosine Transform – Biến đổi cosin rời rạc
Linear Predictive Coding – Mã hóa tuyến tính
Context-free grammar – Ngữ pháp phi ngữ cảnh
Finite State Transducer – Máy hữu hạn trạng thái
Finite State Grammar – Ngữ pháp hữu hạn trạng thái

3


DANH MỤC BẢNG
Bảng 1 Các Mô hình Markov ....................................................................................12
Bảng 2 Danh mục module FAB - EIS.......................................................................16
Bảng 3 Danh sách từ vựng nhận dạng.......................................................................40
Bảng 4 Mô hình ngôn ngữ định dạng JSGF ..............................................................41
Bảng 5 Mô hình ngôn ngữ sử dụng CMU Toolkit ....................................................43
Bảng 6 Nội dung file từ vựng....................................................................................43
Bảng 7 Tập lệnh xây dựng mô hình ngôn ngữ DMP ................................................45
Bảng 8 Mô phỏng từ điển âm học .............................................................................46
Bảng 9 Mô phỏng từ điển âm học đơn giản ..............................................................47
Bảng 10 Từ điển âm học sử dụng trong chương trình ..............................................47
Bảng 11 Danh sách thành viên ghi âm ......................................................................50
Bảng 12 Kết quả ghi âm ............................................................................................52
Bảng 13 File Phoneset ...............................................................................................55
Bảng 14 File tạp âm ..................................................................................................56
Bảng 15 Tham số định dạng file ghi âm ...................................................................58
Bảng 16 Tham số cấu hình file .................................................................................58
Bảng 17 Tham số kiểu mô hình và tham số mô hình ................................................58
Bảng 18 Tham số đặc trưng âm thanh ......................................................................59
Bảng 19 Tham số quá trình huấn luyện ....................................................................59

Bảng 20 Tham số giải mã..........................................................................................59
Bảng 21 Nội dung file clear.bat ................................................................................61
Bảng 22 File gen_predata.bat ....................................................................................64
Bảng 23 File train.bat ................................................................................................65
Bảng 24 Cấu hình ngôn ngữ......................................................................................67
Bảng 25 Cấu hình từ điển..........................................................................................67
Bảng 26 Cấu hình mô hình âm học ...........................................................................67
Bảng 27 Mã nguồn menu kích hoạt nhận dạng tiếng nói..........................................69
Bảng 28 Mã nguồn nhận dạng tiếng nói ...................................................................71
Bảng 29 Kết quả nhận dạng ......................................................................................73

4


DANH MỤC HÌNH
Hình 1 Biểu diễn sóng của từ "tài sản" .......................................................................9
Hình 2 Mô hình nhận dạng tiếng nói ........................................................................10
Hình 3 Mô hình Markov ẩn .......................................................................................13
Hình 4 Hệ thống chức năng của FAB – EIS .............................................................15
Hình 5 Giao diện chính FAB - EIS ...........................................................................16
Hình 6 Kiến trúc thiết kế ...........................................................................................21
Hình 7 Kiến trúc cài đặt FAB - EIS ..........................................................................22
Hình 8 Kiến trúc EJB ................................................................................................23
Hình 9 Kiến trúc J2EE ..............................................................................................24
Hình 10 Kiến trúc JPA ..............................................................................................25
Hình 11 Kiến trúc Jboss Server .................................................................................26
Hình 12 Mẫu báo cáo Jasper Report .........................................................................27
Hình 13 Quá trình cài đặt FAB - EIS sử dụng Java Web Start .................................28
Hình 14 Eclispe & Kiến trúc code FAB - EIS ..........................................................29
Hình 15 Sơ đồ khối sử dụng kỹ thuật Hook xây dựng chương trình nhận dạng tiếng

nói ..............................................................................................................................33
Hình 16 Sơ đồ kiến trúc Sphinx 4 .............................................................................35
Hình 17 FrontEnd ......................................................................................................36
Hình 18 Đồ thị tìm kiếm GraphSearch .....................................................................38
Hình 19 Thiết bị ghi âm Philips ................................................................................48
Hình 20 Cấu hình card âm thanh...............................................................................49
Hình 21Giao diện phần mềm ghi âm ........................................................................49
Hình 22 Cấu hình file ghi âm ....................................................................................51
Hình 23 Kết quả ghi âm Cool Edit Pro .....................................................................51
Hình 24 Dạng sóng của từ "Hóa Đơn" ......................................................................53
Hình 25 Nội dung thu được sau khi cắt file wav ......................................................53
Hình 26 Cấu trúc thư mục sau khi cắt 30 file sau ghi âm của một thành viên .........54
Hình 27 Nội dung file Users.txt ................................................................................57
Hình 28 Nội dung file TestUsers.txt .........................................................................57
Hình 29 Huấn luyện ..................................................................................................60
Hình 30 Kết quả huấn luyện......................................................................................60
Hình 31 Sơ đồ khối clear.bat .....................................................................................61
Hình 32 Sơ đồ khối gen_predata.bat .........................................................................63
Hình 33 Sơ đồi khối train.bat ....................................................................................65
Hình 34 Sơ đồ khối đăng ký menu xử lý tiếng nói ...................................................68
Hình 35 Sơ đồ khối cài đặt nhận dạng tiếng nói .......................................................70
Hình 36 Giao diện nhận dạng tiếng nói ....................................................................72
Hình 37 Giao diện hồ sơ nhân sự ..............................................................................73

5


MỞ ĐẦU
Với những bước tiến dài trong những thập kỷ qua, CNTT với biểu tượng máy
vi tính đã trở thành một công cụ thiết yếu trong đời sống hiện đại, phục vụ nhu cầu

quan trọng như học tập, làm việc, giải trí… Bên cạnh những nghiên cứu không
ngừng để đưa ra những sản phẩm nhanh, mạnh hơn, các nhà sản xuất( phần cứng và
phần mềm) cũng cố gắng đưa các sản phẩm CNTT trở nên gần gũi hơn với con
người.
Xử lý tiếng nói là một trong những xu hướng được lựa chọn để mang đến cho
các sản phẩm CNTT có khả năng giao tiếp từ đơn giản đến phức tạp, làm phong phú
thêm khả năng “hiểu” giữa người – máy. Trải qua nhiều thập niên phát triển, xử lý
tiếng nói đã có những thành quả quan trọng, được ứng dụng trong nhiều sản phẩm
CNTT nổi tiếng trên các sản phẩm như ngôi nhà thông minh (Smart House), điều
khiển ô tô, các sản phẩm điện thoại của Google, Sam Sung, trợ lý ảo Siri của
Apple… Các sản phẩm đã rất thành công khi mang lại sự trải nghiệm mới mẻ cho
người sử dụng.
ERP (Enterprise Resource Planning) đã trở thành một khái niệm gần gũi đối
với các doanh nghiệp Việt Nam. Đây là một hoặc tập các phần mềm rất hữu dụng
trong quá trình quản lý mọi hoạt động doanh nghiệp từ công tác nhân sự, kinh
doanh, tài chính, sản xuất tới quá trình mua bán hàng… Sử dụng và khai thác hiệu
quả những tiện ích từ phần mềm ERP, mang đến cho doanh nghiệp những lợi ích
không nhỏ trong môi trường cạnh tranh toàn cầu hiện nay. ERP trở thành một phần
không thể thiếu của doanh nghiệp, đặc biệt là các doanh nghiệp lớn, có tầm vóc
quốc gia, quốc tế. Các sản phẩm ERP nổi tiếng đều do các tập đoàn lớn cung cấp
như IBM, Oracle, Microsoft…
Trong phạm vi luận văn này, tôi cố gắng kết hợp hai yếu tố: xử lý tiếng nói và
phần mềm quản trị doanh nghiệp nhằm mang lại những phương thức mới trong giao
tiếp giữa con người và máy tính, giúp máy tính chủ động hơn trong giao tiếp, có thể
nghe – hiểu những ngôn từ đơn giản từ người dùng thay vì phương pháp truyền
thống trước đây: chuột và bàn phím…
Nội dung luận văn gồm 5 phần:
-

Chương 1 Tổng quan về nhận dạng tiếng nói

Chương 2 Giải pháp tích hợp nhận dạng tiếng nói vào phần mềm kế toán
và quản trị doanh nghiệp FAB - EIS
Chương 3 Bộ công cụ Sphinx
Chương 4 Tích hợp nhận dạng tiếng nói
Chương 5 Tổng kết

6


Tôi xin gửi lời cảm ơn Viện Công nghệ thông tin và Truyền thông, Đại học
Bách khoa Hà Nội, nơi đã tạo điều kiện học tập và nghiên cứu; đặc biệt tôi xin gửi
lời cảm ơn chân thành tới Tiến sĩ Nguyễn Hồng Quang, người đã trực tiếp hướng
dẫn tôi trong quá trình hoàn thành luận văn này.
Dù có nhiều cố gắng, nhưng chắc chắn vẫn còn những sai sót, hoặc những
định hướng phát triển mới trong tương lai cho đề tài mà tôi chưa nhận ra, tôi rất
mong sự góp ý chân thành từ hội đồng và những nhà quan tâm tới đề tài.
Tôi xin chân thành cảm ơn!

7


CHƢƠNG 1
TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI
1.1. Lịch sử phát triển
Các nghiên cứu nhận dạng tiếng nói được bắt đầu từ thập niên 40 của thế kỉ
19, với sự khởi nguồn của Bell Laboratories. Năm 1952, họ đã cho ra đời hệ thống
Audrey có khả năng nhận dạng chữ số từ một nguồn đơn. Năm 1962, IBM cho ra
đời máy Shoebox có khả năng nhận dạng 16 từ trong tiếng Anh. Trong giai đoạn
này, các nhà nghiên cứu của Mỹ, Nhật, Anh, Liên Xô cũng cho ra đời các sản phẩm
có khả năng nhận dạng 4 nguyên âm và 16 phụ âm. Đây là một kết quả ấn tượng, dù

không thể so sánh với ngày nay, khi máy tính hiện đại mạnh hơn rất nhiều ngay cả
khi so sánh với các siêu máy tính thập niên 50, 60. Thành công bước đầu này đã tạo
một nền tảng cho sự phát triển của công nghệ nhận dạng tiếng nói.
Những năm 70, chương trình SUR (DARPA Speech Understanding Research)
dưới sự tài trợ của bộ quốc phòng Mỹ đã tạo nên thành công với hệ thống nhận
dạng tiếng nói Harpy của Đại học Carnegie Mellon, khi có khả năng nhận dạng tới
1011 từ - tương đương tập từ vựng của đứa trẻ ba tuổi. Harpy đã gây ấn tượng mạnh
khi đưa ra một phương pháp tìm kiếm mới beam search, tìm kiếm kết quả phù hợp
trong một mạng các trạng hữu hạn.
Trong thập niên tiếp theo, những năm 80, nhận dạng tiếng nói bước sang một
hướng tiếp cận mới giúp tập từ vựng nhận dạng có thể lên đến hàng nghìn từ, thậm
chí có khả năng nhận dạng không giới hạn dựa trên thống kê, mà nổi bật nhất là mô
hình Markov ẩn. Trong giai đoạn này, nhận dạng tiếng nói cũng bắt đầu được đưa
vào các ứng dụng thương mại. Dù có thể nhận dạng tới hàng nghìn từ, nhưng thời
kỳ này nhận dạng tiếng nói vẫn có một hạn chế lớn khi không thể nhận dạng các từ
một cách liên tục, tồn tại sự gián đoạn giữa hai lần nhận dạng khác nhau.
Những năm 90, hệ thống nhận dạng tiếng nói tiếp tục được mở rộng để có khả
năng nhận dạng những tập từ vựng lớn. Giai đoạn này chứng kiến sự ra đời của ứng
dụng Dragon Dictate, được cải tiến sau đó 7 năm – Dragon NaturallySpeaking cho
phép nhận dạng tiếng nói liên tục khoảng 100 từ mỗi phút. Chương trình mất
khoảng 45 phút để huấn luyện.
Những năm 2000, nhận dạng tiếng nói đã có thể đạt đến độ chính xác 80%,
đến cuối thập niên này, độ chính xác dường như đã đạt đến giới hạn. Khả năng nhận
dạng tiếng nói được trang bị trên nhiều phần mềm khác nhau như các phiên bản của
hệ điều hành Windows, Mac OS, Linux… và được đưa lên cả các thiết bị di động.
Các sản phẩm nổi tiếng nhận dạng tiếng nói hiện nay như Siri, Google’s Voice
Search đã và đang đem đến những trải nghiệm mới trong giao tiếp người – máy.

8



Sự bùng nổ các ứng dụng liên quan là dấu hiệu cho thấy sự khả quan trong
ứng dụng nhận dạng tiếng nói, các ứng dụng không chỉ đơn giản như điều khiển
máy tính, chuyển tín hiệu âm thanh thành văn bản, mà còn hỗ trợ đa ngôn ngữ, đa
thiết bị, thậm chí làm việc ngay cả trong môi trường có nhiều tiếng ồn…
1.2. Cấu trúc ngôn ngữ[1]
Tiếng nói là một hiện tượng vật lý phức tạp, chúng ta thường có ít có nhận biết
đúng về cách thức chúng được sinh ra và được tiếp nhận. Các quan điểm truyền
thống thường cho rằng tiếng nói là tổ hợp của các từ, mỗi từ lại gồm nhiều âm tiết.
Thực nghiệm lại cho thấy kết quả khác, tiếng nói là một quá trình động không phân
biệt các phần với nhau một cách rõ ràng. Ví dụ biểu diễn dưới dạng sóng của từ “tài
sản”:

Hình 1 Biểu diễn sóng của từ "tài sản"
Một cách đơn giản tiếng nói gồm nhiều câu nói. Các câu nói được xây dựng từ
nhiều từ, các từ được cấu tạo từ nhiều âm tiết. Mỗi tâm tiết lại được tổ hợp từ các
âm cơ bản.
Trong ứng dụng thực tế, tiếng nói được xem xét dưới góc độ một dòng âm
thanh liên tục, ở đó các trạng thái ổn định và các trạng thái động hòa trộn vào nhau,
không phân tách một cách rõ ràng. Trong chuỗi các trạng thái đó, chúng ta có thể
phân định ra một hoặc nhiều tập trạng thái tương tự nhau gọi là âm (phone). Từ
(word) được xây dựng từ âm, điều này không hoàn toàn đúng. Các đặc điểm âm học
đặc trưng cho dạng sóng của âm rất khác nhau phụ thuộc vào nhiều yếu tố như ngữ
cảnh, người nói, văn phong… Điều này làm cho biểu diễn âm dưới dạng sóng biến
đổi đa dạng.
Sự biến đổi trạng thái giữa hai từ khác nhau mang nhiều thông tin hơn các
thành phần trạng thái ổn định, phần chuyển giữa hai âm liên tiếp được gọi là
diphone. Đôi khi, người ta cũng nhắc đến các trạng thái con của một âm, thường có
9



ba hoặc nhiều phần của âm có thể được xác định một các dễ dàng. Phần đầu của âm
phụ thuộc vào âm trước đó, phần giữa tương đối ổn định, và phần cuối phụ thuộc
vào âm tiếp theo. Đó là lý do tại sao mô hình Markov ẩn thường có ba trạng thái
cho một âm.
Các âm kết hợp với nhau tạo thành âm tiết. Âm tiết tương đối ổn định, ít phụ
thuộc vào ngữ cảnh. Khi tiếng nói được sinh ra nhanh hay chậm, âm thay đổi nhưng
âm tiết vẫn như cũ.
Tổ hợp các âm tiết tạo thành từ (word). Đây là một thành phần quan trọng
trong quá trình nhận dạng tiếng nói, giới hạn khả năng kết hợp giữa các âm. Nếu
chúng ta có 40 âm, trung bình một từ có 7 âm, như thế chúng ta có 407 từ. Nhưng
thực tế, mỗi người chỉ dùng khoảng 20 từ trong cuộc đời, chính điều này làm cho
việc nhận dạng trở nên thực tế hơn.
1.3. Quá trình nhận dạng ngôn ngữ
Phương pháp nhận dạng tiếng nói thông thường bắt đầu từ việc cố gắng xây
dựng một hệ cơ sở dữ liệu tiếng nói, trong đó lưu trữ những đặc trưng của tiếng nói
phục vụ cho quá trình nhận dạng sau này. Mô hình dưới đây mô tả tổng quan quá
trình nhận dạng tiếng nói:
Tiếng nói

Lưu trữ
Trích chọn đặc trưng

CSDL tiếng nói

Cung cấp dữ
liệu đối sánh
Tiếng nói

Trích chọn đặc trưng


Đối sánh mẫu

Kết quả nhận dạng
Hình 2 Mô hình nhận dạng tiếng nói
Từ mô hình nhận dạng tiếng nói, ta có thể rút ra ba yếu tố tác động tới quá
trình nhận dạng như sau:

10


-

-

-

Đặc trưng: để tìm được đặc trưng của tiếng nói cần phải sử dụng tương đối
lớn các tham số. Số lượng tham số được sử dụng có thể được tính toán từ
tiếng nói bằng cách chia tín hiệu tiếng nói thành các frame, mỗi frame có độ
dài khoảng 10 mili giây, với mỗi frame ta sử dụng 30 tham số để biểu diễn.
Tập các tham số biểu diễn này tạo nên vector đặc trưng của tiếng nói. Có
nhiều cách thức để tính toán giá trị các tham số này, nhưng thông thường
được trích rút từ dạng phổ của âm thanh.
Mô hình là một khái niệm nữa cần dùng trong nhận dạng ngôn ngữ, đây là
biểu diễn toán học của tiếng nói, hàm chứa các đặc trưng phổ biến của ngôn
ngữ nói. Trong thực tế mô hình âm học – senone ba trạng thái được ứng
dụng nhiều nhất bởi tính đơn giản và hiệu quả.
Đối sánh mẫu: là quá trình tìm kiếm mẫu phù hợp nhất trong cơ sỡ dữ liệu
tiếng nói. Quá trình này có thể chiếm rất nhiều thời gian, do đó tối ưu quá

trình tìm kiếm là giúp tăng khả năng đáp ứng của chương trình nhận dạng
tiếng nói.

1.4. Các mô hình trong nhận dạng tiếng nói
Có ba mô hình được sử dụng trong nhận dạng tiếng nói:
-

Mô hình âm học hàm chứa các đặc tính âm học của âm. Đây là mô hình độc
lập ngữ cảnh.
Từ điển âm: là ánh xạ từ (word) thành các âm (phone).
Mô hình ngôn ngữ: được sử dụng để giới hạn các từ tìm kiếm. Mô hình ngôn
ngữ ràng buộc các từ với nhau ví dụ như sự kết hợp, thứ tự xuất hiện… Việc
làm này giúp đẩy nhanh quá trình đối sánh mẫu bằng việc loại bỏ các kết quả
không thể xuất hiện. Các mô hình ngôn ngữ thông dụng thường sử dụng mô
hình n-gram được sinh ra từ việc thống kê các câu của ngôn ngữ nhằm xây
dựng mô hình ngôn ngữ hữu hạn. Nói cách khác, mô hình ngôn ngữ định
nghĩa thứ tự các từ dựa trên máy hữu hạn trạng thái có đánh trọng số.

Ba mô hình trên kết hợp đồng thời với nhau trông một máy (chương trình)
nhận dạng tiếng nói.
1.5. Mô hình Markov ẩn
1.5.1. Mô hình Markov[9]
Mô hình Markov là một mô hình thống kê xác suất có các thuộc tính Markov,
trong đó các trạng thái phụ thuộc vào các trạng thái trước đó một cách không xác
định. Một tiến trình thống kê xác suất có thuộc tính Markov nếu phân phối xác suất
có điều kiện của các trạng thái tương lai chỉ phụ thuộc vào trạng thái hiện tại; nói
cách khác các trạng thái tương lai chỉ phụ thuộc vào trạng thái hiện tại. Các giả thiết
này giúp mô hình có khả năng suy diễn và tính toán được.

11



Các mô hình Markov và các quan hệ của chúng được thể diện trong bản dưới
đây:
Bảng 1 Các Mô hình Markov

Hệ thống tự hành
Hệ thống được điều khiển

Trạng thái hệ thống có
thể quan sát đƣợc đầy
đủ
Chuỗi Markov
Tiến trình quyết định
Markove

Trạng thái hệ thống chỉ
có thể quan sát đƣợc
một phần
Mô hình Markov ẩn
Tiến trình quyết định
Markov hiện từng phần

Chuỗi Markov là mô hình Markov đơn giản nhất. Trong mô hình này, trạng
thái của hệ thống được mô hình hóa bằng cách sử dụng một biến ngẫu nhiên thay
đổi theo thời gian. Do đặc điểm của thuộc tính Markov, phân phối cho biến này chỉ
phụ thuộc vào trạng thái trước đó. Một ví dụ của chỗi Markov là chuỗi Markov
Monte Carlo.
Mô hình Markov ẩn là một chuỗi Markov mà trạng thái chỉ có thể quan sát
được một phần. Nói cách khác, khả năng quan sát được có liên quan đến trạng thái

hệ thống, nhưng không hữu hiệu trong việc xác định chính xác trạng thái hệ thống.
Tồn tại một số giải thuật cho mô hình Markov ẩn như:
-

Giải thuật Viterbi,
Giải thuật Forward,
Giải thuật Baum-Welch.

Ứng dụng phổ biến nhất của mô hình Markov ẩn là nhận dạng tiếng nói ở đó
dữ liệu âm thanh là quan sát được và văn bản được nói là không quan sát được, ta
có thể sử dụng các giải thuật nêu trên để tìm ra các từ được nói trong dữ liệu âm
thanh.
Tiến trình quyết định Markov là một chuỗi Markov trong đó sự chuyển dịch
trạng thái phụ thuộc vào trạng thái trước đó và một vector hành vi (được xây dựng
cho hệ thống). Tiến trình này thường được sử dụng trong vệc tính toán chính sách
phản ứng của hệ thống nhằm hướng đến một mục tiêu kỳ vọng.
Tiến trình quyết định Markov chỉ quan sát được một phần là một tiến trình quyết
định Markov ở đó trạng thái hệ thống chỉ có thể được quan sát từng phần. Đây là
một vấn đề NP đầy đủ, tuy nhiên các giải thuật xác suất có thể hữu dụng trong nhiều
lĩnh vực cụ thể như trong việc điều khiển một agent hoặc robot đơn giản.

12


1.5.2. Mô hình Markov ẩn
Mô hình Markov ẩn (Hidden Markov Model - HMM) là một mô hình thống kê
trong đó hệ thống được mô hình hóa được cho là một quá trình Markov với các
tham số không biết trước và nhiệm vụ là xác định 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 có thể sử dụng để thực
hiện các phân tích tiếp theo, 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. 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 3 Mô hình Markov ẩn
Chính nhờ các đặc tính đó, mô hình Markov ẩn được sử dụng hiệu quả cho quá
trình nhận dạng tiếng nói.

13


CHƢƠNG 2
GIẢI PHÁP TÍCH HỢP NHẬN DẠNG TIẾNG NÓI VÀO
PHẦN MỀM KẾ TOÁN VÀ QUẢN TRỊ DOANH NGHIỆP
FAB – EIS
2.1. Giới thiệu phần mềm kế toán và quản trị doanh nghiệp FAB - EIS
Phần mềm quản trị doanh nghiệp là một hoặc một bộ các sản phẩm phần mềm
giúp lưu trữ, xử lý, phân tích các thông tin trong quá trình hoạt động của một doanh
nghiệp hoạt động trong nền kinh tế, qua đó hỗ trợ hệ thống hóa và khai thác hiệu
quả các nguồn tài nguyên của doanh nghiệp từ con người, tài sản tới hoạt động sản
xuất kinh doanh… Thông thường các chức năng của phần mềm quản trị doanh
nghiệp thường như sau:











Quản lý Khách hàng và đơn đặt hàng (Customer and Order Management).
Quản lý Mua sắm (Purchasing Control).
Lập Kế hoạch sản xuất (Production Schedule).
Lập và quản lý danh mục thành phẩm, bán thành phẩm (Ingredient List)
Quản lý Kho (Inventory Management).
Giao tiếp với hệ thống bảo trì, bảo hành (Interface with CMMS system)
Báo cáo và Phân tích (Reporting and Analysis)
Tích hợp với hệ thống Kế toán (Integration with Accounting System)
Quản lý tiền lương (Payroll)

 Quản lý Nhân sự (Human Resources)
Hiện nay trên thế giới có nhiều phần mềm ERP khách nhau, do nhiều hãng
cung cấp mà nổi tiếng nhất là của Oracle, IBM, Microsoft…
Tại Việt Nam, phần mềm quản trị doanh nghiệp được ứng dụng ngày càng
nhiều đặc biệt tại các doanh nghiệp lớn như doanh nghiệp viễn thông, điện lực, dầu
khí, ngân hàng, các doanh nghiệp có vốn đầu tư nước ngoài, … Thị trường cho
phần mềm quản trị doanh nghiệp đang có sự cạnh tranh mạnh giữa các doanh
nghiệp trong và ngoài nước, đặc biệt sắp tới khi Việt Nam ký hiệp định thương mại
Châu Á – Thái Bình Dương, sẽ dẫn đến việc phát triển của các doanh nghiệp Mỹ,
vốn đã áp dụng rất tốt các sản phẩm quản trị doanh nghiệp tại bản địa.
Phần mềm kế toán và quản trị doanh nghiệp FAB – EIS là sản phẩm của công
ty cổ phần và dịch vụ quản lý FAB. Hệ thống cung cấp đã cung cấp cho doanh
nghiệp những một công cụ hữu hiệu trong quản trị và khai thác tối ưu các nguồn tài
nguyên, từ đó nâng cao năng lực cạnh tranh cho doanh nghiệp. Hình dưới đây là mô
hình hệ thống chức năng được cung cấp bởi FAB – EIS:


14


Hình 4 Hệ thống chức năng của FAB – EIS[14]
FAB – EIS có một lợi thế lớn so với các sản phẩm cùng loại khác khi tập trung
chủ yếu vào các yêu cầu nghiệp vụ của kế toán Việt Nam cũng như đặc thù của các
doanh nghiệp và người sử dụng Việt Nam.
Hệ thống có tính linh động cao, độc lập nền tảng, có thể triển khai trên nhiều
nền tảng hệ điều hành khác nhau như Windows, Linux…, đặc biệt với sự hỗ trợ của
công nghệ EJB và JPA, FAB – EIS đã vượt qua rào cản các hệ quản trị CSDL khác
nhau, do đó, FAB – EIS có thể triển khai trên các hệ QT CSDL khác nhau như
Microsoft SQL, Oracle, My SQL…
Trải qua quá trình sử dụng FAB – EIS được khách hàng đánh giá cao nhờ tính
dễ sử dụng, hỗ trợ mạnh mẽ luật và quy trình kế toán Việt Nam.

15


2.1.1. Hệ thống chức năng
FAB – EIS cung cấp một tập các module hỗ trợ quá trình quản trị doanh nghiệp.
Thiết kế module liên kết yếu mang đến cho hệ thống khả năng tùy biến cao, có thể hoạt
động độc lập với một số module thiết yếu, cũng có thể là sự kết hợp giữa nhiều module
khác nhau phục vụ những nghiệp vụ khác nhau trong doanh nghiệp. Hình dưới đây là
giao diện chính của chương trình khi hoạt động với đầy đủ chức năng.

Hình 5 Giao diện chính FAB - EIS
Các module chính của FAB – EIS:
Bảng 2 Danh mục module FAB - EIS
STT
1.


2.

Chức năng

Tên module
Hóa đơn

-

Hỗ trợ quản lý hóa đơn mua bán hàng,
Quản lý hóa đơn đơn nhập – xuất
Kê khai hủy, kê khai mất hóa đơn…

-

Quản lý quá trình mua hàng từ lập đơn hàng,
đến theo dõi quá trình nhập hàng, hàng mua
trả lại…
Quản lý công nợ nhà cung cấp, quá trình thanh
toán…

Mua hàng
-

16


-


Quản lý nghiệp vụ bán hàng của doanh nghiệp
như lập đơn hàng, quản lý quá trình giao nhận
hàng, hàng mua trả lại…

3.

Bán hàng

-

Hỗ trợ quản lý bán buôn, bán lẻ
Hỗ trợ lập và quản lý các chương trình khuyến
mại…

-

Theo dõi công nợ khách hàng, quá trình thanh
toán công nợ của khách hàng

4.

-

Quản lý quá trình nhập xuất vật tư sử dụng
trong sản xuất, cũng như trong quản lý doanh
nghiệp hàng ngày

-

Hỗ trợ quản lý tồn kho, cảnh báo tồn kho vật tư

giúp doanh nghiệp nhanh chóng thiết lập kế
hoạch nhập/xuất vật tư phù hợp.
Chương trình cũng hỗ trợ mạnh mẽ tính năng
tính giá vật tư cuối kỳ theo tiêu chuẩn kế toán

Vật tư
-

Việt Nam.
-

5.

Tài sản

Hỗ trợ quản lý tài sản cố định của doanh
nghiệp, quá trình sử dụng, phân bổ giá trị theo
tiểu chuẩn kế toán Việt Nam
Các nghiệp vụ chính hỗ trợ như:
o Tăng tài sản
o Giảm tài sản
o Khấu hao
o Kiểm kê
o …

17


-


Hỗ trợ quản lý công cụ dụng cụ theo tiêu chuẩn
kế toán Việt Nam, là những tài sản có giá trị
nhỏ, thời gian sử dụng ngắn.

6.

Công cụ dụng cụ

Các nghiệp vụ hỗ trợ chính như:
o Tăng CCDC
o Giảm CCDC
o Phân bổ
o Kiểm kê
o …

7.

8.

9.

Xây lắp

-

Hỗ trợ quá trình lập dự toán công trình
Quản lý tiến độ công trình

-


Quản lý quá trình sản xuất của doanh nghiệp:
o Lập kế hoạch sản xuất
o Dự trù vật tư
o Nhập thành phẩm
o …

-

Quản lý nhân sự của doanh nghiệp

Sản xuất

o
o
o
o

Nhân sự

-

10. Kế toán tổng hợp

Quản lý hồ sơ nhân sự
Chấm công
Quản lý lương/thưởng
Hỗ trợ tính thuế thu nhập, người phụ
thuộc…

Đây là module chính, được sử dụng nhiều nhất

phục vụ các nghiệp vụ kế toán – tài chính của
doanh nghiệp theo luật kế toán Việt Nam. Các
nghiệp vụ được hỗ trợ gồm:
o Lập và quản lý chứng từ
o Thu chi tiền mặt
o Thu chi tiền gửi
o Tổng hợp, kết chuyển tài khoản
o Quản lý kiến trúc tài khoản kế toán
o …

18


-

Đây là module dẫn xuất, sử dụng dữ liệu của
các module khác nhằm cung cấp cho doanh
nghiệp một hệ thống các báo cáo quy chuẩn,
hữu dụng trong quá trình quản lý như:
o Sổ sách tài khoản
o Báo cáo tài chính

11. Báo cáo

o Thuyết minh báo cáo tài chính…
o …
-

Quản lý quá trình khai báo các danh mục sử
dụng trong hệ thống như:

o Khách hàng
o
o
o
o
o

Nhà cung cấp
Phòng ban
Nhân viên
Ngân hàng
Hợp đồng

o Sản phẩm
o Công trình
o Nguồn vốn
o
o
o
o
o

12. Danh mục

-

Tiền tệ
Loại hình
Khoản mục
Từ điển tài sản/vật tư

Đơn vị tính

o Quốc gia
o …
Hệ thống danh danh mục có thể được quản lý
theo nhiều cấp áp dụng cho nhiều đơn vị khác
nhau thuộc doanh nghiệp ví dụ như mô hình
công ty mẹ - công ty con, mô hình tổng công
ty…

19


-

Module quản trị không thuộc nghiệp vụ Quản
trị doanh nghiệp, cung cấp tiện ích bảo mật cho

13. Quản trị

hệ thống thông qua khả năng phân quyền cho
người sử dụng, thêm, xóa, sửa người sử
dụng…

Trong quá trình làm luận văn, bên cạnh việc tích hợp khả năng nhận dạng
tiếng nói, tác giả đã trực tiếp tham gia xây dựng các module:
-

Quản lý danh mục,
Quản lý công cụ dụng cụ,

Quản lý tài sản,
Quản lý sản xuất,
Quản lý nhân sự
Quản lý khuyến mại (thuộc module quản lý bán hàng)

2.1.2. Kiến trúc hệ thống
FAB – EIS sử dụng kiến trúc ba tầng trong thiết kế
-

-

-

Tầng giao diện: đảm trách nhiệm vụ giao tiếp với người sử dụng, hiện thị
thông tin, xử lý bước đầu quá trình nhập thông tin của người sử dụng. Tầng
giao diện ứng với chương trình mà người dùng thao tác trực tiếp tại máy
trạm.
Tầng nghiệp vụ: thực thi các nghiệp vụ của bài toán quản trị doanh nghiệp,
hoàn toàn tách biệt với giao diện người sử dụng, đáp ứng các yêu cầu của
người dùng thông qua tầng giao diện. Tầng nghiệp vụ trong suốt với người
sử dụng.
Tầng lưu trữ: đảm trách quá trình thao tác với cơ sở dữ liệu nhằm truy vấn,
lư trữ, và xử lý thông tin theo từng nghiệp vụ xác định. Tầng lưu trữ giao tiếp
với tầng nghiệp vụ, hoàn toàn trong suốt với tầng giao diện. Nói cách khác
người sử dụng không cần biết tới tầng lưu trữ.

20


Hình 6 Kiến trúc thiết kế

Việc tách biệt làm ba tầng riêng biệt giúp hệ thống dễ dàng được cài đặt riêng
rẽ, các thành viên có thể độc lập làm việc sau khi định nghĩa các giao tiếp chung của
hệ thống. Việc làm này cũng đồng thời tạo ra tính bảo mật, khi người dùng không
trực tiếp thao tác với cơ sở dữ liệu mà thông qua tầng nghiệp vụ trung gian, tại đó ta
có thể thực hiện các thao tác phân quyền hệ thống…
Kiến trúc ba tầng phân tác ba phần riêng biệt khác nhau: giao tiếp, nghiệp vụ,
lưu trữ… giúp hệ thống dễ dàng bảo trì nâng cấp từng phần, tổ chức quản lý chương
trình tốt hơn.
Tương ứng với kiến trúc thiết kế ba tầng, FAB – EIS có kiến trúc cài đặt được
mô phỏng như hình dưới đây:

21


Hình 7 Kiến trúc cài đặt FAB - EIS
Tầng giao tiếp được cài đặt trên máy ảo JVM, cung cấp môi trường cho hoạt
động của chương trình Java.
Tầng nghiệp vụ được cài đặt trên một EJB Container chạy trên Server hỗ trợ
tương ứng. Trong thực tế, FAB – EIS triển khai tầng nghiệp vụ trên Jboss Server hỗ
trợ các phiên bản từ 4.2 trở lên.
Tầng dữ liệu chính là hệ quản trị cơ sở dữ liệu tương ứng được sử dụng bởi
tầng nghiệp vụ. FAB – EIS có thể đáp ứng nhiều hệ quản trị cơ sở dữ liệu khác nhau
nhờ sự hỗ trợ của công nghệ JPA. Thực tế, FAB – EIS được triển khai trên hệ quả
trị cơ sở dữ liệu MS SQL Server( từ phiên bản 2000 trở lên), My SQL.
2.1.3. Các công nghệ sử dụng trong quá trình xây dựng hệ thống FAB – EIS
2.1.3.1. EJB
EJB – Enterprise Java Bean là một hoặc nhiều thực thể Java chỉ thực thi trên
máy chủ hỗ trợ, đây là một trong những công nghệ nền tảng của J2EE (Java
Enterprise Edition). EJB không chỉ kế thừa tính độc lập nền tảng của ngôn ngữ lập
trình Java mà còn theo nghĩa có thể hoạt động trên bất kỳ một Server nào có hỗ trợ.

Hình dưới đây mô phỏng kiến trúc của EJB:

22


Hình 8 Kiến trúc EJB[11]
EJB có thể cung cấp hai loại giao tiếp:
-

Home: trả về phương thức để máy khách thực thi.
Remote: phương thức thực thi trên máy chủ và trả kết quả về cho máy khách

EJB cũng hỗ trợ hai phương thức cài đặt: Home Interface cho các EJB được sử
dụng trên cùng một EJB Container, Remote Interface cho các EJB được truy vấn từ
máy khách cục bộ và phân tán.
Nhờ đó EJB có khả năng phù hợp cao với các ứng dụng phân tán, tổ chức theo
module, giúp chương người lập trình có thể dễ dàng tách tầng nghiệp vụ khỏi tầng
giao diện sử dụng. Qua đó làm việc tổ chức, bảo trì phần mềm trở lên dễ dàng hơn.
Tùy vào mục đích sử dụng, EJB được phân loại thành nhiều lớp khác nhau:
-

-

Session Bean
o Stateful Bean
o Stateless Bean
Message Driven Bean
Entity Bean
o BMP
o CMP


EJB Container là môi trường thực thi EJB, thực hiện các chức năng:
-

Quản lý tài nguyên và vòng đời EJB
Quản lý trạng thái
Quản lý giao dịch
Cung cấp các tính năng bảo mật
23


-

Lưu trữ

EJB Container thực thi trên một máy chủ hỗ trợ nền tảng J2EE cùng nhiều đối
tượng khác nhau. Hình dưới đây mô phỏng một kiến trúc J2EE phổ biến

Hình 9 Kiến trúc J2EE[12]
2.1.3.2. JPA
JPA viết tắt của Java Persistence API, đây là một công nghệ nối tiếng của nền
tảng J2EE, hỗ trợ mạnh mẽ việc ánh xạ giữa cơ sở dữ liệu quan hệ vào một tập các
lớp trong ngôn ngữ lập trình Java. Hình dưới minh họa kiến trúc của JPA

24


Hình 10 Kiến trúc JPA[15]
JPA là một tiện ích vô cùng quan trọng cho người lập trình khi cố gắng tách
biệt giữa người lập trình và cơ sở dữ liệu quan hệ, thay vào đó là thiết kế các thực

thể của bài toán theo mô hình hướng đối tượng. Việc làm này giúp việc thiết kế bài
toán trở nên dễ dàng hơn, khi các đối tượng thiết kế trở nên gần gũi với thực tế nhờ
mô hình hướng đối tượng. JPA cũng cung cấp ngôn ngữ truy vấn hướng đối tượng
thay thế cho ngôn ngữ SQL thông thường.
JPA trải qua nhiều phiên bản khác nhau, đây là một đặc tả chuẩn của Oracle
và được cài đặt bởi nhiều ứng dụng J2EE cụ thể. Phiên bản hiện tại của JPA là 2.0,
được đặc tả vào tháng 12 năm 2009.
Bên cạnh JPA, tồn tại nhiều Framework khác giúp hỗ trợ việc ánh xạ giữa hệ
quản trị cơ sở dữ liệu quan hệ vào các lớp cài đặt, mà nổi tiếng nhất là Hibernate.
Công cụ Hibernate có cả phiên bản hỗ trợ Java và .NET, được sử dụng rộng rãi
trong nhiều hệ thống khác nhau.
2.1.3.3. JBoss Server
JBoss Enterprise Application Platform (JEAP) là một ứng dụng server miễn
phí, mã nguồn mở hỗ trợ quá trình triển khai, cài đặt và thực thi các ứng dụng Java
phía server.
Hình dưới mô phỏng đầy đủ các thành phần của Jboss Application Server
phiên bản 7.0
25


×