ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO ĐỒ ÁN 2
Đề tài: Xây dựng ứng dụng hỗ trợ học tiếng anh
tăng tính thích nghi và tương tác
Giảng viên hướng dẫn: Nguyễn Thị Thanh Trúc
Nhóm thực hiện:
19522213 - Nguyễn Võ Đức Thắng
19522494 - Nguyễn Dương Tùng
TP. HỒ CHÍ MINH, 2022
LỜI CẢM ƠN
Trong quá trình học tập, nghiên cứu và phát triển đề tài “Xây dựng ứng dụng hỗ trợ học tiếng anh
tăng tính thích nghi và tương” chúng em đã nhận được sự giúp đỡ, chỉ bảo nhiệt tình của cơ để
hồn thành đồ án này.
Nhóm em xin chân thành gửi lời cảm ơn đến cô Nguyễn Thị Thanh Trúc – Giảng viên Khoa Công
nghệ phần mềm, Trường Đại học Công nghệ thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh
– giảng viên dạy hướng dẫn mơn Đồ án 1, đã tận tình hướng dẫn và giúp đỡ về kiến thức, phương
pháp cho chúng em trong suốt q trình thực hiện và hồn thành đồ án.
Hi vọng với sự chỉ bảo và góp ý từ cơ, nhóm đề tài có thể tiếp tục phát triển để ứng dụng ngày
càng được mở rộng và phục vụ được tốt hơn cho người dùng.
Mặc dù đã có nhiều cố gắng trong suốt q trình thực hiện đề tài, song khơng thể tránh khỏi những
hạn chế, thiếu sót. Chúng em mong rằng sẽ nhận được những đóng góp và nhận xét chân thành từ
thầy, các bạn sinh viên và người dùng trong quá trình sử dụng phần mềm để phần mềm ngày càng
hồn thiện hơn nữa.
Mỗi ý kiến đóng góp của thầy và các bạn sẽ là một nguồn động lực to lớn đối với chúng em để
chúng em có thể cải thiện phần mềm tốt hơn và xây dựng những phần mềm hữu ích đối với người
dùng hơn nữa.
Chúc cơ sức khỏe, thành cơng và hạnh phúc.
Trân trọng.
Nhóm thực hiện.
Tp. Hồ Chí Minh, 20/06/2022
NỘI DUNG
Chương 1: GIỚI THIỆU
1
1. Đặt vấn đề
1
2. Giải pháp
1
3. Mục tiêu
1
Chương 2: TỔNG QUAN
1. Tổng quan về đồ án
2
2
1.1.
Tên đồ án:
2
1.2.
Link Github:
2
2. Cơ sở lý thuyết
2
Nền tảng Cross Platform
2
2.1.1.
Cross Platform là gì?
2
2.1.2.
Ưu điểm, nhược điểm của Cross Platform
3
2.1.
2.2.
Restful API
3
2.2.1.
Khái niệm Restful
3
2.2.2.
Hoạt động của Restful
4
2.2.3.
Web API
4
2.3.
Công nghệ sử dụng
4
2.3.1.
Ngôn ngữ lập trình Dart
4
2.3.2.
Flutter framework
5
2.3.3.
Firebase
6
2.3.4.
Android Studio
7
2.3.5.
Ưu nhược điểm
8
2.4.
Optical Character Recognition (ORC)
2.5.
Text-to-speech (TTS)
12
2.6.
Speech-to-text (STT)
13
Chương 3: PHÂN TÍCH, THIẾT KẾ
8
14
1. Cơ sở dữ liệu
14
1.1.
Sơ đồ lớp
14
1.2.
Chi tiết các thuộc tính
14
1.2.1.
User
14
1.2.2.
Dictionary
15
1.2.3.
Question Catalog
15
1.2.4.
Slide Model
15
2. u cầu chức năng
16
2.1.
Sơ đồ use case
16
2.2.
Mơ tả tác nhân
16
2.3.
Mô tả use case
17
3. Đặc tả use case
17
3.1.
17
Eng - Viet dictionary
3.1.1.
Use case
17
3.1.2.
Activity diagram
18
Eng - Eng dictionary
18
3.2.
3.2.1.
Use case
18
3.2.2.
Activity diagram
19
3.3.
Using microphone
19
3.3.1.
Use case
19
3.3.2.
Activity diagram
19
3.4.
Flash card
19
3.4.1.
Use case
19
3.4.2.
Activity diagram
20
3.5.
Quiz catalog
20
3.5.1.
Use case
20
3.5.2.
Activity diagram
21
3.6.
Sign up
21
3.6.1.
Use case
21
3.6.2.
Activity diagram
22
3.7.
Sign in
22
3.7.1.
Use case
22
3.7.2.
Activity diagram
23
3.8.
Log out
23
3.8.1.
Use case
23
3.8.2.
Activity diagram
24
4. Thiết kế giao diện
25
4.1.
Onboarding
25
4.2.
Login
29
4.3.
Sign up
30
4.4.
Dictionary Screen
31
4.5.
Translate
33
4.6.
Drawer
34
4.7.
Catalog
35
4.8.
Flash card
37
Chương 4: BẢNG PHÂN CÔNG CÔNG VIỆC
40
Chương 5: NHẬN XÉT VÀ HƯỚNG PHÁT TRIỂN
41
1. Nhận xét
41
1.1.
Kết quả đạt được
41
1.2.
Đánh giá về ứng dụng
41
2. Hướng phát triển và mở rộng
41
Chương 1: GIỚI THIỆU
1. Đặt vấn đề
Ngày nay, tiếng Anh là một trong những ngôn ngữ phổ biến nhất thế giới, việc có thể sử dụng
tiếng Anh là một lợi thế rất lớn đối với công việc cũng như cuộc sống hằng ngày. Vì thế, một
ứng dụng giúp cho việc học tiếng Anh là rất cần thiết trong môi trường hiện nay. Ứng dụng giúp
cho việc tiếp cận kiến thức tiếng Anh một cách trực quan và dễ dàng hơn.
2. Giải pháp
Nhận thấy tình hình trên, nhóm chúng em đã lên ý tưởng xây dựng một ứng dụng hỗ trợ việc học
từ vựng tiếng Anh và dịch thuật các văn bản sang tiếng Việt cũng như những trò chơi giúp ích
cho việc học tiếng Anh một cách trực quan hơn để đáp ứng nhu cầu rất lớn đối của người dùng
trong thời buổi hiện nay.
3. Mục tiêu
Xây dựng được ứng dụng đáp ứng được việc hỗ trợ học tiếng anh tăng tính tương tác và thích
nghi cho người dùng. Phần ứng giao diện đáp ứng được các yêu cầu về UX/UI, tăng tính sinh
động, dễ sử dụng và có thẩm mỹ. Nội dung, ý nghĩa các từ vựng được kiểm duyệt và đạt chất
lượng.
1
Chương 2: TỔNG QUAN
1. Tổng quan về đồ án
1.1. Tên đồ án:
● Tên tiếng việt: Xây dựng ứng dụng hỗ trợ học tiếng anh tăng tính thích nghi và tương tác.
● Tên tiếng anh: Lett.
1.2. Link Github:
● Link Github đồ án: Link
2. Cơ sở lý thuyết
2.1. Nền tảng Cross Platform
2.1.1. Cross Platform là gì?
“Trong cơng nghệ điện tốn, đa nền tảng (tiếng Anh: cross-platform hay multi- platform) là một
thuật ngữ chỉ các phần mềm máy tính hay các phương thức điện toán và các khái niệm được thực
thi đầy đủ và vận hành cùng nhau trên nhiều nền tảng máy tính. Phần mềm đa nền tảng có thể
được chia thành hai loại; một loại yêu cầu phải thiết kế hoặc biên dịch từng phiên bản cho mỗi
nền tảng nó hỗ trợ; loại kia có thể chạy trực tiếp trên bất cứ nền tảng nào mà không cần sự chuẩn
bị thêm đặc biệt nào - chẳng hạn như phần mềm được viết bằng một ngôn ngữ thông dịch hay
được biên dịch trước sang mã bytecode có khả năng di động bằng một trình thơng dịch hay các
gói run-time thường dùng hoặc là thành phần tiêu chuẩn trên mọi nền tảng”.
Cross platform hay Multi Platform là một nền tảng đa ứng dụng. Hiểu đơn giản hơn là chỉ với
một bản code, bạn có thể phiên dịch và sử dụng nó trên nhiều nền tảng ứng dụng khác nhau, giúp
bạn tiết kiệm được cơng sức và thời gian đáng kể.
Chính vì lợi thế đó mà Cross platform được ưa chuộng bởi rất nhiều lập trình viên hiện nay.
Ngồi ra, khi lập trình, bạn cần phải lựa chọn tuỳ theo ưu, nhược điểm của một Framework bởi
Cross platform sử dụng Framework đa nền tảng.
Đến thời điểm hiện tại, React-Native, Xamarin và Flutter theo thứ tự được xem là 3 frameworks
phổ biến nhất cho phép phát triển app trên smartphone sử dụng các hệ điều hành, hay nền tảng
khác nhau (cross-platform mobile development), mà thông dụng nhất là iOS và
Android. Với các frameworks này, một chương trình được viết có thể chạy trên tất cả các nền
tảng; cụ thể hơn, chỉ cần phát triển 1 project nhưng có thể tạo ra các apps chạy trên smartphone
sử dụng iOS, Android.
Sự xuất hiện các frameworks nói trên đã hình thành các trường phái và cộng đồng phát triển app,
kèm theo là những tranh luận về việc đánh giá xếp hạng cho các frameworks này.
2.1.2. Ưu điểm, nhược điểm của Cross Platform
Ưu điểm:
•
Có thể sử dụng một bản code trên nhiều phiên bản khác nhau.
•
Sử dụng Cross platform sẽ giúp tiết kiệm được lượng lớn chi phí và cơng sức viết code.
•
Cross platform thích hợp với những dự án lớn, địi hỏi tính linh hoạt và đa dạng.
Nhược điểm:
•
Chưa có khả năng khai thác thư viện của những nền tảng lớn như Android hoặc iOS dù
nó tiết kiệm được chi phí và có tính linh hoạt cao.
•
Q trình cấp phép cho cơng nghệ của ứng dụng Cross platform gặp nhiều khó khăn và
phức tạp.
2.2. Restful API
2.2.1. Khái niệm Restful
API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng
dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác. API có thể trả về
dữ liệu ở những kiểu dữ liệu phổ biến như JSON hay XML.
Restful (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến
trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để tạo giao tiếp giữa các máy. Vì vậy,
thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu
HTTP như GET, POST, DELETE,… đến một URL để xử lý dữ liệu.
Rest API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để quản lý
các resource. RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để
cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau.
3
Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (như GET,
POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản các resource.
RESTful không quy định logic code ứng dụng và khơng giới hạn bởi ngơn ngữ lập trình ứng
dụng, bất kỳ ngơn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API.
2.2.2. Hoạt động của Restful
REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên sẽ sử dụng
những phương thức HTTP riêng.
•
GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
•
POST (CREATE): Tạo mới một Resource.
•
PUT (UPDATE): Cập nhật thơng tin cho Resource.
•
DELETE (DELETE): Xố một Resource.
Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read,
Update, Delete – Tạo, Đọc, Sửa, Xóa.
2.2.3. Web API
Web API hay ASP.NET Web API là một framework dùng để xây dựng và lập trình các dịch vụ
web HTTP. Nó có dạng là một RESTful API hiện đại, hội tụ đủ các điều kiện của REST cũng
như các tiêu chuẩn tương tự, được tối ưu cho các dịch vụ trực tuyến cũng như ứng dụng web
hiện nay.
2.3. Công nghệ sử dụng
2.3.1. Ngôn ngữ lập trình Dart
Tổng quan:
Dart là ngơn ngữ lập trình đa mục đích ban đầu được phát triển bởi Google và sau đó được Ecma
(ECMA-408) phê chuẩn làm tiêu chuẩn. Nó được sử dụng để xây dựng các ứng dụng web, server,
máy tính để bàn và thiết bị di động. Dart là một ngôn ngữ hướng đối tượng, được xác định theo
lớp, với cơ chế garbage-collected, sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript. Nó
hỗ trợ interface, mixin, abstract, generic, static typing và sound type (2 cái cuối có thể hiểu là
type-safe). Dart là ngơn ngữ mã nguồn mở và miễn phí, được phát triển trên GitHub.
Ưu nhược điểm:
•
Năng suất Cú pháp Dart rõ ràng và súc tích, cơng cụ của nó đơn giản nhưng mạnh mẽ.
Type-safe giúp bạn xác định sớm các lỗi tinh tế. Dart có các thư viện cốt lõi và một hệ
sinh thái gồm hàng ngàn package.
•
Nhanh Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có được dự đốn hiệu
suất cao và khởi động nhanh trên các thiết bị di động và web.
•
Di động Dart biên dịch thành mã ARM và x86, để các ứng dụng di động của Dart có thể
chạy tự nhiên trên iOS, Android và hơn thế nữa. Đối với các ứng dụng web, chuyển mã
từ Dart sang JavaScript.
•
Dễ gần Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú pháp và định hướng
đối tượng khơng gây ngạc nhiên của nó. Nếu bạn đã biết C ++, C # hoặc Java, bạn có thể
làm việc hiệu quả với Dart chỉ sau vài ngày.
•
Reactive Dart rất phù hợp với lập trình Reactive, với sự hỗ trợ để quản lý các đối tượng
tồn tại trong thời gian ngắn, chẳng hạn như các widget UI, thông qua phân bổ đối tượng
nhanh và GC. Dart hỗ trợ lập trình khơng đồng bộ thơng qua các tính năng ngôn ngữ và
API sử dụng các đối tượng Future và Stream.
2.3.2. Flutter framework
Tổng quan:
Flutter là mobile UI framework của Google để tạo ra các giao diện chất lượng cao trên iOS và
Android trong khoảng thời gian ngắn. Flutter hoạt động với những code sẵn có được sử dụng
bởi các lập trình viên, các tổ chức.
Ưu nhược điểm:
Ưu điểm:
•
Mạnh về animation, performance app rất cao
•
Giao tiếp gần như trực tiếp với native
•
Static language nhưng với syntax hiện đại, compiler linh động giữa AOT (for archive,
build prod) và JIT (for development, hot reload)
•
Có thể chạy được giả lập mobile ngay trên web, tiện cho development. Các metric
measure performance được hỗ trợ sẵn giúp developer kiểm sốt tốt performance của app.
•
Có thể dùng để build các bundle/framework gắn và app native để tăng performance.
5
Khuyết điểm:
•
Bộ render UI được team author gần như viết lại, khơng liên quan tới UI có sẵn của
Framework native, dẫn đến memory sử dụng khá nhiều.
•
Phải học thêm ngơn ngữ DART, BLOC pattern, DART Streaming
•
Do là một framework có tuổi đời rất trẻ, cộng đồng dù vẫn đang phát triển rất nhanh,
nhưng ở Việt Nam thì mới nổi lên 2 năm gần đây.
2.3.3. Firebase
Tổng quan:
Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud. Kèm theo đó là hệ
thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính là giúp người dùng lập trình ứng
dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu.
Cụ thể là những giao diện lập trình ứng dụng API đơn giản. Mục đích nhằm tăng số lượng người
dùng và thu lại nhiều lợi nhuận hơn.
Ưu nhược điểm:
Ưu điểm:
•
Tạo tài khoản và sử dụng dễ dàng
•
Tốc độ phát triển nhanh
•
Nhiều dịch vụ trong một nền tảng
•
Được cung cấp bởi Google
•
Tập trung vào phát triển giao diện người dùng
•
Firebase khơng có máy chủ
•
Học máy (Machine Learning)
•
Tạo lưu lượng truy cập
•
Theo dõi lỗi
•
Sao lưu
Nhược điểm:
•
Khơng phải là mã nguồn mở
•
Người dùng khơng có quyền truy cập mã nguồn
•
Firebase không hoạt động ở nhiều quốc gia
•
Chỉ hoạt động với Cơ sở dữ liệu NoSQL
•
Truy vấn chậm
•
Khơng phải tất cả các dịch vụ Firebase đều miễn phí
•
Firebase khá đắt và giá khơng ổn định
•
Chỉ chạy trên Google Cloud
•
Thiếu Dedicated Servers và hợp đồng doanh nghiệp
•
Khơng cung cấp các API GraphQL
2.3.4. Android Studio
Tổng quan:
Android Studio là IDE chính thức trong phát triển ứng dụng Android, dựa trên IntelliJ IDEA.
Chức năng của Android Studio là cung cấp giao diện để tạo các ứng dụng và xử lý phần lớn các
công cụ quản lý file phức tạp đằng sau hậu trường. Ngôn ngữ lập trình được sử dụng là Java và
được cài đặt riêng trên thiết bị.
Với khả năng đáng mong đợi từ IntelliJ, Android Studio cịn cung cấp:
•
Hệ thống Gradle-based linh hoạt
•
Xây dựng các biến thể và tạo nhiều tệp APK
•
Code các mẫu template để hỗ trợ các tính năng app thơng thường
•
Chỉnh sửa bố cục đa dạng với khả năng kéo và thả theme
•
Cơng cụ lint giúp nắm bắt hiệu suất, khả năng sử dụng, phiên bản tương thích và các vấn
đề khác.
•
ProGuard và ứng dụng ký app-signing
•
Hỗ trợ tích hợp trên Google Cloud Platform, cho phép dễ dàng tích hợp Google Cloud
Messaging và App Engine.
Tính năng cơ bản:
•
Project và cấu trúc tệp
o Chế độ xem project trên Android
•
Hệ thống Android Build
7
o Tùy chỉnh, cấu hình và mở rộng quá trình thiết kế, kiến trúc.
o Trình quản lý thiết bị ảo của Android (AVD)
o Inline debugging
•
Bộ nhớ và màn hình CPU
•
Truy cập file dữ liệu
Ưu nhược điểm
2.3.5.
Ưu điểm
•
Được phát triển bới Google, cũng là chủ sở hữu của hệ điều hành Android
•
Các cơng cụ hỗ trợ và được cập nhật mới nhất và đầy đủ
•
Các tính năng dễ làm quen và giao diện thân thiện, nó là điểm cộng lớn.
•
Có các tài liệu tham khảo và hướng dẫn đầy đủ và rõ ràng cũng như các diễn đàn dành
cho các lập trình viên Android.
Nhược điểm
•
Là cơng cụ hỗ trợ tích hợp tất cả nên dữ liệu phải phát triển tối ưu nhất. Lượng lớn dữ
liệu chiếm nhiều không gian bộ nhớ máy tính của bạn.
•
Có thể kiểm tra được cash hoạt động của app thông qua giả lập của Android studio nên
nó làm đơ máy, lag, nóng máy tính của vạn và gây tiêu tốn nhiều pin của laptop.
•
Android là một cơng cụ lập trình hỗ trợ mạnh mẽ với các hỗ trợ và cập nhật các tính năng
mới nhất, liên tục từ google. Google đã khắc phục được các vấn đề tối ưu được tài nguyên
máy tính giúp giảm bớt được Android Studio quá nặng trên các máy tính cũ
2.4. Optical Character Recognition (ORC)
Tổng quan:
Optical Character Recognition (Nhận dạng ký tự quang học) là một trong những vấn đề đầu tiên
của nghiên cứu về công nghệ nhân tạo (artificial technology). ORC là được mơ tả như là một
q trình chuyển đổi chữ viết tay, chữ in,… sang dạng kỹ thuật số. ORC hiện nay là một trong
những lĩnh vực quan trọng trong trí tuệ nhân tạo, pattern recognition, và thị giác máy tính.
Lịch sử:
Ý tưởng của ORC xuất hiện năm 1913 khi mà tiến sĩ Edmund Fournier d’Albe phát triển
Optophone để quét và chuyển đổi chữ thành âm thanh phục vụ cho những người bị suy giảm
chức năng. Kể từ đây, ORC có những bước phát triển khác nhau và phục vụ trên nhiều lĩnh vực.
Thập niên 90s, công nghệ này trở nên phát triển vượt bậc và bùng nổ với xu hướng số hóa các
loại báo chí. Thêm vào đó, sự phát triển của công nghệ, kỹ thuật, điện thoại thông minh đã làm
công nghệ OCR phát triển đến những tầm cao mới.
Định nghĩa:
Nhận dạng ký tự quang học đề cập đến
công nghệ phần mềm nhận dạng điện tử
văn bản (viết hoặc in) bên trong tệp
hình ảnh hoặc tài liệu vật lý, chẳng hạn
như tài liệu được quét và chuyển đổi nó
thành dạng văn bản có thể đọc được
bằng máy để sử dụng cho q trình xử
lý dữ liệu. Nó cịn được gọi là nhận
dạng văn bản.
Nói tóm lại, phần mềm nhận dạng ký tự quang học giúp chuyển đổi hình ảnh hoặc tài liệu vật lý
thành dạng có thể lưu trữ điện tử và trích xuất. Ví dụ về OCR là cơng cụ trích xuất văn bản, trình
chuyển đổi PDF sang .txt và chức năng tìm kiếm hình ảnh của Google.
Phương thức & hoạt động:
Ý tưởng của OCR rất rõ ràng, so sánh chữ viết thuần túy hoặc có thể áp dụng một số cơng nghệ
để tăng cường tính chính xác khi nhận dạng như là máy học. Việc triển khai một chức năng OCR
có thể gặp một số khó khăn bởi một số tác nhân như là sự đa dạng và khác biệt bởi các font chữ,
sự hình thành từ hoặc câu. Ví dụ, OCR có thể gặp khó khăn lớn với các loại chữ viết tay, thủ
cơng
Tồn bộ q trình OCR bao gồm một loạt các bước chủ yếu bao gồm ba mục tiêu: tiền xử lý
hình ảnh, nhận dạng ký tự và xử lý hậu kỳ. (pre-processing of the image, character recognition,
and post-processing the specific output.)
Các bước xử lý chính của OCR có thể đơn giản hóa như sau:
9
Bước 1: Qt tài liệu/đối tượng cần trích xuất text.
Có thể nói, đây là một bước chính trong quy trình ORC, ở bước nay, đầu vào là hình ảnh sẽ được
chuẩn hóa. Hình ảnh ở bước này nếu được tối ưu tốt sẽ nâng cao năng suất của toàn bộ quy trình
ORC.
Bước 2: Tối ưu, căn chỉnh hình ảnh.
Trong bước này, phần mềm nhận dạng ký tự quang học sẽ cải thiện các đặc điểm và tính chất
của tài liệu cần được chụp. Mọi khuyết điểm như nhiễu ảnh, nhiễu hạt đều được loại bỏ và các
cạnh, cũng như các điểm ảnh, được làm mịn để có được văn bản đơn giản và rõ ràng. Bước này
giúp chương trình nắm bắt dễ dàng hơn và có thể "nhìn thấy" rõ ràng các từ được nhập vào mà
khơng có vết nhịe hoặc vùng tối/vùng sáng khơng đều.
Bước 3: “Thập phân hóa” dữ liệu (Binarization).
Hình ảnh đầu vào sau khi đã được tối ưu, được chuyển về dạng dữ liệu nhị phân, chỉ bao gồm
các điểm ảnh trên gray-scale (chỉ đen trắng), vùng tối sẽ được xác định như là vùng từ ngữ cần
trích xuất. Đồng thời, vùng sáng sẽ được xác định là nền hình ảnh. Bước này nhằm mục đích áp
dụng phân đoạn cho tài liệu để dễ dàng phân biệt nền và văn bản, cho phép nhận dạng các ký tự
một cách tối ưu.
Bước 4: Nhận dạng ký tự.
Trong bước này, các vùng màu đen được xử lý thêm để xác định các chữ cái hoặc chữ số. Thông
thường, OCR tập trung vào một ký tự hoặc khối văn bản tại một thời điểm. Việc nhận dạng các
ký tự được thực hiện bằng cách sử dụng một trong hai thuật tốn sau:
•
Nhận dạng mẫu (pattern recognition). Thuật tốn nhận dạng mẫu bao gồm việc chèn văn
bản ở các phông chữ và định dạng khác nhau vào phần mềm OCR. ORC sẽ so sánh các
font chữ đã được nạp với hình ảnh được ghi nhận từ bước trước, ký tự có độ tương đồng
xấp xỉ lớn nhất sẽ được ghi nhận.
•
Nhận dạng đặc trưng (feature detection). Thơng qua thuật tốn feature detection, OCR
áp dụng các quy tắc xem xét các đặc trưng và cấu tạo của một chữ cái hoặc số nhất định
để xác định các ký tự trong tài liệu được quét. Ví dụ về các đối tượng ký tự bao gồm số
lượng đường thẳng góc, đường gạch chéo hoặc đường cong được sử dụng để so sánh và
xác định các ký tự.
OCR đơn giản so sánh các pixel của mọi chữ cái được quét với cơ sở dữ liệu hiện có để xác định
ký tự trùng khớp nhất. Tuy nhiên, các dạng OCR tinh vi chia mọi ký tự thành các thành phần
của nó, chẳng hạn như đường cong và góc, để so sánh và khớp các đặc điểm vật lý với các chữ
cái tương ứng.
Bước 5: Kiểm tra tính chính xác.
Sau khi nhận dạng thành công các ký tự, kết quả được tham chiếu chéo bằng cách sử dụng từ
điển của OCR để đảm bảo độ chính xác. Việc đo độ chính xác của OCR được thực hiện bằng
cách lấy đầu ra của một phân tích được thực hiện bởi OCR và so sánh nó với nội dung của phiên
bản gốc.
Có hai phương pháp điển hình để phân tích độ chính xác của phần mềm OCR:
•
Độ chính xác ở cấp độ ký tự, đếm số lượng ký tự được phát hiện một cách chính xác.
•
Độ chính xác cấp độ từ, đếm số từ đã được nhận dạng chính xác.
Trong hầu hết các trường hợp, độ chính xác 98-99% là tỷ lệ chính xác có thể chấp nhận được,
được đo ở cấp độ trang. Điều này có nghĩa là trong một trang có khoảng 1.000 ký tự, OCR phải
xác định chính xác 980-990 ký tự.
Ứng dụng & lợi ích:
ORC có ứng dụng ở rất nhiều lĩnh vực: đọc biển số xe, đọc biển báo, số hóa tài liệu,…
Nhận dạng ký tự quang học mang lại nhiều lợi những lợi ích quan trọng nhất của OCR được liệt
kê dưới đây:
•
Cải thiện tính chính xác: Nhận dạng ký tự dựa trên phần mềm giúp loại bỏ lỗi của con
người, giúp cải thiện độ chính xác.
•
Tăng tốc các quy trình: Cơng nghệ chuyển đổi dữ liệu phi cấu trúc thành thơng tin có thể
tìm kiếm được, cung cấp dữ liệu cần thiết có sẵn với tốc độ nhanh hơn và sau đó tăng tốc
các quy trình.
•
Hiệu quả về chi phí: Cơng nghệ OCR khơng yêu cầu nhiều tài nguyên giúp giảm chi phí
xử lý và sau đó giảm chi phí tổng thể.
•
Nâng cao sự hài lòng của khách hàng: Khả năng truy cập dữ liệu có thể tìm kiếm của
khách hàng đảm bảo trải nghiệm tốt, đảm bảo sự hài lòng của khách hàng tốt hơn.
11
•
Cải thiện năng suất.
2.5. Text-to-speech (TTS)
Tổng quan:
Chuyển văn bản thành giọng nói (TTS) là một loại cơng nghệ hỗ trợ đọc to văn bản kỹ thuật số.
Đơi khi nó được gọi là cơng nghệ “read aloud”. TTS có thể lấy các kỹ từ, câu từ và chuyển đổi
chúng thành âm thanh. TTS thường sử
dụng các công nghệ như Natural Language
Processing (NLP) và
Digital Signal
Processing (DSP) để chuyển đổi text thành
âm thanh.
Phương thức & hoạt động:
Hoạt động của một module Text-to-speech có thể chia thành đơn giản như sau:
Bước 1: Tổng hợp ký tự thành từ.
Đây là bước đầu tiên, mà thường được gọi là tiền xử lý hoặc chuẩn hóa, tất cả đều nhằm giảm
sự mơ hồ: đó là việc thu hẹp nhiều cách khác nhau mà bạn có thể đọc một đoạn văn bản thành
cách thích hợp nhất. Q trình tiền xử lý bao gồm việc xem qua văn bản và làm sạch nó để máy
tính ít mắc lỗi hơn khi thực sự đọc to các từ. Những thứ như số, ngày, giờ, chữ viết tắt, từ viết
tắt và các ký tự đặc biệt (ký hiệu tiền tệ, v.v.) cần phải được chuyển thành từ - và điều đó khó
hơn âm thanh của nó.
Bước 2: Tổng hợp từ thành âm vị.
Định nghĩa của âm vị là các mà một ký tự, từ, được đọc. Một bộ dữ liệu từ điển về âm vị, quy
tắc chuyển đổi âm vị được cho sẵn để quy định cách mà một từ được đọc như thế nào.
Bước 3: Tổng hợp âm vị thành âm thanh.
Có ba cách tiếp cận khác nhau.
•
Sử dụng bản ghi âm của con người nói các âm vị.
•
Để máy tính tự tạo ra các âm vị bằng cách tạo ra các tần số âm thanh cơ bản (hơi giống bộ
tổng hợp âm nhạc)
•
Bắt chước cơ chế của giọng nói con người.
2.6. Speech-to-text (STT)
Tổng quan:
Chuyển đổi giọng nói sang văn bản là quá trình chuyển đổi lời nói thành văn bản viết. Q trình
này cũng thường được gọi là nhận dạng giọng nói. Mặc dù các thuật ngữ này gần như đồng
nghĩa, nhưng tính năng Nhận dạng giọng nói đơi khi được sử dụng để mơ tả quy trình rộng hơn
của việc trích xuất ý nghĩa từ giọng nói, tức là hiểu giọng nói. Thuật ngữ nhận dạng giọng nói
nên tránh vì nó thường được liên kết với quá trình xác định một người từ giọng nói của họ, tức
là nhận dạng người nói.
Phương thức & hoạt động:
Tất cả các hệ thống chuyển lời nói thành văn bản đều dựa vào ít nhất hai mơ hình: mơ hình âm
học và mơ hình ngơn ngữ (acoustic model and language model). Ngoài ra, hệ thống từ vựng lớn
sử dụng mơ hình phát âm. Điều quan trọng là phải hiểu rằng khơng có cái gọi là cơng cụ nhận
dạng giọng nói phổ biến. Để có được chất lượng phiên âm tốt nhất, tất cả các mô hình này có thể
chun biệt cho một ngơn ngữ, phương ngữ, miền ứng dụng, loại giọng nói và kênh giao tiếp
nhất định.
Giống như bất kỳ công nghệ nhận dạng mẫu nào khác, nhận dạng giọng nói khơng thể khơng có
lỗi. Độ chính xác của bản ghi lời nói phụ thuộc nhiều vào người nói, phong cách nói và điều kiện
mơi trường. Nhận dạng giọng nói là một q trình khó hơn những gì mọi người thường nghĩ,
ngay cả đối với một con người. Con người quen với việc hiểu giọng nói, khơng phải phiên âm
nó, và chỉ những bài phát biểu được xây dựng đúng cơng thức mới có thể được phiên âm mà
không bị mơ hồ.
Theo quan điểm của người dùng, hệ thống chuyển lời nói thành văn bản có thể được phân loại
dựa trên cách sử dụng của nó: lệnh và điều khiển, hệ thống hộp thoại, đọc chính tả văn bản, phiên
âm tài liệu âm thanh, v.v. Mỗi cách sử dụng có yêu cầu cụ thể về độ trễ, hạn chế về bộ nhớ , kích
thước từ vựng và các tính năng thích ứng.
13
Chương 3: PHÂN TÍCH, THIẾT KẾ
1. Cơ sở dữ liệu
1.1. Sơ đồ lớp
1.2. Chi tiết các thuộc tính
1.2.1. User
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
uid
String
ID của người dùng
2
name
String
Tên của người dùng
3
email
String
Email của người dùng
4
password
String
Mẫu khẩu người dùng
1.2.2. Dictionary
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
uid
String
ID của từ vựng
2
word
String
Từ vựng người dùng nhập vào
3
phonetic
String
Phiên âm từ vựng
4
partOfSpeech
String
Tính chất từ vựng
5
defiton
String
Nghĩa của từ vựng
6
synonyms
String
Từ đồng nghĩa
7
antonyms
String
Từ trái nghĩa
1.2.3. Question Catalog
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
uid
String
ID của câu hỏi
2
title
String
Câu hỏi
3
description
String
Mô tả câu hỏi
4
questionData
String
Câu trả lời
1.2.4. Slide Model
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
uid
String
ID của slide
2
imageAsset
Path
String
Path của hình ảnh
3
title
String
Chủ đề
4
description
String
Mơ tả slide
15
2. Yêu cầu chức năng
2.1. Sơ đồ use case
2.2. Mô tả tác nhân
STT
Tên tác nhân
Mô tả
User
Người dùng từ điển
STT
Tên chức năng
Mô tả
1
Eng - Viet dictionary
Dịch từ vựng từ tiếng Anh sang tiếng Việt
2
Eng - Eng dictionary
Dịch từ vựng Anh - Anh
3
Using photo
Sử dụng máy ảnh quét từ vựng và dịch nó
4
Using microphone
Sử dụng microphone để quét từ vựng và dịch nó
5
Flash card
Sử dụng flashcard để tăng khả năng học từ vựng
6
Quiz catalog
Sử dụng câu hỏi để tăng khả năng học từ vựng
7
Sign in
Đăng nhập vào ứng dụng
8
Sign up
Đăng ký sử dụng ứng dụng
9
Log out
Đăng xuất khỏi ứng dụng
1
2.3. Mô tả use case
3. Đặc tả use case
3.1. Eng - Viet dictionary
3.1.1. Use case
Tên use case
Eng - Viet dictionary
Mô tả
Người dùng tra từ điển anh việt hoặc tra một đoạn văn tiếng Anh
sang tiếng Việt
Tác nhân
User
Điều kiện trước
User phải đăng nhập
Điều kiện sau
Không
Ngoại lệ
Không
Các yêu cầu đặc biệt
Từ vựng phải có nghĩa và khơng chứa kí tự đặc biệt
17
3.1.2. Activity diagram
3.2. Eng - Eng dictionary
3.2.1. Use case
Tên use case
Eng - Eng dictionary
Mô tả
Người dùng tra từ điển anh - anh và các từ đồng nghĩa trái nghĩa
của nó
Tác nhân
User
Điều kiện trước
User phải đăng nhập
Điều kiện sau
Không
Ngoại lệ
Không
Các yêu cầu đặc biệt
Từ vựng phải có nghĩa và khơng chứa kí tự đặc biệt hay số
Từ vựng chỉ gồm 1 từ
3.2.2. Activity diagram
3.3. Using microphone
3.3.1. Use case
Tên use case
Using microphone
Mô tả
Người dùng tra từ điển bằng microphone
Tác nhân
User
Điều kiện trước
User phải đăng nhập
Thiết bị cho phép sử dụng Microphone
Điều kiện sau
Khơng
Ngoại lệ
Khơng
Các u cầu đặc biệt
Phát âm phải chính xác
3.3.2. Activity diagram
3.4. Flash card
3.4.1. Use case
Tên use case
Flash card
19
Mơ tả
Người dùng sử dụng flashcard để tăng tính trực quan khi học từ
vựng mới
Tác nhân
User
Điều kiện trước
User phải đăng nhập
Điều kiện sau
Không
Ngoại lệ
Không
Các yêu cầu đặc biệt
Không
3.4.2. Activity diagram
3.5. Quiz catalog
3.5.1. Use case
Tên use case
Quiz catalog
Mô tả
Người dùng trả lời các câu hỏi bằng tiếng anh để làm quen với
mặt chữ tiếng anh
Tác nhân
User