GI I THI U
Thành công của giáo dục phụ thuộc vào môi trường học tập và quản lý hiệu quả Nếu có một môi trường giáo dục tốt, học sinh sẽ có cơ hội phát triển nghề nghiệp tốt hơn, từ đó góp phần vào sự phát triển kinh tế của đất nước Tuy nhiên, trong môi trường giáo dục hiện nay vẫn tồn tại nhiều vấn đề cần giải quyết, đòi hỏi sự quản lý chặt chẽ từ những người làm giáo dục Việc ứng dụng công nghệ vào quản lý sẽ giúp cải thiện tình hình và nâng cao hiệu quả giáo dục trong cuộc sống hiện đại.
Công nghệ ngày càng phát triển mạnh mẽ, mang lại nhiều công cụ tiên tiến hỗ trợ cho công việc và cuộc sống của con người, giúp các nhiệm vụ trở nên thuận tiện và dễ dàng hơn Trong lĩnh vực giáo dục, máy chấm thi trắc nghiệm ra đời đã giúp việc chấm điểm các bài trắc nghiệm diễn ra nhanh chóng, giảm thiểu thời gian giáo viên phải ngồi bên những tờ phiếu trắc nghiệm để kiểm tra Nhờ có máy chấm thi, giáo viên có thể tiết kiệm thời gian và nâng cao hiệu quả công việc, từ đó góp phần quan trọng vào việc ứng dụng công nghệ trong giáo dục.
Với sự phát triển của công nghệ hiện nay, giá thành của điện thoại di động thông minh ngày càng giảm, phù hợp với túi tiền của đa số người dùng Do đó, việc mỗi sinh viên sở hữu một chiếc điện thoại thông minh để hỗ trợ việc học tập cũng như giải trí trở thành một điều tất yếu.
Nhận diện giọng nói hiện tại đã trở thành công nghệ phổ biến, giúp nhập liệu nhanh hơn và hiệu quả hơn so với việc gõ bằng tay Với khả năng hoàn thành văn bản trong thời gian ngắn, công nghệ này rất hữu ích khi tìm kiếm trên thiết bị di động, đặc biệt là khi việc sử dụng bàn phím trên điện thoại gặp nhiều hạn chế về kích thước Ngoài việc tăng tốc độ nhập liệu, nhận diện giọng nói còn có khả năng xác thực nhân thân một cách hiệu quả nhờ vào sự khác biệt trong giọng nói của mỗi người.
Tại Aoyama Gakuin, Nh t B n, sinh viên năm nhất, năm hai và nhân viên trường đã được phát một thiết bị điển thông minh miễn phí Mục đích của việc này là tạo ra một mạng lưới thông tin di động giữa sinh viên và giáo viên Đồng thời, đây cũng là một cách hiệu quả để giáo viên điểm danh sinh viên Khi vào lớp, sinh viên không cần ghi tên vào giấy điểm danh mà chỉ cần nhập mã số sinh viên và số phòng học vào thiết bị thông minh Thiết bị này còn có chức năng GPS để tránh tình trạng sinh viên vắng mặt trong lớp nhưng vẫn được điểm danh.
Nh ng v i hình th c này, các sinh viên có th d dàng cúp h c vì ch c n đ a cho b n m n chi c đi c tho i c a mình đ b n đó đ n tr ng và đi m danh h
Tại Việt Nam, việc chống tiêu cực trong học tập và thi cử đang được chú trọng tại các trường đại học Công tác quản lý sinh viên tại các trường vẫn còn lỏng lẻo, tạo điều kiện cho một số sinh viên lách luật, tìm đến các dịch vụ "học hộ, thi hộ" đang được quảng bá rầm rộ trên các trang web và mạng xã hội, đặc biệt trong mùa thi Do đó, "học hộ, thi hộ" trở thành vấn nạn ảnh hưởng đến tiêu chí trong môi trường học tập, đồng thời tạo điều kiện cho những người giả danh sinh viên thực hiện các hành vi gian lận trong học đường.
Việc quy định học tín chỉ tại các trường đại học và cao đẳng hiện nay giúp cho việc học trở nên linh hoạt hơn Sinh viên có thể chọn một số lượng tín chỉ nhất định trong mỗi học kỳ, và mỗi sinh viên sẽ có một thời khóa biểu riêng Tuy nhiên, bên cạnh những lợi ích tích cực của quy chế học tín chỉ, việc quản lý các sinh viên trở nên khó khăn hơn do mỗi sinh viên có lịch học khác nhau.
Nhóm nghiên cứu đã tiến hành xây dựng một hệ thống phân mảnh để đánh giá sinh viên bằng giọng nói, nhằm cải thiện việc đánh giá trong các trường đại học áp dụng học chế tín chỉ.
M C ÍCH C A TÀI
Hệ thống phần mềm định danh trên nền tảng client-server bao gồm client là các thiết bị di động chạy hệ điều hành Android, cho phép người dùng nhận diện và sử dụng công nghệ tiên tiến như GPS và bản đồ Google Maps Server là Webservice kết hợp với cơ sở dữ liệu SQL Server, tạo ra một hệ thống hiệu quả và có thể triển khai trong các trường học.
PH NG PHÁP TH C HI N
L p trình Web service bên phía server b ng ngôn ng C# trên môi tr ng Visual Studio 2010
L y đa đi m b ng công ngh đnh v toàn c u GPS trên đi n tho i di đ ng ch y trên h đi u hành Android
Xác đnh v trí c a thi t b di đ ng và v trí c a đa đi m h c b ng Google Maps
Xây d ng mô hình âm thanh, mô hình ngôn ng cho vi c nh n di n gi ng nói s d ng b công c nh n di n gi ng nói c a i h c Carnegie Mellon là Pocketsphinx
Trong mô hình lập trình client-server, thiết bị client thường là điện thoại thông minh, nơi dữ liệu GPS được thu thập và xác thực Sau đó, dữ liệu này sẽ được tải lên server và được xử lý thông qua cơ sở dữ liệu SQL Server.
Tiến hành thực nghiệm để xác định định danh và tỷ lệ chính xác trong việc xác thực bằng nhận diện giọng nói giúp phát hiện ngôn ngữ sai và ngôn ngữ không chính xác của phần mềm.
ÓNG GÓP C A TÀI
V m t xã h i, lu n v n này có th ng d ng đ giúp gi m thi u tình tr ng “h c h , thi h ” đang còn t n t i trong môi tr ng giáo d c i H c hi n nay n c ta
Hệ thống phần mềm client-server được xây dựng nhằm phục vụ sinh viên, trong đó client là các thiết bị di động chạy hệ điều hành Android, còn server là webservice được phát triển bằng ngôn ngữ C# Hệ thống này có khả năng xác thực danh tính người dùng một cách chính xác, với tỷ lệ chính xác 100% cho các trường hợp đúng và 100% cho các trường hợp sai Ứng dụng của hệ thống có thể được triển khai trong môi trường đào tạo và giáo dục, giúp nâng cao chất lượng học tập và quản lý sinh viên.
B C C C A BÁO CÁO
Ch ng này nêu nh ng n i dung t ng quan, gi i thi u, nêu m c đích c a đ tài, các ph ng pháp th c hi n, đóng góp c a đ tai và b c c c a báo cáo
Ch ng này nêu các lý thuy t c b n c a Web service, Android, GPS và nh n di n gi ng nói t đó làm c s đ thi t k và cài đ t h th ng ph n m m
Ch ng 3: Thi t k và cài đ t
Chương này tập trung vào việc phân tích và thiết kế hệ thống, bao gồm thiết kế các mô hình cơ sở dữ liệu và huấn luyện mô hình nhận diện giọng nói Đồng thời, nó cũng hướng dẫn các bước cài đặt nhận diện giọng nói trên thiết bị Android và cài đặt Webservice phía Server.
Ch ng này nêu lên nh ng k t qu đ t đ c c a lu n này, nh ng đóng góp c a đ tài v m t xã h i và v m t công ngh M t s h n ch c a đ tài
NH N DI N GI NG NÓI
KHÁI NI M C B N C A GI NG NÓI
Giọng nói là một hiện tượng phức tạp và khó xác định cách nó được hình thành và cách nó được lắng nghe Nhận thức thông thường cho rằng giọng nói được cấu thành bằng các từ, và mỗi từ bao gồm các âm tiết nói Thực ra, lối nói là một quá trình động và có những phần không thể phân biệt một cách rõ ràng.
Các mô hình đánh giá độ chính xác trong ngôn ngữ thường không có một tiêu chuẩn nhất định để đánh giá các đoạn văn hay biểu đạt của các từ với nhau Độ chính xác trong ngôn ngữ không bao giờ hoàn toàn tuyệt đối, vì chúng ta rất khó có thể xây dựng một hệ thống hoàn hảo để nhận diện ngôn ngữ Đây là lý do khiến chúng ta chấp nhận những sai sót trong quá trình giao tiếp.
Âm thanh là một luồng liên tục mà trong đó trạng thái âm thanh có thể thay đổi mà không cần dừng lại Trong chuỗi trạng thái này, con người có khả năng định nghĩa các lớp của âm thanh hoặc âm vị một cách đa dạng Tuy nhiên, việc hiểu và xây dựng từ các âm vị có thể không chính xác Các thuộc tính âm thanh của một tín hiệu sóng (waveform) tương ứng với một âm vị có thể khác nhau rất nhiều, phụ thuộc vào nhiều yếu tố như ngữ điệu, người nói và cách phát âm.
Hình 2.1 th hi n d ng sóng c a hai ch s “n m” và “sáu” đ c ghi l i t máy ghi âm và hi n th trên ph n m m ghi âm gi ng nói trên máy tính
Hình 2.1 D ng sóng âm thanh
Âm thanh trong ngôn ngữ hình thành từ các yếu tố khác nhau, dẫn đến sự khác biệt so với các quy tắc tiêu chuẩn Các chuyển tiếp giữa các âm vị cung cấp thông tin phong phú hơn về khu vực ngữ âm, thường được gọi là diphones, tức là các phần âm giữa hai âm vị liên tiếp Ngoài ra, chúng ta cũng đề cập đến subphonetic, là những trạng thái phụ của một âm vị Có ba hoặc nhiều hơn các khu vực với những đặc điểm khác nhau có thể dễ dàng nhận diện.
Phân đầu tiên của âm vị phụ thuộc vào âm vị trước đó, phần giữa đánh dấu, và phần tiếp theo phụ thuộc vào âm vị theo sau Đây là lý do tại sao thường có ba trạng thái của âm vị được chọn cho nhận diện dựa vào mô hình HMM (Mô hình Markov ẩn).
Mô hình Markov ẩn (HMM - Hidden Markov Model) là một công cụ thống kê mà các tham số đầu vào không được xác định rõ ràng, giúp xác định các tham số đầu ra một cách ngẫu nhiên Mô hình này được ứng dụng rộng rãi trong lĩnh vực tin học và sinh học.
Âm vị được xem xét trong thu c tính có thể bao gồm triphones (âm vị ba) hoặc quinphones (âm vị năm) Mặc dù chúng không giống như âm vị đơn và âm vị đôi, nhưng chúng tương đồng với nhau trong dạng sóng, tức là các âm vị đơn Sự khác biệt chỉ nằm ở tên gọi, vì vậy chúng ta gọi chúng là senone Một số thuộc tính của senone trong thu c tính có thể được phân loại thành thuộc tính trái và thuộc tính phải, và chúng có thể là một hàm phức tạp được xác định bởi cây quyết định hoặc bằng một số phương pháp khác.
Âm v t o ra đ n v âm ph, gi ng nh âm ti t là những âm thanh có tính ổn định trong việc giảm thiểu Khi nói nhanh, âm v thường thay đổi, nhưng âm ti t vẫn giữ nguyên hình thức của nó.
Âm ti t có mối liên hệ chặt chẽ với ngữ điệu trong ngôn ngữ Có nhiều phương pháp khác nhau để xây dựng các từ phức tạp, dựa trên hình thái học và âm vị học phong phú Các từ phức thường được sử dụng trong giao tiếp hàng ngày và thể hiện sự đa dạng trong ngôn ngữ.
Các từ phát triển từ các âm vị và đóng vai trò quan trọng trong nhận diện giọng nói vì chúng thu hút các âm hợp cách đáng kể Ví dụ, nếu có 40 âm vị và trung bình mỗi từ có 7 âm vị, thì sẽ có 40^7 từ khả thi Tuy nhiên, đối với những người có trình độ học vấn cao, họ thường sử dụng khoảng 20 ngàn từ, điều này khiến cho nhận diện giọng nói trở nên khó khăn hơn.
Các âm thanh không phải ngôn ngữ như "um", "uh", hay "tiếng thở" được gọi là fillers, thường xuất hiện trong các câu nói Chúng là những khoảng tách rời giữa những ý tưởng và không cần thiết trong các câu có nhiều nghĩa liên quan đến khái niệm.
Cách phân biệt nội dung diễn đạt có nghĩa là: lấy dải sóng, chia nó thành các đoạn nói và không im lặng, sau đó ghi nhận những gì được nói trong mỗi đoạn Để thực hiện điều này, chúng ta lấy tất cả các kết hợp có thể của các từ và ghi nhận chúng với âm thanh.
Trước tiên, khái niệm của ánh sáng được trình bày qua các tham số quan trọng Do số lượng tham số khá lớn, chúng ta cần tối ưu hóa chúng Số liệu được tính toán lại bằng cách chia thành các khung Mỗi chiều dài của một khung tiêu biểu là 10 mili giây, từ đó chúng ta trích ra 39 số Đây là véc-tơ được trình bày Cách phát sinh ra những số đó là một đại diện của việc thăm dò một cách chính xác Hiểu theo cách đơn giản, số phát sinh của quang phổ.
Mô hình là khái niệm quan trọng trong toán học, thể hiện các đặc tính của đối tượng một cách rõ ràng Trong thực tế, mô hình âm thanh của âm vị có thể được coi là sự kết hợp của ba trạng thái – đơn giản, nhưng lại là một véc-tơ tính năng có thể tạo ra nhiều hình thức khác nhau.
Mô hình đề ra nhiều vấn đề quan trọng, bao gồm cách thức phù hợp với thực tiễn, khả năng thích nghi với các điều kiện luôn thay đổi và sự hình thành các vấn đề nội bộ trong mô hình.
CÁC MÔ HÌNH NH N DI N GI NG NÓI
D a theo c u trúc c a gi ng nói, có 3 mô hình h tr cho vi c nh n di n gi ng nói:
Mô hình âm thanh: bao g m các đ c tính c a âm thanh cho m i âm v Mô hình ng c nh đ c l p ch a đ ng các thu c tính (đ c tính có th x y ra nh t c a m i âm v ) và mô
Từ điển ngữ âm là công cụ quan trọng để xác định cách phát âm của các từ Tuy nhiên, ánh xạ giữa các ký hiệu và âm thanh không phải lúc nào cũng rõ ràng Ví dụ, chỉ có hai hoặc ba biến thể phát âm được ghi nhận, nhưng chúng có thể xuất hiện khác nhau trong các ngữ cảnh khác nhau Từ điển không phải là nguồn duy nhất để ánh xạ các từ đến âm vị; nó cũng có thể được thực hiện thông qua các hàm phức tạp liên quan đến máy học và thuật toán.
Mô hình ngôn ngữ là công cụ quan trọng trong việc tìm kiếm các từ, giúp xác định từ nào có thể theo sau từ đã cho, từ đó tạo ra mối liên kết giữa chúng Mô hình ngôn ngữ n-gram thường được sử dụng để thống kê các từ liên tiếp, trong khi mô hình ngôn ngữ trạng thái ẩn định nghĩa lại các liên kết thông qua trạng thái ẩn Để đạt được độ chính xác cao trong việc dự đoán từ tiếp theo, mô hình ngôn ngữ cần phải thành công trong việc tìm kiếm không gian hạn chế Điều này có nghĩa là nó cần phải dự đoán tốt các từ tiếp theo dựa trên ngữ cảnh Một mô hình ngôn ngữ hiệu quả thường tập trung vào các từ mà nó chứa, đồng thời có thể kết hợp một số yếu tố như âm vị Việc tìm kiếm trong không gian hạn chế trong trường hợp này thường rất hiệu quả và đóng góp vào độ chính xác trong việc nhận diện ngữ nghĩa.
Ba mô hình trên không thể áp dụng trong một hệ thống nhận diện giọng nói Nếu chúng ta muốn sử dụng máy của mình cho các ngôn ngữ khác, cần phải có cấu trúc tương ứng Đối với việc hỗ trợ các ngôn ngữ, từ điển ngữ âm và thậm chí là từ vựng của ngôn ngữ đã có sẵn và có thể tạo lập các trang chuyên cung cấp mô hình nhận diện giọng nói.
M t s khái ni m khác dùng đ s d ng trong vi c nh n di n gi ng nói:
Lattice là một cấu trúc toán học dùng để biểu diễn các biến đổi của việc nhận diện Thông thường, việc lấy được kết quả khớp lệnh là không thể; trong trường hợp này, lattice là đại diện trung gian thể hiện các kết quả nhận diện.
N-best list c a s bi n đ i gi ng nh m ng l i, cho dù s bi u di n c a nó không dày đ c nh m ng l i
M ng l i t h n t p (hình xúc xích): là nh ng m ng l i đ c g ng v i nhau theo trình t c a các đi m đ c l y t m i góc c a m ng l i đ th
Cơ sở dữ liệu giọng nói là một bể ghi âm được xây dựng từ các tác phẩm Khi phát triển hệ thống hội thoại, nó sẽ trở thành hội thoại ghi âm dành cho người dùng Với hệ thống này, người dùng có thể truy cập các bản ghi âm Cơ sở dữ liệu giọng nói được sử dụng để huấn luyện, điều chỉnh và kiểm tra các hệ thống giải mã.
Cơ sở dữ liệu văn bản là những tập hợp dữ liệu được thu thập cho huấn luyện mô hình ngôn ngữ Thông thường, cơ sở dữ liệu văn bản được thu thập từ các mẫu form Việc thu thập này bao gồm tài liệu hiện tại như tệp tin PDF, các trang web, và các bản scan, vào trong các mẫu form Một điều cần lưu ý là cần ghi rõ các tiêu chí thu thập.
T I U HÓA VI C NH N DI N GI NG NÓI
Khi phát triển các mô hình ngôn ngữ, tính chính xác và tốc độ là hai yếu tố quan trọng Các mô hình này có thể gặp khó khăn trong việc xử lý các kết quả ngôn ngữ khi không đạt được độ hoàn thiện cao.
Nh ng đ c tính sau s đ c dùng:
T n s t b l i (Word error rate/WER) Chúng ta có v n b n g c và v n b n ghi âm có đ dài là N t T đó có I t đ c thêm vào, D t b xóa và S t thay th :
WER (Word Error Rate) là một chỉ số đánh giá độ chính xác của việc nhận diện từ ngữ trong các tác vụ xử lý ngôn ngữ Công thức tính WER được xác định là chính xác = (N – D – S) / N, trong đó N là tổng số từ, D là số từ bị xóa và S là số từ sai Độ chính xác thực sự là một thước đo quan trọng cho hiệu suất của các hệ thống, vì việc thêm từ vào có thể ảnh hưởng lớn đến kết quả cuối cùng Tuy nhiên, đối với một số tác vụ, độ chính xác là một tiêu chí hợp lý để đánh giá hiệu suất của các giải pháp mã hóa.
T c đ Gi s t p tin âm thanh dài 2 ti ng và th i gian gi i mã là 6 ti ng thì t c đ c đ m đ c là 3xRT
Cung ROC (Receiver Operating Curve) là công cụ quan trọng trong lý thuyết phát tín hiệu, giúp xác định tính chính xác của tín hiệu nhận được Khi phân tích tác động, cung ROC có thể được sử dụng để đánh giá mức độ báo động giả so với tỷ lệ truy cập Một góc của cung ROC biểu diễn số lượng báo động giả tương ứng với số lượng truy cập và đạt được các điểm tối ưu, trong đó tỷ lệ báo động giả và tỷ lệ truy cập phù hợp đạt 100%.
S L C V WEB SERVICE
KHÁI NI M V WEB SERVICE
Dịch vụ web (web service) là một hệ thống phân tán được xây dựng để hỗ trợ khả năng tương tác giữa các máy tính trên mạng, theo định nghĩa của Wide Web Consortium Nó cung cấp một giao thức giao tiếp được mô tả bằng một định dạng chung gọi là ngôn ngữ mô tả dịch vụ web (WSDL) Các hệ thống khác thực hiện tương tác với dịch vụ web thông qua giao thức SOAP (Simple Object Access Protocol), cho phép trao đổi thông tin qua HTTP kết hợp với việc sử dụng XML và một số chuẩn khác Mục đích chính của việc phát triển dịch vụ web là cho phép giao tiếp và trao đổi các chức năng, thông tin, dữ liệu giữa các người dùng một cách dễ dàng mà không cần quan tâm đến môi trường phát triển hay ngôn ngữ lập trình, miễn là đã được quy định bởi một định dạng chung Bản chất của dịch vụ web là một tập hợp các đối tượng, các phương thức được thực thi và công bố trên mạng có thể được gọi từ xa thông qua các người dùng khác nhau.
C I M C A WEB SERVICE
Web service cho phép client và server tương tác hiệu quả trong nhiều môi trường khác nhau Phần lớn các web service được phát triển dựa trên mã nguồn mở và tuân theo các tiêu chuẩn đã được công nhận Chúng là sự kết hợp giữa phát triển theo hướng thành phần và các lĩnh vực cụ thể, mang lại lợi ích cho doanh nghiệp, khách hàng, nhà cung cấp và cá nhân thông qua mạng Internet.
Hình 2.2 Mô hình giao ti p c a Web service
Web service là công cụ quan trọng giúp xây dựng hệ thống linh hoạt, cho phép tương tác giữa các ứng dụng phần mềm khác nhau trên các nền tảng khác nhau Nó sử dụng các giao thức và chuẩn mực để truyền tải dữ liệu, giúp nâng cao khả năng tái sử dụng cho các nhà phát triển Web service khuyến khích đầu tư vào các hệ thống phần mềm đa dạng bằng cách cho phép các tiến trình và chức năng được đóng gói trong giao diện web service Ngoài ra, web service cũng tạo điều kiện cho các thành phần trong hệ thống tương tác lẫn nhau, giúp lập trình viên dễ dàng phát triển các hệ thống dữ liệu phân tán, từ đó giảm sự phức tạp của hệ thống tích hợp.
Web server cần được tối ưu hóa để giảm thiểu các điểm yếu, giúp người dùng dễ dàng truy cập dịch vụ Việc đảm bảo tính bảo mật cho web service là rất quan trọng nhằm tránh những rủi ro không đáng có Đồng thời, các giao thức cũng cần được cải tiến và nâng cấp, yêu cầu người dùng phải cập nhật và thay đổi theo.
KI N TRÚC SERVICES
Web services rely on three main standards: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language), and UDDI (Universal Description, Discovery, and Integration) UDDI is used for registering and discovering web services as described in WSDL The UDDI interface utilizes SOAP to communicate with the UDDI server, allowing SOAP clients to request web services SOAP messages are transmitted accurately using HTTP and TCP/IP protocols.
Hình 2.3 S đ ki n trúc c a web service
Web service có 4 thành ph n chính:
Giao thức truyền thông giữa các người dùng mạng bao gồm nhiều giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức BEEP (Blocks Extensible Exchange Protocol).
Thông điệp XML có vai trò quan trọng trong việc truyền tải thông tin theo định dạng XML, giúp người dùng dễ dàng hiểu và tương tác Hiện nay, các giao thức phổ biến cho việc truyền tải thông điệp này bao gồm XML-RPC, SOAP và REST.
WSDL là ngôn ngữ mô tả giao tiếp được sử dụng để định nghĩa các dịch vụ Web, cho phép truyền tải tham số và dữ liệu cần thiết cho các thao tác và chức năng mà dịch vụ cung cấp.
Khám phá d ch v (Discovery): t p trung d ch v vào trong m t n i đ c đ ng ký, t đó giúp m t d ch v Web có th d dàng khám phá ra nh ng d ch v nào đã có trên m ng
M t d ch v Web c ng ph i ti n hành đ ng ký đ các d ch v khác có th truy c p và giao ti p Hi n t i, UDDI API th ng đ c s d ng đ th c hi n công vi c này
CÁC THÀNH PH N WEB SERVICES
XML là một chuẩn do W3C phát triển để mô tả dữ liệu, giúp xác định các thành phần dữ liệu trên trang web và các tài liệu B2B Cấu trúc của XML tương tự như HTML, nhưng trong khi HTML định nghĩa cách hiển thị các thành phần, XML lại chỉ rõ nội dung của các thành phần đó Với XML, các lập trình viên có thể tùy chỉnh dữ liệu trên mỗi trang web, đảm bảo tính linh hoạt và hiệu quả trong việc truyền tải thông tin.
Dịch vụ web là sự kết hợp của nhiều thành phần khác nhau, trong đó XML đóng vai trò quan trọng trong việc giao tiếp giữa các thành phần đó XML là công cụ chính giúp giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một dịch vụ web, nơi tất cả dữ liệu được chuyển đổi sang định dạng XML Nhờ đó, thông tin mã hóa hoàn toàn tương thích với các tiêu chuẩn của SOAP và XML-RPC, cho phép chúng tương tác với nhau trong một hệ thống nhất.
SOAP là một giao thức truyền thông được cấu trúc theo định dạng XML, cho phép các ứng dụng phân tán giao tiếp với nhau dù được phát triển bằng nhiều ngôn ngữ lập trình và chạy trên các hệ điều hành khác nhau Giao thức này sử dụng XML để thay đổi và truyền tải thông điệp qua mạng máy tính, thường thông qua giao thức HTTP.
Khách hàng gửi yêu cầu tới máy chủ và ngay lập tức nhận được thông tin phản hồi từ máy chủ Cả SMTP và HTTP đều là những giao thức lập trình của SOAP, nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn trong thời đại ngày nay, giúp cải thiện hiệu quả làm việc với hệ thống Internet.
Hình 2.4 Mô t SOAP đ c s d ng trong web service c) WSDL (Web Service Description Language)
WSDL (Web Services Description Language) là một ngôn ngữ mô tả dịch vụ web, sử dụng cú pháp XML để cung cấp thông tin về tên dịch vụ, giao thức và kiểu mã hóa được sử dụng khi gọi các hàm của dịch vụ web Nó bao gồm các thông tin như thao tác, tham số và các kiểu dữ liệu, có thể là giao diện của dịch vụ web tương ứng với tên của giao diện này.
M t WSDL h p l g m hai ph n: ph n giao di n (mô t giao di n và ph ng th c k t n i) và ph n thi hành mô t thông tin truy xu t CSDL C hai ph n này s đ c l u trong
Tệp tin XML tĩnh ng là tệp tin giao diện dịch vụ và tệp tin thi hành dịch vụ Giao diện của một dịch vụ Web được mô tả trong phần này, cung cấp cách thức giao tiếp qua dịch vụ Web Tên, giao thức liên kết và định danh thông điệp yêu cầu để tương tác với dịch vụ Web được đưa vào thẩm c của WSDL.
WSDL (Web Services Description Language) là một ngôn ngữ được sử dụng để mô tả dịch vụ web qua Internet bằng định dạng XML và SOAP Khi một client kết nối với dịch vụ web, nó có thể sử dụng WSDL để xác định các chức năng sẵn có trên server Sau đó, client có thể sử dụng SOAP để truy xuất các chức năng cụ thể được định nghĩa trong WSDL.
Hình 2.5 Các thành ph n c a WSDL
M i thành ph n có m t ch c n ng riêng, c th nh sau:
Types: ch đnh ki u d li u cho các thông đi p g i và nh n
Messages: là m t thành ph n tr u t ng mô t cách th c giao ti p gi a client và server
Porttypes: mô t ánh x gi a các th ng đi p – đ c mô t trong ph n t messages – và các ph ng th c
Binding: xác đnh giáo th c nào s d ng khi giao ti p v i d ch v web
Port là địa chỉ cho các dịch vụ web, thường là chuỗi URL đơn giản Universal Description, Discovery, And Integration (UDDI) cho phép sử dụng các dịch vụ, trong đó client cần tìm dịch vụ, ghi nhận thông tin và cách sử dụng UDDI định nghĩa một số thành phần để cung cấp thông tin này, giúp client truy tìm và nhận những thông tin cần thiết khi sử dụng dịch vụ web Cấu trúc UDDI rất quan trọng trong việc tổ chức và quản lý các dịch vụ.
Trang trắng (White pages) chứa thông tin liên hệ và các định danh chính yếu của dịch vụ web, bao gồm tên giao dịch, địa chỉ, và thông tin nhận diện Những thông tin này giúp các đối tác khác xác định dịch vụ một cách chính xác.
Trang vàng là một nguồn thông tin hữu ích, cung cấp danh sách các dịch vụ web được phân loại theo nhiều loại khác nhau Những thông tin này giúp người dùng dễ dàng tìm kiếm và tiếp cận các dịch vụ web phù hợp với nhu cầu của họ.
Trang xanh (Green pages): ch a thông tin k thu t mô t các hành vi và các ch c n ng c a d ch v Web
Lo i d ch v (tModel): ch a các thông tin v lo i d ch v đ c s d ng.
S L C V H I U HÀNH ANDROID
L CH S ANDROID
Android là hệ điều hành dựa trên nền tảng Linux, được thiết kế dành cho các thiết bị di động Ban đầu, hệ điều hành này được phát triển bởi công ty Android, trước khi Google mua lại vào năm 2005 Đến năm 2007, Google chính thức ra mắt hệ điều hành Android.
ANDOIRD LÀ GÌ
Android là hệ điều hành di động do Google phát triển, dựa trên kernel Linux 2.6 Nó bao gồm các phần mềm trung gian (middleware) và nhiều ứng dụng cần thiết cho người sử dụng Bộ công cụ phát triển phần mềm Android SDK cung cấp các công cụ và giao diện lập trình ứng dụng (API) cần thiết để xây dựng và phát triển các ứng dụng trên nền tảng Android bằng ngôn ngữ lập trình Java.
KI N TRÚC H I U HÀNH ANDROID
H đi u hành Android có 4 t ng t d i lên trên là t ng h t nhân Linux, t ng Libraries & Android runtime, t ng Application Framework và trên cùng là t ng Application
Hình 2.6 th hi n 4 t ng c a m t ki n trúc h đi u hành Android
Hình 2.6 Ki n trúc h đi u hành Android a) T ng h t nhân Linux (Linux Kernel Layer)
Hệ điều hành Android được phát triển dựa trên nền tảng Linux, với các thành phần chính được thực hiện qua lớp di động này Tất cả hoạt động của điện thoại thông minh đều phải thông qua lớp này, bao gồm quản lý bộ nhớ, giao tiếp với phần cứng, thực thi bảo mật và quản lý tiến trình.
T ng này t p h p các th vi n c a ngôn ng C\C++ cho phép thi t b x lý nhi u lo i d li u khác nhau Sau đây là m t s th vi n quan tr ng trong t ng này:
System C libc: Có ngu n g c t h thông th vi n chu n c a ngôn ng C dùng đ đi u ch nh các thi t b nhúng trên linux
Surface manager: Qu n lý vi c truy xu t h thông hi n th hi n th đêm và s k t h p đ h a 2D, 3D c a nhi u ng d ng
Media FrameWork: H tr ghi âm, phát video và hi n th hình nh
Webkit: ây là trình duy t đ c s d ng đ hi n th n i dung HTML
OpenGL: c s d ng đ làm cho n i dung đ h a 2D ho c 3D hi n th lên màn hình c) Th i gian ch y c a Android (Android Runtime):
Hệ điều hành Android cung cấp nhiều chức năng dựa trên ngôn ngữ lập trình Java Người dùng Android truy cập các ứng dụng thông qua trình duyệt riêng của hệ điều hành Máy ảo Dalvik, dựa trên máy ảo Java, được sử dụng trên các thiết bị Android Dalvik thực thi các file định dạng dex, phù hợp với việc xử lý hiệu quả và bảo mật, nhờ vào việc sử dụng nhân Linux, mang lại các tính năng quản lý bộ nhớ và hỗ trợ đa luồng.
T NG APPLICATION FRAMEWORK
Tầng ứng dụng trong xây dựng phần mềm cung cấp các công cụ cho lập trình viên, giúp họ nhanh chóng phát triển ứng dụng Nó được viết bằng ngôn ngữ Java, với khả năng sử dụng chung để tiết kiệm tài nguyên Một số thành phần chính của Application Framework bao gồm:
Qu n lý các chu k s ng c a m t ng d ng c ng nh cung c p công c đi u khi n các Activity
Cung c p công c đ th c hi n vi c liên l c nh g i đi n tho i
Cung c p công c đ liên l c trong th i gian th c
Cho phép xác đ nh v trí c a đi n tho i tho i d a vào h th ng đnh v toàn c u GPS và Google Maps
Qu n lý vi c xây d ng và hi n th các giao di n ng i dùng c ng nh t ch c qu n lý các giao di n gi a các ng d ng
Qu n lý vi c hi n th các thông báo (nh báo có tin nh n, có e-mail m i )
Qu n lý tài nguyên t nh c a các ng d ng bao g m các file hình nh, âm thanh, layout, string (nh ng thành ph n không đ c vi t b i ngôn ng l p trình).
T NG APPLICATION
Ứng dụng di động là phần mềm được thiết kế để tương tác với người dùng, bao gồm các ứng dụng cơ bản như gọi điện (phone), quản lý danh bạ (Contacts), duyệt web (Browser), nhắn tin (SMS), lịch làm việc (Calendar), email (Email-Client), bản đồ (Map) và camera (Camera) Ngoài ra, người dùng còn có thể cài đặt thêm các phần mềm như ứng dụng chứng khoán (Stock), trò chơi (Game) và nhiều ứng dụng khác.
CÁC THÀNH PH N TRONG PROJECT ANDROID
Hình 2.7 C u trúc th m c c a m t d án Android
Th m c src ch a toàn b file có đ nh d ng java và x lý các s ki n, g i các giao di n khác
Th m c res/drawable ch a các file hình nh c a ng d ng
Th m c res/layout ch a nh ng file có đnh d ng xml đ thi t k giao di n cho ng d ng
Th m c res/value ch a nh ng file có đnh d ng xml l u d li u (string, array )
Khi bắt đầu một dự án Android, file AndroidManifest.xml sẽ được tạo ra File này định nghĩa các giao diện, quyền truy cập và thông tin quan trọng khác như phiên bản SDK và main activity.
Thi t l p quy n cho ng d ng, khai báo các activity, khai báo activity nào đ c ch y đ u ti n khi ng d ng đ c th c thi
File này đ c t đ ng sinh ra khi t o m t Android project Trong file manifest bao gi c ng có ba thành ph n chính đó là: application, permission và version
File R.java là một tệp được tự động sinh ra khi xây dựng ứng dụng, có vai trò quan trọng trong việc quản lý các thuộc tính được khai báo trong file XML của ứng dụng và các tài nguyên hình ảnh.
Vi c t o m i m t tài nguyên (hình nh ) sau đó đ u đ c ng d ng t đ ng đ nh ngh a vào trong file R.java.
CÁC THÀNH PH N C B N C A M T NG D NG ANDROID
Activity là một thành phần quan trọng của màn hình di động, cho phép người dùng tương tác trực tiếp Ví dụ, người dùng có thể thực hiện các hành động như ghi chú, xem bản đồ, hay chụp ảnh Trên một thiết bị di động, có thể có nhiều Activity và tất cả các Activity này được quản lý thông qua Activity Stack.
Mô hình Activity Stack quản lý các hoạt động hiệu quả bằng cách thiết kế mỗi Activity xung quanh một hành động cụ thể mà người sử dụng có thể thực hiện Điều này giúp người dùng tham gia vào các hoạt động một cách có tổ chức và dễ dàng hơn.
Activity m i t o ra s đ c đ t đnh stack Activity n m k activity đang ch y s không nhìn th y cho đ n khi nh n nút back ho c đóng activity đang ch y
Chu kì ho t đ ng c a ng d ng android :
Mô hình trình Linux được thiết kế để hỗ trợ các ứng dụng Android, cho phép xây dựng, khởi động, chạy và duy trì hoạt động cho đến khi không còn cần thiết, sau đó hệ thống sẽ tự động giải phóng tài nguyên cho các người dùng khác.
Sự khác biệt và đặc tính cơ bản của Android là thời gian sống của trình duyệt di động không được điều khiển trực tiếp bởi chính nó Thay vào đó, nó được xác định bởi hệ thống qua một tập hợp các phần của ngữ cảnh mà hệ thống biết đang chạy, những phần đó quan trọng như thế nào đối với người dùng và có bao nhiêu vùng nhạy cảm nằm trong hệ thống.
Mô tả hoạt động trong Android là một quá trình tương tác trên thiết bị di động Mỗi activity có khả năng tương tác với người dùng, cho phép tạo ra nhiều giao diện khác nhau để người dùng tương tác.
Khi một Activity trên thiết bị di động Android được khởi động, hàm đầu tiên được thực thi là onCreate(), giúp khởi tạo các hoạt động Khi Activity đang chạy, hàm onPause() sẽ được gọi khi có tương tác từ bên ngoài, và khi tiếp tục hoạt động, hàm onResume() sẽ được thực thi Nếu người dùng muốn dừng Activity, hệ thống sẽ bắt đầu quy trình “dọn rác”, tức là huỷ các hoạt động khác trước khi kết thúc Cuối cùng, khi quá trình chạy của Activity kết thúc, hàm onDestroy() sẽ được gọi.
Hình 2.9 Chu k ho t đ ng c a m t Activity b) Intent:
Intent trong Android được sử dụng để kích hoạt ba thành phần cốt lõi: Activity, Service và Broadcast Receivers thông qua các thông điệp Thông điệp Intent là cơ sở ràng buộc giữa các thành phần khác nhau trong ứng dụng Intent cũng là một cấu trúc dữ liệu trừu tượng, cho phép thực thi các hoạt động trong hệ thống.
Intent trong Android là một đối tượng chứa thông tin về các thành phần nhận intent và các thông tin liên quan Nó cho phép các ứng dụng giao tiếp với nhau và thực hiện các hành động cụ thể trong hệ thống.
Action: chu i đ t tên cho các hành đ ng th c thi ho c trong tr ng h p intent broadcast, các hành đ ng đó đã di n ra và đ c thông báo
Data: Các d li u đ c s d ng đ hành đ ng (Action) thao tác trên nó, nh b n ghi v m t ng i nào đó trong c s d li u ch a các contact c a thi t b
Ví d v thành ph n action/data:
ACTION_VIEW content://contacts/people/1 – hi n th thông tin liên l c c a ng i có mã là “1”
ACTION_DIAL content://contacts/people/1 – g i đi n cho ng i có mã là “1”
ACTION_DIAL tel:123 – g i đ n s đi n tho i “123”
Ngoài ra, Intent còn có các thu c tính ph sau:
CATEGORY_LAUNCHER là loại hành động được hiển thị trong Launcher cho các ứng dụng cấp cao, trong khi CATEGORY_ALTERNATIVE chứa danh sách các hành động thay thế mà người dùng có thể thực hiện trên phần dữ liệu mà Intent cung cấp.
Loại dữ liệu chính xác (kiểu MIME) được xác định bởi intent Thông thường, loại này được suy ra từ chính dữ liệu Bằng cách thiết lập thuộc tính loại, bạn có thể vô hiệu hóa sự phỏng đoán kiểu dữ liệu và chỉ định rõ ràng một kiểu chính xác.
Chức năng chính của các thành phần trong Intent là xác định rõ ràng tên của chúng Thông thường, việc này được thực hiện bằng cách tìm kiếm thông tin trong Intent và liên kết chúng với các thành phần có khả năng đáp ứng yêu cầu xử lý của Intent.
Extracts là một đối tượng Bundle được sử dụng để chứa các thông tin cần thiết cho component Ví dụ, khi có một Intent thực hiện hành động gửi email, các thông tin cần chứa trong đối tượng Bundle bao gồm subject, body, và các thông tin khác liên quan.
+ Intent rõ ràng: xác đnh thành ph n đích theo tên c a nó Thông th ng thì nh ng Intent này không ch a b t k thông tin nào đ n gi n là dùng đ g i m t Activity
+ Intent n: Không đ t tên cho m t thành ph n đích, th ng dùng đ kích ho t các thành ph n trong các ng d ng khác
Intent filters là cấu trúc quan trọng trong Android, giúp xác định thành phần phù hợp để thực hiện các hành động cụ thể Mỗi intent filter bao gồm thông tin về các hành động và loại dữ liệu mà nó hỗ trợ Để khai báo intent filter, người phát triển cần sử dụng thẻ intent-filter trong tệp AndroidManifest.xml.
M t Intent Fillter có các thành ph n chính sau:
+ Action: Tên hành đ ng mà component có th th c thi
+ Type: Ki u hành đ ng mà component có th th c thi
+ Category: Phân nhóm các hành đ ng i v i nh ng d li u không ph i là n i dung c th thì vi c xem xét l a ch n Intent phù h p s d a vào l c đ c a d li u đ c cung c p c) Content Provider:
Content Provider là một thành phần cơ bản trong việc xây dựng ứng dụng Android, có vai trò quản lý truy xuất vào kho lưu trữ dữ liệu trung tâm Nó giúp đóng gói dữ liệu và cung cấp các cách xác định bảo mật cho dữ liệu Content Provider hoạt động như một giao diện kết nối giữa dữ liệu của ứng dụng và các ứng dụng khác đang thực thi trong hệ thống.
Content Provider cung c p m t con tr giup cho ng i l p trình d dàng truy xu t d li u l u tr file h thông ho c trong h qu n tr SQLite d) SQLite:
SQLite là một cơ sở dữ liệu mã nguồn mở được nhúng vào hệ điều hành Android Nó hỗ trợ nhiều tính năng của cơ sở dữ liệu quan hệ như cú pháp SQL, triggers và transactions Khi chạy, SQLite tiêu thụ rất ít băng thông, cho phép truy xuất dữ liệu nhanh chóng mà không chiếm dụng quá nhiều tài nguyên hệ thống.
MÔI TR NG L P TRÌNH NG D NG ANDROID
Để phát triển ứng dụng Android, bạn cần cài đặt Android SDK và JDK 5 hoặc 6 Ngoài ra, bạn cũng cần một IDE như Eclipse hoặc Netbeans Khóa học này sẽ sử dụng Eclipse để phát triển ứng dụng Android, vì đây là IDE phổ biến với nhiều tính năng hỗ trợ lập trình Android.
CH NG 3 THI T K VÀ CÀI T
MÔ HÌNH HO T NG C A H TH NG PH N M M I M DANH
Hình 3.1 mô t m t cách t ng quan mô hình ho t đ ng c a h th ng ph n m m đi m danh sinh viên thông qua nh n di n gi ng nói
Hình 3.1 Mô hình ho t đ ng c a h th ng
Nguyên lý ho t đ ng c a h th ng đ c mô t nh sau:
Khi sinh viên đến điểm học đã đăng ký theo thời khóa biểu, họ cần nhập mã số sinh viên vào phần mềm Phần mềm sẽ gửi mã số và vị trí hiện tại đến web service Web service kết nối với cơ sở dữ liệu để lấy thông tin về thời khóa biểu, địa điểm học, và các thông tin khác như GPS Sau khi xác minh thông tin, web service sẽ trả về phần mềm Nếu thông tin về địa điểm học và môn học chính xác, sinh viên sẽ được phép điểm danh Phần mềm sẽ sinh ra một dãy số ngẫu nhiên để sinh viên xác thực danh tính Sinh viên nhấn nút xác nhận và bắt đầu theo dãy số đó Nếu thông tin không khớp, hệ thống sẽ sinh ra một dãy số ngẫu nhiên khác để sinh viên thực hiện xác thực lại.
PHÂN TÍCH VÀ THI T K C S D LI U
MÔ HÌNH Ý NI M TRUY N THÔNG
2 G i thông tin MSS và to đ GPS
3 Truy xu t, tìm ki m TKB c a SV t ng ng
6 Yêu c u nh n di n gi ng nói
8 Xác th c gi ng nói
Hình 3.2 Mô hình ý ni m truy n thông
MÔ HÌNH Ý NI M D LI U
CoSo MaCS TenCS ViDo KinhDo
Hình 3.3 Mô hình ý ni m d li u
MÔ HÌNH LOGIC D LI U
SinhVien MSSV MaLop HoTen GioiTinh NamSinh
CoSo MaCS TenCS ViDo KinhDo
TKB Ca Thu MaMH MaHK MaPH SoTiet
HocKy MaHK MaNH TenHK NgayBD NgayKT
DiemDanhSV NgayThang MSSV Ca Thu MaPH CoMat
Hình 3.4 Mô hình logic d li u
MÔ HÌNH V T LÝ D LI U
Hình 3.5 Mô hình v t lý d li u
Mô t mô hình v t lý d li u:
- M t môn h c có nhi u sinh viên theo h c m t sinh viên ch có m t môn h c
- M t sinh viên h c m t th i khóa bi u m t th i khóa bi u có nhi u sinh viên h c
- M t th i khóa bi u có nhi u môn h c, m t môn h c có nhi u th i khóa bi u
- M t môn h c, h c nhi u phòng h c m t phòng h c có nhi u môn h c
CÁC B NG D LI U
a) Các b ng c a mô hình ý ni m truy n thông:
Danh sách các tác nhân
B ng 3.1 Danh sách các tác nhân c a MHYNDL
Tên Mã Lo i tác nhân
SINH VIÊN SINH_VIEN Tác nhân ngo i
Danh sách các dòng thông tin:
B ng 3.2 Danh sách các dòng thông tin c a MHYNDL
Tên Mã Tác nhân nh n Tác nhân g i
1 Yêu c u đi m danh 1_YEU_CAU_IEM_DAN
2 G i thông tin MSS và to đ GPS
2_GUI_THONG_TIN_MS S_VA_TOA_O_GPS
3_TRUY_XUAT_TIM_KI EM_TKB_CUA_SV_TU ONG_UNG
5 Ki m tra k t qu 5_KIEM_TRA_KET_QU
6 Yêu c u nh n di n gi ng nói
6_YEU_CAU_NHAN_DI EN_GIONG_NOI
7 Truy n gi ng nói 7_TRUYEN_GIONG_NO
8 Xác th c gi ng nói 8_XAC_THUC_GIONG_
9 L u k t qu đi m danh 9_LUU_KET_QUA_IEM
SERVER CLIENT b) Các b ng c a mô hình ý ni m d li u:
Danh sách các th c th :
B ng 3.3 Danh sác các th c th c a mô hình ý ni m d li u
CoSo COSO DiemDanhSV DIEMDANHSV GiangVien GIANGVIEN HocKy HOCKY Khoa KHOA Lop LOP MonHoc MONHOC NamHoc NAMHOC PhongHoc PHONGHOC SinhVien SINHVIEN TKB TKB
B ng 3.4 Danh sách các liên k t c a th c th CoSo
Danh sách các thu c tính c a th c th CoSo
B ng 3.5 Danh sách các thu c tính c a th c th CoSo
MaCS MACS char(10) TenCS TENCS nvarchar(50) ViDo VIDO Float
B ng 3.6 Danh sách các liên k t c a th c th DiemDanhSV
B ng 3.7 Danh sách các thu c tính c a th c th DiemDanhSV
B ng 3.8 Danh sách các liên k t c a th c th GiangVien
B ng 3.9 Danh sách các thu c tính c a th c th GiangVien
MaGV MAGV char(10) TenGV TENGV nvarchar(50)
B ng 3.10 Danh sách các liên k t c a th c th HocKy
B ng 3.11 Danh sách các thu c tính c a th c th HocKy
MaHK MAHK char(10) TenHK TENHK nvarchar(50)
B ng 3.12 Danh sách các liên k t c a th c th Khoa
Liên k t Th c th B n ghi o Khoa 1,n
B ng 3.13 Danh sách các thu c tính c a th c th Khoa
B ng 3.14 Danh sách các liên k t c a th c th Lop
Liên k t Th c th B n ghi o Lop 1,1
B ng 3.15 Danh sách các thu c tính c a th c th Lop
B ng 3.16 Danh sách các liên k t c a th c th MonHoc
B ng 3.17 Danh sách các thu c tính c a th c th MonHoc
MaMH MAMH char(10) TenMH TENMH nvarchar(50)
B ng 3.18 Danh sách các liên k t c a th c th NamHoc
B ng 3.19 Danh sách các thu c tính c a th c th NamHoc
MaNH MANH char(10) TenNH TENNH nvarchar(50)
B ng 3.20 Danh sách các liên k t c a th c th PhongHoc
B ng 3.21 Danh sách các thu c tính c a th c th PhongHoc
B ng 3.22 Danh sách các liên k t c a th c th SinhVien
B ng 3.23 Danh sách các thu c tính c a th c th SinhVien
B ng 3.24 Danh sách các liên k t c a th c th TKB
B ng 3.25 Danh sách các thu c tính c a th c th TKB
Ca CA Integer Thu THU nvarchar(50)
B ng 3.26 Danh sách các liên k t c a mô hình ý ni m d li u
DiemDanh DIEMDANH HK_NamHoc HK_NAMHOC Hoc HOC o O Thuoc THUOC Trong TRONG Xep XEP
B ng 3.27 Danh sách các liên k t đ n c a liên k t C a
B ng 3.28 Danh sách các liên k t đ n liên k t DangKy
B ng 3.29 Danh sách các liên k t đ n liên k t Day
B ng 3.30 Danh sách các liên k t đ n liên k t DD_TKB
B ng 3.31 Danh sách các liên k t đ n liên k t DiemDanh
B ng 3.32 Danh sách các liên k t đ n liên k t HK_NamHoc
B ng 3.33 Danh sách các thu c tính c a liên k t HK_NamHoc
B ng 3.34 Danh sách các liên k t đ n liên k t Hoc
B ng 3.35 Danh sách các liên k t đ n liên k t o
Liên k t Th c th B n ghi o Khoa 1,n o Lop 1,1
B ng 3.36 Danh sách các liên k t đ n liên k t Thuoc
B ng 3.37 Danh sách các liên k t đ n liên k t Trong
B ng 3.38 Danh sách các b ng c a mô hình v t lý d li u
Xep TKB 1,1 c) B ng c a mô hình logic d li u:
Danh sách các th c th , các thu c tính và khoá
B ng 3.39 Danh sách các liên k t đ n liên k t Xep
Tên b ng Các thu c tính Khóa chính
MaHK x MaNH TenHK NgayBD NgayKT
TenNH d) B ng c a mô hình v t lý d li u:
B ng 3.40 Danh sách các th c th , các thu c tính và khoá 1
Tên b ng Khóa chính Khóa ngo i
B ng 3.41 Danh sách các th c th , các thu c tính và khoá
Tên b ng Các thu c tính Khóa chính
MSSV x MaLop HoTen GioiTinh NamSinh
Ca x Thu x MaPH x MaMH x MaHK SoTiet
B ng 3.42 Danh sách các m i liên h c a mô hình logic d li u
Tên Mã Th c th 2 Th c th 1 Ph thu c
DangKy DANGKY2 SinhVien DangKy DangKy
DangKy DANGKY MonHoc DangKy DangKy
Day DAY2 MonHoc Day Day
Day DAY GiangVien Day Day
GiangVien 1,1 1,n DD_TKB DD_TKB TKB DiemDanhSV 1,1 1,n
Hoc HOC PhongHoc TKB TKB
XÂY D NG MÔ HÌNH NH N DI N GI NG NÓI
CÁC THÀNH PH N C B N C A NH N DI N GI NG NÓI
Để tạo ra một hệ thống nhận diện giọng nói hiệu quả, chúng ta cần có một từ điển nhị ngữ Anh-Việt Khi nhập liệu bằng tiếng Anh, hệ thống sẽ tìm kiếm từ tương ứng trong tiếng Việt Từ điển này sẽ là mô hình âm thanh tương ứng với giọng nói đã được ghi âm trước đó Việc huấn luyện từ điển này là một phần quan trọng trong quá trình dạy máy học, giúp máy nhận diện chính xác giọng nói và âm thanh tương ứng.
Tài liệu huấn luyện (ghi âm, từ điển, bài báo,…) sẽ giúp chúng ta xây dựng mô hình âm thanh, từ điển ngữ âm và mô hình ngôn ngữ sử dụng trong hệ thống nhận diện giọng nói.
Hình 3.6 Các thành ph n c b n c a m t h th ng nh n di n gi ng nói
HU N LUY N MÔ HÌNH ÂM THANH
T o sao và khi nào thì chúng ta hu n luy n mô hình âm thanh:
Khi chúng ta mu n t o ra m t mô hình thanh cho ngôn ng m i c th đây là mô hình âm thanh cho các s t 0 đ n 9 trong Ti ng Vi t
Ho c khi chúng ta c n mô hình âm thanh đ c tr ng cho m t ng d ng nào đó nh t đi n và s t c n đ nh n di n là r t nh và không đáng k
Khi chúng ta có r t nhi u d li u âm thanh đ c ghi t nhi u ngu n khác nhau:
Mô hình này ghi âm các giọng nói và các lệnh điều khiển từ một người nói duy nhất Nó bao gồm 5 giờ ghi âm của 200 người nói khác nhau và 10 giờ ghi âm nhận diện giọng nói của một người Tổng cộng, có 50 giờ ghi âm được thu thập để phục vụ cho việc phát triển và cải thiện công nghệ nhận diện giọng nói.
Để nâng cao độ chính xác trong việc nhận diện âm thanh, bạn cần trang bị kiến thức về cấu trúc âm và ngôn ngữ, cũng như thời gian huấn luyện cho mô hình Điều này sẽ giúp tối ưu hóa quá trình nhận diện âm thanh một cách hiệu quả hơn.
Nhiều cách tiếp cận để tạo dữ liệu cho một ngôn ngữ mới là ghi âm thành công từ những nguồn có sẵn Ghi âm có thể đến từ bạn bè, gia đình, hoặc đồng nghiệp Trong bài viết này, chúng ta sẽ sử dụng một công cụ mã nguồn mở có sẵn tại trường đại học Carnegie Mellon hỗ trợ thực hiện trên môi trường Linux.
Nhóm nghiên cứu đang phát triển mô hình âm thanh bằng cách thu thập dữ liệu môi trường và âm thanh Họ sử dụng hệ điều hành Ubuntu (Linux) để tạo một thư mục chứa các tệp tin cần thiết, bao gồm các tệp WAV từ ghi âm giọng nói của bản thân, người thân và bạn bè Mục tiêu chính là ghi âm giọng nói của bản thân và sinh viên trong trường Để thực hiện, nhóm đã cài đặt hai gói hỗ trợ nhận diện giọng nói là pocketsphinx và sphinxbase.
Bên trong th m c etc là các t p tin: TV.dic, TV.phone, TV.filler, TV_train.fileids, TV_train.transcription, sphinx_train.cfg
Tập tin TV.dic là từ điển tiếng Việt được xây dựng theo phiên âm bởi nhóm nghiên cứu chuyên môn Đây là một lexicon cho đặc sắc, chỉ có 10 chữ số từ “0” đến “9” Do đó, từ điển đặc sắc tiếng Việt theo kiểu đánh chữ Telex có thể được hình thành như sau:
T p tin TV.filler là m t t p tin đóng vai trò là m t b l c nhi u:
: kho ng l ng trong câu
: kho ng l ng cu i câu
T p tin TV.phone là t p tin ch a các âm v xu t hi n trong t p tinTV.dic và trong b l c nhi u TV.filler, có 20 âm v đ c s d ng cho 10 t t 0 đ n 9 là:
A AI AS AUS AW AYR
B CH H IS KH M NG OO
Các âm v này ph i duy nh t trong t p tin TV.phone và ch g m nh ng âm v mà chúng ta c n (xu t hi n trong TV.dic và TV.filler)
T p tin TV_train.transcription là t p tin ch a các câu mà chúng ta dùng đ h c D i đây là m t s câu trong 150 câu mà tôi dùng đ hu n luy n đ c s :
Thu âm 150 câu đ c s và l u trữ các t p tin âm thanh định dạng wav trong th m mục wav Lưu ý: tên các t p tin âm thanh ghi âm cần được ghi bên trong ngo c đ n, không ghi phần mở rộng wav mà chỉ ghi tên của t p tin đó.
Lấy tên các tệp tin âm thanh từ thư mục wav, bạn có thể truy cập vào danh sách tên tệp trong TV_train.fileids Mỗi tên tệp âm thanh sẽ tương ứng với một câu được ghi âm trong TV_train.transcription, đảm bảo rằng số dòng trong TV_train.fileids phải bằng số dòng trong TV_train.transcription.
T p tin này đ c phát sinh t b công c dùng đ hu n luy n cho mô hình âm thanh có tên là SphinxTrain có đ c t p tin này ta s d ng hai dòng l nh sau:
/SphinxTrain/scripts_pl/setup_SphinxTrain.pl -task TV
/pocketsphinx/scripts/setup_sphinx.pl -task TV
Trong tài liệu này, chúng tôi điều chỉnh số lượng senone trong nhận diện giọng nói, với số lượng senone cố định là 1000 Nhóm nghiên cứu nhận thấy tỷ lệ nhận diện thành công cao nhất và tỷ lệ giả mạo thấp nhất.
Sau khi đã chu n b đ y đ các t p tin, chúng ta b t đ u quá trình ghi âm:
/scripts_pl/make_feats -ctl etc/TV_train.fileids
Sau khi hoàn thành các dòng lệnh, chúng ta đã hoàn tất việc huấn luyện mô hình âm thanh Đồng thời, model_parameters đã chứa các tham số của mô hình HMM.
XÂY D NG MÔ HÌNH NGÔN NG
Có hai loại mô hình ngôn ngữ: mô hình ngữ pháp và mô hình ngôn ngữ thống kê Mô hình ngữ pháp là loại mô hình đơn giản, áp dụng cho các loại ngôn ngữ trong điều kiện kiểm soát và điều khiển, thường được đặc trưng bởi việc sử dụng quy tắc viết bằng tay hoặc tự động để tạo ra các dòng lệnh đơn giản.
Có nhiều cách để xây dựng mô hình ngôn ngữ thống kê Khi dữ liệu cơ bản quá lớn, bạn có thể sử dụng công cụ của CMU để tạo ra mô hình ngôn ngữ Đối với mô hình quy mô lớn, bạn có thể sử dụng dịch vụ web trực tuyến để tạo ra mô hình này Phần mềm có thể xuất mô hình ngôn ngữ với đuôi lm, nhưng bạn cần chuyển đổi chúng sang định dạng nhị phân dmp bằng lệnh sphinx_lm_convert -i TV.lm -o TV.dmp.
Sau khi đã có d c mô hình âm thanh và mô hình ngôn ng vi c ti p theo là cài đ t ng d ng nh n di n gi ng nói trên Android
M terminal và gõ sudo-i đ l y quy n qu n tr c a h th ng ti p theo là m t kh u c a b n Khi có quy n qu n tr , b n có th truy xu t vào các t p tin h th ng
B n s c n swig đ th c thi ng d ng mà chúng ta s p vi t trên android vì th chúng ta s cài đ t swig b ng l nh apt-get install swig
/configure make make install i v i pocketsphinx c ng đánh các l nh t ng t
Trong thư mục PocketSphinxDemo/jni, tạo một tệp tin Android.mk và thay đổi SPHINX_PATH (dòng 5) đến thư mục cha chứa pocketsphinx và sphinxbase mà chúng ta đã chuẩn bị trước đó.
< đ ng d n đ n th m c ndk build>/ndk-build-B
Bây gi m Eclipse và import d án PocketSphinxDemo Vào properties c a d án
To set up PocketSphinxDemo using Builder, first select SWIG and NDK Choose the NDK builder and ensure the correct NDK path is set under "The project containing the selected resource" in the Refresh tab Next, select "Specify working set of relevant resources" in the Build Option tab Then, configure SWIG by specifying "The folder containing the selected resource" in the Refresh tab and again select "Specify working set of relevant resources" under Build Option.
Thi t l p trên thi t b đi n tho i ch y h đi u hành Android u tiên k t n i v i đi n tho i Android c a b n và t o ra các th m c edu.cmu.pocketsphinx t i /mnt/ sdcard
Để sử dụng thư mục edu.cmu.pocketsphinx, bạn cần truy cập vào đường dẫn thích hợp trên thiết bị của mình và tạo ra cấu trúc thư mục như sau: edu.cmu.pocketsphinx/hmm/vi/TV, trong đó thư mục TV chứa mô hình âm thanh đã được huấn luyện trước Bên cạnh đó, thư mục edu.cmu.pocketsphinx/lm/ chứa hai tệp tin TV.dic và TV.dmp, là những tệp mà chúng ta đã tạo ra trong quá trình xây dựng mô hình ngôn ngữ.
Trong quá trình thực hiện dự án, chúng ta cần điều chỉnh các tham số trong file `RecognizerTask.java` tại đường dẫn `src/edu.cmu.pocketsphinx.demo/` Cụ thể, hãy tìm và sửa đổi các dòng lệnh sau: `c.setString("-hmm", "/sdcard/Android/edu.cmu.pocketsphinx/hmm/vi/TV");`, `c.setString("-dict", "/sdcard/Android/edu.cmu.pocketsphinx/lm/vi/TV.dic");`, và `c.setString("-lm", "/sdcard/Android/edu.cmu.pocketsphinx/lm/vi/TV.DMP");`.
Nh v y ta chúng ta đã hoàn thành vi c xây d ng nên ng d ng nh n di n đ c các ch s t 0 đ n 9 trên đi n tho i Android.
CÀI T
CÀI T PHÍA CLIENT
Cài đ t phía client có nh ng ch c n ng chính là l y t a đ GPS t thi t b , g i và nh n d li u t server, nh n di n gi ng nói sinh viên
Hình 3.7 Mô hình ho t đ ng bên phía Client
Tìm ki m m t Provider theo tiêu chí :
S d ng l p Criteria đ yêu c u thi t b x lý chính xác nh ng s li u có s n nh : v đ và kinh đ , t c đ , đ cao, chi phí và yêu v c u n ng l ng đi n
Criteria criteria = new Criteria(); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setSpeedRequired(false); criteria.setCostAllowed(true);
Chúng ta có thể sử dụng hàm getBestProvider để tìm nhà cung cấp dịch vụ tốt nhất cho vị trí cụ thể, hoặc dùng hàm getProvider để lấy thông tin về nhà cung cấp Hàm getBestProvider sẽ trả về các nhà cung cấp dựa trên các tiêu chí nhất định, đồng thời sử dụng Boolean để giới hạn kết quả chỉ những nhà cung cấp đang hoạt động.
String bestProvider = locationManager.getBestProvider(criteria, true);
List matchingProviders = locationManager.getProviders(criteria,false);
M c đích c a d ch v đ nh v là tìm ra v trí v t lý c a thi t b truy c p vào Location Manager th c hi n các yêu c u LOCATION_SERVICES ta s d ng ph ng th c getSystemService:
String serviceString = Context.LOCATION_SERVICE;
LocationManager locationManager; locationManager = (LocationManager)getSystemService(serviceString);
Tr c khi s d ng Location Manager thì c n thêm m t ho c nhi u th uses- permission trong file mainfest đ truy c p vào các ph n c ng c a LBS trong đó bao g m c fine và coarse nh sau:
Chúng ta có th tìm th y v trí b ng cách xác đnh m t Location Provider s d ng ph ng th c getKnowLocation và đ a vào tên c a Location Provider
Theo dõi s di chuy n (Tracking Movement):
Hàm requestLocationUpdate được cập nhật tự động khi vị trí hiện tại thay đổi, cho phép sử dụng LocationListener để nhận thông tin vị trí LocationListener rất linh hoạt và cung cấp nhiều tính năng, cho phép người dùng lựa chọn nhiều loại sự kiện liên quan đến vị trí dựa trên các tiêu chí khác nhau.
Phương thức requestLocationUpdate cho phép cập nhật vị trí thông qua nhà cung cấp dịch vụ vị trí theo tiêu chí đã xác định Đoạn mã dưới đây sẽ thực hiện yêu cầu cập nhật vị trí liên tục dựa trên thời gian và khoảng cách đã được chỉ định.
String provider = LocationManager.GPS_PROVIDER; int t = 5000; // milliseconds int distance = 5; // meters
LocationListener myLocationListener = new LocationListener() { public void onLocationChanged(Location location) {
// Update application based on new location
} public void onProviderDisabled(String provider){
// Update application if provider disabled
} public void onProviderEnabled(String provider){
// Update application if provider enabled
} public void onStatusChanged(String provider, int status,Bundle extras){
// Update application if provider hardware status changed
}; locationManager.requestLocationUpdates(provider, t, distance, myLocationListener);
Giao tiếp giữa client Android và server có thể thực hiện hiệu quả thông qua KSOAP2, hỗ trợ việc kết nối tới web service Đây là một thư viện SOAP hữu ích cho Android, cho phép phát triển nhiều tính năng và cải tiến trong các phiên bản sau.
KSOAP2 là một thư viện giúp phát triển các SOAP web service client trong môi trường Java như Applet hoặc ứng dụng J2ME Thư viện này được thiết kế hoàn toàn dựa trên những thành tựu của phiên bản đầu tiên ksoap1.x KSOAP2-Android là một nhánh mở rộng của KSOAP2, được phát triển để hỗ trợ các ứng dụng trên nền tảng Android.
Sử dụng KSOAP2 để truy cập dữ liệu từ Server giúp thực hiện các chức năng chính của ứng dụng, cho phép phần mềm kết nối đến server và yêu cầu truy xuất các dữ liệu khác nhau Các kỹ thuật giao tiếp giữa ứng dụng và server là đồng nhất và tuân theo một quy định chung.
+ Kh i t o m t đ i t ng SoapObject đ g i yêu c u đ n server v i các tham s truy n vào là NAMESPACE và METHOD_NAME
+ Truy n vào giá tr c a tham s b ng cách dùng ph ng th c addProperty có s n c a đ i t ng soapObject
+ S d ng Soap Envelope dùng đ trao đ i gi a các client và webservice server
+ X lý k t qu tr v b ng k thu t trong ngôn ng java và hi n th các thông tin c n thi t
Ví d : Ki m tra Sinh viên có đang trong c c h c hay không
The code snippet defines constants for a web service in Java, including the SOAP action, operation name, WSDL target namespace, and the SOAP address The SOAP action is set to "http://tempuri.org/XuLy," while the operation name is "XuLy." The WSDL target namespace is also "http://tempuri.org/," and the SOAP address points to "http://androidws.somee.com/DD_WebService.asmx."
B c 2: Kh i t o SoapObject và các tham s truy n vào
SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE, OPERATION_NAME); PropertyInfo propertyInfo = new PropertyInfo(); request.addProperty("kinhDo",viDo); request.addProperty("viDo",viDo);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; envelope.setOutputSoapObject(request);
B c 4 : Nh n giá tr tr v t server
HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);
SoapObject response=null; try { httpTransport.call(SOAP_ACTION, envelope); response =(SoapObject) envelope.getResponse();
} catch (Exception exception){ … } return response;
Với Google Map API, người dùng có thể thêm một bản đồ vào ứng dụng di động dựa trên dữ liệu của Google Maps API này quản lý việc truy cập đến server Google Map, cho phép hiển thị bản đồ và thực hiện các thao tác trên đó Ngoài ra, Google Maps còn hỗ trợ thêm các điểm đánh dấu, đánh dấu khu vực và cá nhân hóa bản đồ theo sở thích của người dùng Để cài đặt Google Map API trên ứng dụng Android, trước tiên cần cài đặt Google Play Service SDK, sau đó đăng ký mã API miễn phí Sau khi có mã API, cần khai báo mã này trong dự án Android, cụ thể là trong tệp AndroidManifest.xml.
T đó chúng ta đã có Google Maps nhúng vào d án và có th l p trình đ ng d ng thông qua các ch c n ng mà Google Maps cung c p.
CÀI T PHÍA SERVER
Để triển khai mô hình hoạt động bên phía server, trước tiên cần cài đặt cơ sở dữ liệu để quản lý thông tin sinh viên trên SQL Server 2005 Tiếp theo, cần thiết lập web service trên server, bao gồm các chức năng cần thiết để phục vụ cho việc xử lý dữ liệu.
- Ki m tra mã s sinh c a sinh viên khi đâng nh p
Kiểm tra thời khóa biểu của sinh viên giúp xác định môn học mà sinh viên đang theo học, cũng như vị trí hiện tại của họ trong quá trình học tập Thông qua việc này, có thể đánh giá sinh viên đã thực hiện điểm danh hay chưa.
- Truy v n toàn b th i khóa bi u c a sinh viên và t ng sô ngày v ng c a t ng môn h c
Danh sách có ba hàm ch c n ng chính trong web service
Ki m tra MSSV, t o đ GPS, môn h c th i đi m hi n t i c a sinh viên
L y ra s ngày v ng, s ngày có m t, s còn l i c a t ng môn h c mà sinh viên đã đ ng ký
Th c ph ng tr v t t c môn h c c a sinh viên.
HI N TH C PH N M M QU N LÝ I M DANH SINH VIÊN
Khi m ph n m m lên, sinh viên c n nh p mã s sinh viên c a mình đ đ ng nh p vào h th ng.
Hình 3.9 Sinh viên m ng d ng
Nh p mã s sinh viên và n vào nút
“ ng nh p” i n tho i c n k t n i v i internet và kích ho t h th ng đnh v toàn c u GPS
Sau khi đã n nút ng nh p, màn hình ch s xu t hi n khi ph n m m đang g i yêu c u thông tin sinh viên, g i đa đi m hi n t i c a thi t b và ch ph n h i t phía server
Hình 3.10 Màn ch khi đang đ ng nh p vào ph n m m
Sau khi nhận phản hồi từ server, màn hình thông tin sẽ được hiển thị Nếu GPS của thiết bị không khớp với địa điểm học của môn học hiện tại trong thời khóa biểu, thông báo “Chưa đến cơ sở học” sẽ xuất hiện.
Khi ch a đ n ca h c thì thông báo “Ch a đ n ca h c” s hi n ra thay cho thông báo
“Ch a đ n c s h c” Sinh viên c n đ n đúng đ a đi m, đúng ca h c và đ ng nh p l i vào h th ng
Hình 3.11 Sinh viên đang nh p thành công nh ng ch a đ n c s h c
Khi ch a đ n c s h c ho c ch a t i ca h c, nút
Khi sinh viên đến đúng địa điểm học theo thời khóa biểu, màn hình thông tin sẽ hiển thị các thông tin về môn học, thời gian, và phòng học Nút “Điểm danh” sẽ được kích hoạt, cho phép sinh viên thực hiện điểm danh.
Hình 3.12 Sinh viên đang trong c s h c
Khi tho mãn các đi u ki n v th i gian và đ a đi m, nút “ i m danh” s đ c kích ho t a) Ch c N ng Xem Th i Khoá Bi u C a Các Môn H c:
Khi sinh viên nhấn vào nút "Xem thời khóa biểu", họ sẽ thấy danh sách các môn học đã đăng ký Như trong hình 3.9, sinh viên đã đăng ký 3 môn học và có thể nhấp vào tên môn học để xem chi tiết.
Hình 3.13 Xem danh sách môn h c b) Ch c N ng Xem Chi Ti t C a T ng Môn H c:
Khi sinh viên n vào môn học m, màn hình sẽ hiển thị danh sách các môn học cùng với thông tin chi tiết về môn học đó, bao gồm số buổi học, số buổi còn lại, giảng viên, và phòng học.
Hình 3.14 Th i khoá bi u chi ti t c a môn h c c) Ch c N ng Tìm Ki m a i m Và Tìm ng i n C S H c:
Khi n vào nút Google Map, b n đ s hi n lên Trên b n đ s hi n ra t t c các c s h c và v trí hi n t i c a sinh viên
Hình 3.15 V trí sinh viên đang đ ng
C s chính d) Ch c N ng Nh n Di n Gi ng Nói i m Danh
Sau khi sinh viên nhấn nút "im danh", màn hình sẽ hiển thị một dãy kiểm tra, hướng dẫn, chuỗi nhận diện, kết quả, nút xác nhận và nút bắt đầu nhận diện Khi người dùng nhấn nút, hệ thống sẽ xử lý và chuỗi nhận diện sẽ xuất hiện Nếu đúng với giọng nói, chuỗi sẽ hiển thị chính xác; nếu không, chuỗi nhận diện sẽ trả về một số ngẫu nhiên để tránh tình huống ghi âm sai.
Sinh viên đã thực hiện việc so sánh giá ngẫu nhiên dựa trên dữ liệu thu thập từ kết quả thực nghiệm Do số lượng dữ liệu ít, việc nhận diện giá ngẫu nhiên gặp khó khăn, dẫn đến mức độ chính xác thấp Tuy nhiên, chúng ta có thể nâng cao độ chính xác của so sánh khi sử dụng các ký tự ngẫu nhiên mà sinh viên nhập vào trong quá trình xây dựng mô hình Khi xác thực, sinh viên sẽ nhận diện được ký tự ngẫu nhiên đã nhập, từ đó xác định giá ngẫu nhiên của mình, vì mỗi giá ngẫu nhiên có một đặc điểm sóng khác nhau.
TH C NGHI M CHÍNH XÁC TRONG NH N DI N GI NG NÓI
CHU N B D LI U GI NG NÓI
Nhóm nghiên cứu đã tiến hành thu thập dữ liệu từ hơn 30 sinh viên thông qua phương pháp ngẫu nhiên, trong đó mỗi sinh viên được ghi âm 3 lần với các mức độ từ 0 đến 9 Việc ghi âm được thực hiện trong môi trường chính xác để đảm bảo tính chính xác của dữ liệu thu thập.
Khi nghe th y gi ng, chu i nh n di n s hi n ra k t qu nh n di n
M i l n nh n di n, dãy s s t sinh ra ng u nhiên n m ch s khác nhau
Để đảm bảo việc điểm danh thành công, sinh viên cần chú ý đến việc ghi âm đúng cách Nút điểm danh sẽ tự động vô hiệu hóa nếu không được thực hiện trong khoảng thời gian quy định Thiết bị ghi âm có thể là điện thoại di động hoặc laptop với microphone, và khoảng cách lý tưởng từ thiết bị đến người được ghi âm nên từ 10cm đến 20cm.
Sau khi hoàn tất việc ghi âm, bước tiếp theo là huấn luyện mô hình âm thanh để phát triển phần mềm Ghi âm lần đầu tiên sẽ được sử dụng để huấn luyện mô hình âm thanh, trong khi các lần ghi âm thứ hai và thứ ba sẽ nhằm kiểm tra độ chính xác của giọng nói.
TH C NGHI M
Nhóm nghiên cứu đã thực hiện một thí nghiệm để kiểm tra độ chính xác của hệ thống nhận diện giọng nói qua 10 chữ số Họ đã sử dụng 10 mô hình ngôn ngữ đã được huấn luyện từ trước và thu thập dữ liệu từ 10 đoạn ghi âm Trong quá trình thí nghiệm, mỗi mô hình được kiểm tra với 10 chữ số từ 0 đến 9, và sau đó, nhóm nghiên cứu tiến hành thực hiện thí nghiệm chéo Với 10 đoạn ghi âm đó, họ đã thực hiện đánh giá bằng cách kiểm tra từng đoạn ghi âm và so sánh kết quả với các mô hình ngôn ngữ đã được huấn luyện.
9 d li u ghi âm còn l i G i FS là t l gi gi ng thành công T đó chúng ta có b ng
3.43 cho th y k qu c a th c nghi m
B ng 3.43 B ng k t qu th c nghi m c a 10 l t ghi âm
Tỷ lệ nhận diện giọng nói của bản thân người được ghi âm là khá cao, với tỷ lệ nhận diện thành công tăng khi mic và người ghi âm ở gần nhau Kết quả nhận diện tỷ lệ nghịch với tiếng ồn xung quanh; nếu môi trường ít ồn hoặc không có tiếng ồn (trong phòng kín), tỷ lệ nhận diện có thể đạt từ 86% đến 100% Tuy nhiên, tỷ lệ ghi âm thành công không cao, với tối đa chỉ 4 chữ số trong 10 chữ số và tối thiểu có thể không có chữ số nào được ghi thành công.
Hình 3.17 Bi u đ k t qu th c ngh m
Trong một nghiên cứu với 140 lô nghiệm (50 lô thực nghiệm nhãn ra giọng và 90 lô thực nghiệm chéo), chúng ta nhận thấy rằng tỉ lệ nhãn diện thành công của mô hình ngôn ngữ đạt từ 0.75 đến 0.92 Nhóm quy định cho rằng ngưỡng ngôn ngữ chấp nhận cho nhãn diện thành công là từ 0.7 trở lên, tức là khi nhãn diện đạt từ 0.7 trở lên thì phần mềm sẽ đảm bảo 100% độ chính xác Mã số của sinh viên gồm 10 chữ số, và nếu sinh viên đó có 7/10 chữ số của mã số đúng, phần mềm sẽ ghi danh thành công Ngược lại, trong trường hợp sinh viên khác có tình trạng giống nhau, nếu có trên 3 chữ số đã được nhãn diện sai, phần mềm sẽ không ghi danh cho sinh viên đó.
Việc nhận diện giọng nói thành công phụ thuộc vào môi trường xung quanh và độ tin cậy của hệ thống nhận diện giọng nói Mặc dù có thể xảy ra sai số, nhưng sai số này thường không quá lớn, đặc biệt trong các hệ thống rút tiền ngân hàng.
K T QU T C
Qua thi t k, cài đặt và thử nghiệm nhóm đã hoàn thành hệ thống phần mềm dành cho sinh viên, có thể áp dụng tại các trường đại học giảng dạy theo hình thức học tín chỉ Phần mềm có thể được cài đặt trực tiếp trên thiết bị di động thông minh chạy hệ điều hành Android phiên bản 2.3 trở lên.
Luận văn này đã trình bày một số vấn đề liên quan đến phía client, bao gồm ứng dụng trên thiết bị di động với các chức năng nhận diện giọng nói, GPS và Google Maps Phía server sử dụng lập trình web service, và việc giao tiếp giữa client và web service được thực hiện thông qua giao thức SOAP.
Nhóm nghiên cứu tại Carnegie Mellon đã phát triển các mô hình ngôn ngữ mạnh mẽ nhằm hỗ trợ việc nhận diện giọng nói tiếng Việt Các công cụ này giúp cải thiện độ chính xác trong việc nhận diện và xử lý ngôn ngữ tự nhiên, phục vụ cho nhiều ứng dụng khác nhau trong lĩnh vực công nghệ thông tin.
Theo nghiên cứu, nhóm đã thực hiện thí nghiệm với một nhân diện giọng nói và đưa ra hai ngưỡng chấp nhận cho phần mềm Ngưỡng chấp nhận đúng 100% được xác định là từ 0.7 trở lên, trong khi ngưỡng chấp nhận sai 100% là từ 0.3 trở xuống.
ÓNG GÓP M I VÀ H N CH C A TÀI
ÓNG GÓP C A TÀI
V m t xã h i, lu n v n này có th ng d ng đ giúp gi m thi u tình tr ng “h c h , thi h ” đang còn t n t i trong môi tr ng giáo d c i H c hi n nay n c ta
V m t công ngh , lu n v n xây d ng h th ng ph n m m đi m danh sinh viên theo mô hình client – server, client là các thi t b đi n tho i di d ng ch y h đi u hành
Android và Server là webservice được phát triển bằng ngôn ngữ C#, với hệ thống xác thực danh tính được sử dụng cho nhận diện giọng nói Hệ thống này có thể áp dụng trong thực tiễn đời sống, đặc biệt là trong môi trường đào tạo và giáo dục Nhóm cũng đã thử nghiệm một hệ thống nhận diện giọng nói đạt độ chính xác 100% khi tỷ lệ là 0.7, trong khi độ chính xác 100% giảm xuống còn 0.3 khi tỷ lệ thấp hơn.
H N CH CU TÀI
Kết quả nghiên cứu cho thấy tính kh quan của người dùng rất cao Bên cạnh những mặt tích cực của hệ thống, nhóm nghiên cứu đã phát hiện ra những hạn chế của người dùng, nhất là trong trường hợp những bạn sinh viên muốn ghi danh bậc của mình Để đáp ứng yêu cầu này, việc phát các file đã được ghi âm sẵn là một giải pháp khả thi.
H NG PHÁT TRI N C A TÀI
Hệ thống nhận diện giọng nói có thể giúp giảm bớt tình trạng “đi học, thi hộ” đang gia tăng trong môi trường giáo dục hiện nay Việc triển khai hệ thống này vào thực tiễn ngày càng trở nên đơn giản Hiện nay, hầu hết sinh viên đều có một chiếc điện thoại thông minh chạy hệ điều hành Android Bước đầu tiên là xây dựng mô hình âm thanh bằng cách ghi âm giọng nói của các sinh viên, sau đó tiến hành huấn luyện Tiếp theo là cài đặt phía client, tức là phần mềm điểm danh sinh viên trên điện thoại, và cài đặt phía server, bao gồm thiết lập web service để xử lý yêu cầu điểm danh Cuối cùng, chúng ta cần cập nhật cơ sở dữ liệu về thời khóa biểu của sinh viên.