1. Trang chủ
  2. » Công Nghệ Thông Tin

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

76 357 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 1,98 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DANH MỤC CÁC TỪ VIẾT TẮT API Application Programming Interface – Giao diện lập trình ứng dụng CMU Carnegie Mellon University – Đại học Carnegie Mellon – Hoa Kỳ CNTT Công nghệ thông tin E

Trang 1

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

Trang 2

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

Trang 3

DANH MỤC CÁC TỪ VIẾT TẮT

API Application Programming Interface – Giao diện lập trình ứng

dụng CMU Carnegie Mellon University – Đại học Carnegie Mellon – Hoa

Kỳ CNTT Công nghệ thông tin

ERP Enterprise Resource Planning – Lập kế hoạch tài nguyên

doanh nghiệp EJB Enterprise Java Bean – Đối tượng Java cho các ứng dụng

doanh nghiệp FAB – EIS FAB – Enterprise Information System – Hệ thống thông tin

doanh nghiệp FAB HMM Hidden Markov Model – Mô hình Markov ẩn

JPA Java Persistence API – Giao diện lập trình ứng dụng lưu trữ

Java JEAP JBoss Enterprise Application Platform – Nền tảng ứng dụng

doanh nghiệp JBOSS JAAS Java Authentication and Authorization Service – Dịch vụ

chứng thực JAVA PAM Pluggable Authentication Module

IDE Integrated Development Environment – Môi trường phát triển

tích hợp JSGF JSpeech Grammar Format – Định dạng ngữ pháp JSpeech CMMS Computerized Maintenance Management System – Hệ thống

quản lý bảo trì sử dụng máy tính DARPA Defense Advanced Research Projects Agency - Cơ quan

nghiên cứu dự án quốc phòng tiên tiến của Mỹ

JEAP JBoss Enterprise Application Platform – Nền tảng ứng dụng

doanh nghiệp Jboss JNLP The Java Network Launch Protocol – Giao thức thực thi ứng

dụng Java qua mạng

DLL Dynamic – Link Library – Thư viện liên kết động

DCT Discrete Cosine Transform – Biến đổi cosin rời rạc

LPC Linear Predictive Coding – Mã hóa tuyến tính

CFG Context-free grammar – Ngữ pháp phi ngữ cảnh

FST Finite State Transducer – Máy hữu hạn trạng thái

FSG Finite State Grammar – Ngữ pháp hữu hạn trạng thái

Trang 4

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

Trang 5

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

Trang 6

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:

Trang 7

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!

Trang 8

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

Trang 9

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ó

Trang 10

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:

Trang 11

- Đặ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

Trang 12

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

Trạng thái hệ thống có thể quan sát đƣợc đầy

đủ

Trạng thái hệ thống chỉ

có thể quan sát đƣợc một phần

Hệ thống được điều khiển Tiến trình quyết định

Markove

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

Trang 13

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

Trang 14

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

Trang 15

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

Trang 16

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

1 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

Trang 17

3 Bán hàng

- 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…

- 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 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

Trang 18

6 Công cụ dụng cụ

- 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

7 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ý nhân sự của doanh nghiệp

o Quản lý hồ sơ nhân sự

o Lập và quản lý chứng từ

Trang 19

11 Báo cáo

- Đâ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

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

Trang 20

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:

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ữ

Trang 21

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:

Trang 22

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:

Trang 23

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:

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

Trang 25

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

Trang 26

Hình 11 Kiến trúc Jboss Server[13]

Jboss server thực thi trên nền tảng JVM, đồng thời lại là môi trường thực thi

Trang 27

ấn và đặc biệt là kết xuất dữ liệu báo cáo thành các nguồn khác nhau như html, PDF, Excel, OpenOffice, và Word

Hình dưới đây thể hiện một báo cáo của chương trình FAB – EIS

Hình 12 Mẫu báo cáo Jasper Report

Trang 28

2.1.3.5 Java Web Start

Java Web Start (Java WS) là một công cụ hỗ được phát triển bởi Sun hỗ trợ quá trình cài đặt và sử dụng phần mềm thông qua nền tảng Web Java Web Start sử dụng giao thức JNLP, sử dụng tiện ích của công nghệ Applet hỗ trợ cài đặt phần mềm trên máy tính từ dữ liệu của một máy chủ hỗ trợ Tất nhiên Java Web Start độc lập nền tảng như nhiều công nghệ xây dựng trên nền tảng Java khá

FAB – EIS sử dụng Java Web Start trong quá trình triển khai ứng dụng trên nhiều máy trạm khác nhau Dữ liệu cài đặt được đặt trên máy chủ JBoss Hình dưới đây mô phỏng quá trình cài đặt FAB – EIS từ một máy chủ JBoss

Hình 13 Quá trình cài đặt FAB - EIS sử dụng Java Web Start

2.1.4 Công cụ

Môi trường phát triển FAB – EIS dựa trên Eclipse là môi trường phát triển tích hợp (IDE) miễn phí hỗ trợ đa dạng các nghiệp vụ phát triển phần mềm, gỡ rồi …

Trang 29

Hình 14 Eclispe & Kiến trúc code FAB - EIS

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

Để tích hợp khả năng nhận dạng tiếng nói cho phần mềm kế toán và quản trị doanh nghiệp, tác giả đã nghiên cứu và đề xuất hai giải pháp:

- Xây dựng giao tiếp tiếng nói như một chương trình độc lập, sử dụng cơ chế Hook để can thiệp vào phần mềm nhằm đáp ứng các lệnh phù hợp với tiếng nói của người sử dụng

- Xây dựng giao tiếp tiếng nói như một module của phần mềm kế toán và quản trị doanh nghiệp FAB – EIS

2.2.1 Xây dựng giao tiếp tiếng nói như một chương trình độc lập

2.2.1.1 Giới thiệu về kỹ thuật Hook

Hook là một kỹ thuật phổ biến trong lập trình, đặc biệt là các ứng dụng cần can thiệp vào quá trình gửi/nhận thông điệp của một chương trình khác Một ví dụ phổ biến của hook là các chương trình gõ tiếng Việt như Unikey,VietKey… Các phần mềm gián điệp, virus cũng thường sử dụng kỹ thuật này để đánh cắp thông tin khi người dùng thao tác với hệ thống

Phụ thuộc vào từng hệ điều hành cụ thể, cơ chế Hook được sử dụng theo nhiều cách khác nhau Dưới đây là giới thiệu cơ chế Hook trên hệ điều hành MS Windows

32 bit

Trang 30

Trong hệ điều hành Windows, các ứng dụng đáp ứng yêu cầu người dùng thông qua việc xử lý các thông điệp nhận được từ hệ điều hành Khi người dùng gõ một phím, hay nhập chuột…, hệ điều hành sẽ sinh ra một sự kiện tương ứng và gửi

sự kiện cùng các dữ liệu cần thiết đến các cửa sổ tương ứng

Windows cung cấp các API cần thiết để ứng dụng thứ ba có thể can thiệp vào quá trình chuyển giao thông điệp giữa hệ điều hành và ứng dụng Dựa trên các API này, ứng dụng thứ ba có thể đọc, ghi, chỉnh sửa thông tin thông điệp theo thiết kế của mình, do đó sẽ thay đổi các đáp ứng sự kiện của ứng dụng gốc Kỹ thuật này được áp dụng trong lập trình hệ thống, cũng như bị lợi dụng bởi các ứng dụng virus nhằm đánh cắp thông tin

Hệ điều hành Windows quản lý các thông điệp sử dụng hàng đợi (Queue) Các

sự kiện sẽ lần lượt được sử lý theo mức độ ưu tiên và thứ tự trong hàng đợi này

Có hai cách cài đặt Hook:

- Hook cục bộ (Thread Hook): Kỹ thuật áp dụng hạn chế trong phạm vi một tiểu trình hoặc một ứng dụng cụ thể Khi cài đặt kỹ thuật Hook này, chương trình chỉ có thể giám sát quá trình gửi/nhận thông điệp trong một chương trình hoặc một tiến trình xác định Các Hook cục bộ được cài đặt bằng lời gọi API ngay trong chương trình

- Hook toàn cục (Global Hook): Kỹ thuật áp dụng giám sát toàn bộ các thông điệp trong hệ thống, không bị hạn chế trong một ứng dụng cụ thể Ứng dụng

kỹ thuật này, bạn có thể giám sát quá trình gửi/nhận thông điệp tới tất cả các ứng dụng đang thực thi trên nên hệ điều hành Các Global Hook Các Hook toàn cục được cài đặt thành một thư viện riêng ( dạng dll)

Các loại Hook được cung cấp trên hệ điều hành Windows:

- WH_KEYBOARD: giám sát các thông điệp từ bàn phím như phím được gõ WM_KEYDOWN, hay người dùng nhả phím sau khi gõ WM_KEYUP, …

- WH_MOUSE: giám sát các thông điệp từ chuột như nhấn chuột, nhả chuột, cuộn con lăn…

- WH_GETMESSAGE: giám sát quá trình gửi/nhận tất cả các thông điệp gồm

Trang 31

Các tham số của thủ tục Hook:

- nCode: mã loại Hook được sử dụng, tùy chọn theo mục đích cài đặt Hook,

- wParam, lParam: các thông tin của thông điệp hook

Các loại Hook khác nhau được cài đặt theo các cách khác nhau sử dụng các hàm được cung cấp sẵn của Windows API như: SetWindowsHook hay SetWindowsHookEX

Hoàn toàn có thể xây dựng một chuỗi Hook gồm nhiều phương thức Hook nối tiếp nhau cho việc xử lý một thông điệp

Hệ điều hành Windows lưu trữ chuỗi Hook trong một danh sách con trỏ và gọi lần lượt các Hook này khi điều kiện của Hook xuất hiện

Các hàm thao tác với Hook:

- SetWindowsHookEx: Đăng ký thủ tục xử lý hook,

- CallNextHookEx: Gọi tới thủ tục xử lý Hook tiếp theo trong hàng đợi sự kiện,

- UnHookWindowsHookEx: Hủy đăng ký xử lý sự kiện

Trang 32

{

MessageBox(0, "Hello World ", "Hook Example", 0);

return 1;

}

//Gọi tới thủ tục Hook tiếp theo

return CallNextHookEx(hGlobalHook, nCode, wParam, lParam);

}

//hàm ấn định biến hGlobalHook tại vùng nhớ dùng chung

declspec(dllexport) void SetGlobalHookHandle(HHOOK hHook)

Vì xây dựng như một sản phẩm riêng biệt, nên chương trình nhận dạng tiếng nói phải sử dụng kỹ thuật Hook toàn cục để có thể gửi các thông điệp sang một chương trình khác Điều này cũng yêu cầu người phát triển xây dựng môt thư viện riêng (trong hệ điều hành Windows đó là các file DLL) phục vụ quá trình xử lý Hook

Sơ đồ dưới đây mô phỏng quá trình nhận dạng sử dụng kỹ thuật Hook

Trang 33

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

Theo giải pháp này, khả năng nhận dạng tiếng nói được xây dựng thành một module riêng và được tích hợp như một thành phần của phần mềm kế toán và quản trị doanh nghiệp FAB – EIS Điều này đồng nghĩa với việc ngôn ngữ lập trình Java được sử dụng, do đó tính độc lập nền tảng của phần mềm vẫn được bảo toàn Phần mềm hoàn toàn có thể thực thi trên các nền tảng hỗ trợ Java mà không phụ thuộc vào một hệ điều hành cụ thể

Do phần mềm FAB – EIS được xây dựng sử dụng ngôn ngữ lập trình Java, nên việc sử dụng công cụ SPHINX hỗ trợ rất lớn cho quá trình xây dựng khả năng nhận dạng tiếng nói của phần mềm

Tuy nhiên, sử dụng kỹ thuật này đòi hỏi người phát triển phải có mã nguồn của phần mềm kế toán và quản trị doanh nghiệp FAB – EIS

2.2.3 Đánh giá và lựa chọn giải pháp

Với hai giải pháp trên ta dễ dạng nhận thấy việc sử dụng kỹ thuật Hook có một

số ưu điểm như: không can thiệp vào mã nguồn phần mềm kế toán và quản trị

doanh nghiệp FAB – EIS, triển khai độc lập hoàn toàn với phần mềm FAB – EIS và

có thể tái sử dụng cho nhiều hệ thống khác nhau Tuy nhiên việc cài đặt thư viện

Hook tương đối phức tạp và phụ thuộc vào môi trường thực thi; ví dụ khi cài đặt

Trang 34

trên hệ điều hành Windows ta cần xây dựng một chương trình, trên hệ điều hành Linux ta cần xây dựng một chương trình khác, do cơ chế Hook và API trên các hệ điều hành khác nhau là khác nhau Mặt khác, việc tìm kiếm, quản lý và gửi thông điệp tới một chương trình khác rất dễ xảy ra lỗi, tiềm ẩn khả năng gây lỗi phần mềm

kế toán, quản trị doanh nghiệp FAB – EIS

Giải pháp thứ hai xây dựng khả năng nhận dạng tiếng nói như một module trong phần mềm kế toán và quản trị doanh nghiệp FAB – EIS tuy phải can thiệp trực tiếp vào mã nguồn phần mềm, nhưng sự can thiệp này tương đối ít chỉ một đoạn nhỏ để kích hoạt khả năng nhận dạng và xử lý lệnh mà người dùng phát ra Giải pháp cũng giúp hạn chế công sức lập trình rất nhiều khi ngôn ngữ lập trình Java có công cụ hỗ trợ nhận dạng tiếng nói hữu hiệu là SPHINX

Bên cạnh đó việc lập trình sử dụng ngôn ngữ Java giúp phần mềm kế toán và quản trị doanh nghiệp FAB – EIS vẫn giữ được tính đa nền tảng khi triển khai trên các hệ điều hành khác nhau mà không cần phải biên dịch lại chương trình

Dựa trên những lý do đó, tác giả đã lựa chọn giải pháp tích hợp trực tiếp khả năng nhận dạng tiếng nói như một module của phần mềm kế toán và quản trị doanh nghiệp FAB – EIS

Trang 35

CHƯƠNG 3

BỘ CÔNG CỤ SPHINX 3.1 Giới thiệu

Sphinx 4 là một hệ thống nhận dạng ngôn ngữ thuần Java, là kết quả của sự hợp tác giữa Đại học Carnegie Mellon, Sun Microsystems Laboratories, Mitsubishi Electric Research Labs (MERL), and Hewlett Packard (HP), cũng như sự đóng góp của đaij học California và học viện công nghệ Massachusetts

Sphinx 4 có khả năng linh động và tính module hóa rất cao Sơ đồ dưới đây là kiến trúc tổng quan của Sphinx 4:

Hình 16 Sơ đồ kiến trúc Sphinx 4

Sphinx 4 có 3 thành phần chính phục vụ cho ba mục đích khác nhau:

- FrontEnd: Nhận các tín hiệu đầu vào, và tham số hóa chúng thành các đặc trưng của tiếng nói

- Decoder: Sử dụng đặc trưng tiếng nói được cung cấp bởi FrontEnd và đồ thị tìm kiếm SearchGraph trích xuất từ dữ liệu ngôn ngữ Linguist nhằm thực hiện quá trình giải mã, và trả về kết quả Result cho ứng dụng

- Linguist: lưu trữ, xử lý các thông tin về ngôn ngữ như từ điển âm học, mô hình ngôn ngữ, mô hình âm học Linguist sử dụng thông tin từ những thành phần này, nhằm tổ hợp ra một đồ thị tìm kiếm SearchGraph phục vụ cho quá trình giải mã

Trang 36

Sphinx 4 cung cấp lượng lớn các tham số cấu hình nhằm điều chính hiệu năng

hệ thống ví dụ như độ sâu tìm kiếm… Đặc biệt Sphinx 4 cung cấp khả năng cấu hình động thông qua lớp ConfigurationManager giúp cho các hệ thống sử dụng sphinx trở lên linh động hơn rất nhiều

Bên cạnh đó Sphix 4 cũng cung cấp các bộ công cụ trợ giúp người dùng trong việc phân tích hệ thống như tương tác với môi trường khi đang thực thi, thay đổi tham số lúc chạy…

Mỗi DataProcessor có một đầu vào và đầu ra, đầu ra của DataProcessor này có thể là đầu vào của DataProcessor khác Tín hiệu đầu ra và đầu vào của DataProcessor là Data DataProcessor cuối cùng có đầu ra là một đối tượng Data đã được tham số hóa, hay còn gọi là đặc trưng (Features) của tín hiệu đầu vào Các đặc trưng này sẽ được sử dụng cho bộ Decoder

Sphinx 4 cho phép sinh ra các đặc trưng một các song song, và số lượng các luồng sử lý song song có thể thay đổi tùy ý

Các DataProcessor giao tiếp với nhau dựa trên mô hình pull, chúng chỉ yêu

Trang 37

3.3 Linguist

Module Linguist được sự dụng để sinh đồ thị tìm kiếm SearchGraph Giống như các thành phần khác Linguist có khả năng pluggable giúp người dung có thể cấu hình động hệ thống với nhiều cài đặt linguist khác nhau

Linguist tạo ra đồ thị tìm kiếm SearchGraph bằng cách sử dụng cấu trúc ngôn ngữ (được biểu diễn bởi mô hình ngôn ngữ LanguageModel cho trước) và kiến trúc

âm học của mô hình âm học AcousticModel (mô hình Markov ẩn cho các âm) Linguist cũng sử dụng từ điển Dictionary để ánh xạ các từ trong mô hình ngôn ngữ với các phần tử tương ứng trong mô hình âm học AcousticModel

Linguist gồm 3 thành phần pluggable: Mô hình ngôn ngữ - LanguageModel,

Từ điển – Dictionary, và mô hình âm học – AcousticModel

3.3.1 Mô hình nguôn ngữ - LanguageModel

Mô hình ngôn ngữ biểu diễn kiến trúc ngôn ngữ ở mức từ vựng, có thể được cài đặt theo nhiều cách khác nhau Các cài đặt này thông thường chi làm hai loại: ngữ pháp hướng đồ thị và mô hình thống kê N-Gram

Ngữ pháp hướng đồ thị biểu diễn một đồ thị có hướng trong đó mỗi nút biễu diễn một từ đơn, mỗi cạnh biểu diễn xác suất từ có thể đi sau từ đó

Mô hình thống kê N-Gram cung cấp xác suất của từ xuất hiện trước n – 1 từ khác

Mô hình ngôn ngữ trong Sphinx 4 hỗ trợ nhiều định dạng khác nhau:

- SimpleWordListGrammar: định nghĩa ngữ pháp dựa trên danh sách các từ

- JSGFGrammar: hỗ trợ JavaTM Speech API Grammar Format(JSGF)

- LMGrammar: định nghĩa ngữ pháp dựa trên một mô hình ngôn ngữ thống kê

Mô hình này làm việc tốt với các ngôn ngữ xấp xỉ 1000 từ

- FSTGrammar: Hỗ trợ máy hữu hạn trạng thái theo định dạng ngữ pháp ARPA FST

- SimpleNGramModel: cung cấp mô hình ngôn ngữ ASCII N – Gram theo định dạng ARPA Mô hình này không tối ưu hóa bộ nhớ sử dụng, do đó chỉ phù hợp với các mô hình ngôn ngữ nhỏ

- LargeTrigramModel: được sinh ra sử dụng bộ công cụ ngôn ngữ CMU, tối

ưu hóa bộ nhớ, cho phép làm việc với các file lớn từ 100MB trở lên

3.3.2 Từ điển - Dictionary

Từ điển cung cấp phương thức phát âm cho các từ của mô hình ngôn ngữ Cách thức phát âm sẽ chi từ thành các phần nhỏ hơn xuất hiện trong mô hình âm học Từ điển hỗ trợ phân loại các từ và cho phép một từ đơn được xếp vào nhiều lớp khác nhau

Hiện tại, Sphinx 4 cung cấp cài đặt giao tiếp từ điển hỗ trợ e CMU Pronouncing

Trang 38

Dictionary

3.3.3 Mô hình âm học AcousticModel

Mô hình âm học cung cấp ánh xạ giữa các thành phần tiếng nói và mô hình Markov ẩn Việc ánh xạ này có thể bao gồm cả thông tin về ngữ cảnh và vị trí của từ Thông thường, Linguist chia các từ thành các tiểu từ độc lập ngữ cảnh, sau đó truy vấn đồ thị Markov ẩn cho các tiểu từ này, đồ thị được tìm thấy sẽ kết hợp với

mô hình âm học AcousticModel đẻ tạo nên đồ thị tìm kiếm GraphSearch

Không giống như các hệ nhận dạng tiếng nói khác, đồ thị HMM không được biểu diễn dưới dạng cấu trúc cố định, mà chỉ đơn thuần là một đồ thị có hướng, ở đó mỗi nút biểu diễn một trạng thái của mô hình, mỗi cạnh biểu diễn xác suất chuyển trạng thái giữa hai nút Cách thức biểu diễn này giúp mô hình âm học có khả năng

hỗ trợ mô hình Markov ẩn với nhiều kiến trúc khác nhau

3.3.4 Đồ thị tìm kiếm

Linguist được cài đặt theo nhiều cách khá nhau, do đó không gian tìm kiếm được sinh ra bởi Linguist có kiến trúc rất đa dạng Hình dưới đây biểu diễn một không gian tìm kiếm dữ liệu chính:

Hình 18 Đồ thị tìm kiếm GraphSearch[10]

3.3.5 Cài đặt

Sphinx 4 cung cấp một số cái đặt của Linguist nhằm hỗ trợ các mục đích khác nhau:

- FlatLinguist: Phù hợp với các tác vụ nhận dạng sử dụng ngữ pháp phi ngữ cảnh (CFG), ngữ pháp hữu hạn trạng thái (FSG), máy hữu hạn trạng thái

Ngày đăng: 25/07/2017, 21:58

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Carnegie Mellon University, “Sphinx-4 A speech recognizer written entirely in the JavaTM programming language” Sách, tạp chí
Tiêu đề: Sphinx-4 A speech recognizer written entirely in the JavaTM programming language
Tác giả: Carnegie Mellon University
2. Carnegie Mellon University, “Sphinx-4 Application Programmer's Guide” Sách, tạp chí
Tiêu đề: Sphinx-4 Application Programmer's Guide
Tác giả: Carnegie Mellon University
3. Carnegie Mellon University, CMUSphinx Tutorial For Developers 4. JasperReport (2012), “Getting Started with JasperReports Library” Sách, tạp chí
Tiêu đề: Getting Started with JasperReports Library
Tác giả: Carnegie Mellon University, CMUSphinx Tutorial For Developers 4. JasperReport
Năm: 2012
5. Melanie Pinola (2011), “Speech Recognition Through the Decades: How We Ended Up With Siri” Sách, tạp chí
Tiêu đề: Speech Recognition Through the Decades: How We Ended Up With Siri
Tác giả: Melanie Pinola
Năm: 2011
6. Pete Muir (2012), “JBoss - Getting Started Developing Applications Guide” Sách, tạp chí
Tiêu đề: JBoss - Getting Started Developing Applications Guide
Tác giả: Pete Muir
Năm: 2012
7. Oracle (2010), “The Java EE 5 Tutorial” Sách, tạp chí
Tiêu đề: The Java EE 5 Tutorial
Tác giả: Oracle
Năm: 2010
17. Bộ Tài Chính (2006), “Quyết định 15/2006/QĐ-BTC của Bộ tài chính ban hành chế độ kế toán doanh nghiệp” Sách, tạp chí
Tiêu đề: Quyết định 15/2006/QĐ-BTC của Bộ tài chính ban hành chế độ kế toán doanh nghiệp
Tác giả: Bộ Tài Chính
Năm: 2006
18. Quốc hội nước CHXHCN Việt Nam (2003), “Luật Kế toán” Sách, tạp chí
Tiêu đề: Luật Kế toán
Tác giả: Quốc hội nước CHXHCN Việt Nam
Năm: 2003

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w