Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp kỹ sư ngành Hệ thống Thông tin với đề tài "Tìm hiểu công nghệ Deep Speech và xây dựng ứng dụng quản lí chi tiêu trên thiết bị di động" (tên tiếng Anh: Study Deep Speech Technology and Develop an Application for Managing Expenses on Mobile Devices) do sinh viên Hoàng Đình Phú (MSSV: 19520838) thực hiện dưới sự hướng dẫn của ThS. Thái Bảo Trân tại Trường Đại học Công nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh (bảo vệ tháng 6/2023).
Lý do chọn đề tài và bối cảnh thực tiễn
Theo trình bày của tác giả, tình hình biến động kinh tế toàn cầu, thiên tai, dịch bệnh và chiến tranh đã gây ảnh hưởng trực tiếp đến thu nhập và tài chính của nhiều cá nhân, gia đình. Việc quản lý chi tiêu và thiết lập kế hoạch tài chính trở nên cấp thiết. Phương pháp ghi chép tài chính truyền thống bằng sổ tay hay bảng tính (như Microsoft Excel) bộc lộ nhiều hạn chế:
- Tốn nhiều thời gian thao tác, đặc biệt bất tiện khi thực hiện trên thiết bị di động.
- Thiếu các công cụ tự động thống kê, phân tích dữ liệu trực quan.
- Dễ phát sinh sai sót, khó tra cứu lại lịch sử giao dịch và người dùng thường xuyên quên ghi chép các khoản chi tiêu nhỏ lẻ trong ngày.
- Việc ghi chép nhiều nội dung lặp đi lặp lại tạo thành rào cản tâm lý khiến người dùng bỏ cuộc.
Việc ứng dụng học máy và công nghệ nhận dạng giọng nói được xác định là giải pháp giảm thiểu thời gian nhập liệu, tự động hóa chuyển đổi giọng nói thành văn bản ghi chú. Từ nhu cầu thực tế của bản thân tác giả và các nhóm đối tượng tương tự, ứng dụng di động mang tên "Heo đất" được nghiên cứu và xây dựng.
Mục tiêu và nhiệm vụ nghiên cứu
Văn bản xác định các mục tiêu và nhiệm vụ cụ thể gồm:
- Nghiên cứu công nghệ nhận dạng giọng nói tự động DeepSpeech (kiến trúc mạng nơ-ron sâu kết hợp mô hình ngôn ngữ N-gram) và quy trình huấn luyện mô hình.
- Khảo sát các ứng dụng quản lý chi tiêu hiện hành trên cửa hàng ứng dụng để rút ra ưu - nhược điểm làm cơ sở thiết kế.
- Nghiên cứu thuật toán thiên văn học và toán học để chuyển đổi lịch âm - dương theo quy chuẩn Việt Nam phục vụ quản lý sự kiện truyền thống và chu kỳ tài chính.
- Thiết kế kiến trúc, cơ sở dữ liệu và giao diện ứng dụng quản lý tài chính cá nhân đa chức năng.
- Triển khai ứng dụng hoàn chỉnh bằng framework Flutter, tích hợp mô hình nhận dạng giọng nói qua kênh nền tảng (Platform Channel), kết nối dịch vụ Google Firebase và phát hành ứng dụng lên cửa hàng Google Play Store.
Đối tượng và phạm vi nghiên cứu
- Đối tượng sử dụng: Cá nhân sinh viên (đặc biệt là tân sinh viên bắt đầu sống tự lập, dễ mất kiểm soát chi tiêu); người làm công việc nội trợ, quản lý tài chính gia đình; thủ quỹ, thư ký quản lý nhiều nguồn tiền và dòng tiền nhỏ lẻ.
- Phạm vi hệ thống và công nghệ: Thiết bị di động chạy hệ điều hành Android; framework giao diện Flutter (phiên bản 3.2, ngôn ngữ Dart); cơ sở dữ liệu cục bộ SQFLite; nền tảng xác thực Firebase Authentication; mô hình học máy DeepSpeech tích hợp thư viện Java thông qua mã nguồn Kotlin trên Android.
- Thời gian và không gian: Nghiên cứu và hoàn thiện vào tháng 6 năm 2023 tại Thành phố Hồ Chí Minh; ứng dụng mục tiêu được xuất bản trên kho ứng dụng Google Play.
Cơ sở lý thuyết và phương pháp
Khóa luận kết hợp giữa nghiên cứu lý thuyết tính toán, mô hình học máy và phương pháp phát triển phần mềm ứng dụng:
Khung lý thuyết và công nghệ sử dụng
- Công nghệ DeepSpeech: Công cụ chuyển đổi tiếng nói thành văn bản (Speech-to-Text) dựa trên thuật toán DeepSpeech của Baidu (Hannun et al., 2014) do Mozilla phát triển. Quá trình xử lý gồm hai giai đoạn chính:
- Dự đoán ký tự (Phiên âm): Luồng âm thanh đầu vào được mạng nơ-ron sâu (Deep Neural Network - DNN) chuyển đổi thành một chuỗi xác suất tương ứng với các ký tự trong bảng chữ cái chỉ định.
- Kiểm tra ngữ pháp và chính tả: Sử dụng mô hình ngôn ngữ N-gram để giải mã chuỗi xác suất thành văn bản hoàn chỉnh, nâng cao độ chính xác cho các từ đồng âm hoặc phát âm gần giống nhau.
- Lõi của DeepSpeech được viết bằng C++, hỗ trợ các liên kết (bindings) với Python, Java, .NET, JavaScript.
- Framework Flutter và ngôn ngữ Dart:
- Ngôn ngữ lập trình Dart (phát triển bởi Lars Bak và Kasper Lund tại Google) hướng đến tối ưu hóa hiệu năng đa nền tảng.
- Flutter (phiên bản ổn định 3.2 phát hành ngày 24/5/2023) có kiến trúc ba tầng: Framework (viết bằng Dart gồm Widgets, Rendering, Animation, Painting); Engine (viết bằng C/C++ xử lý xuất nhập, đồ họa Skia, mạng, vòng đời thông điệp); Embedder (trình nhúng đặc thù cho từng hệ điều hành: Java/C++ cho Android, Objective-C/C++ cho iOS).
- Hệ thống giao diện: Hỗ trợ Material Design (phiên bản 3 - Material You) và thư viện giao diện Cupertino theo chuẩn Human Interface Guidelines của Apple.
- Cơ chế Platform Channel (MethodChannel): Giải pháp cầu nối để Flutter giao tiếp với các API gốc của hệ điều hành. Do DeepSpeech chưa hỗ trợ thư viện Flutter chính thức nhưng có bản dựng cho Java, tác giả sử dụng Kotlin trên Android để gọi API nhận dạng giọng nói và truyền kết quả ngược về lớp Dart.
- Dịch vụ Google Firebase: Tác giả khai thác ba thành phần chính:
- Firebase Authentication: Xác thực người dùng bằng email/mật khẩu, số điện thoại, tài khoản mạng xã hội.
- Firebase Storage: Lưu trữ đối tượng (hình ảnh, tài nguyên người dùng).
- Firebase Test Lab: Kiểm thử tự động trên hệ thống thiết bị thực tế đa dạng của Google Cloud.
- Cơ sở tính toán Âm lịch Việt Nam: Âm dương lịch tính theo múi giờ kinh tuyến 105° Đông (UTC+7). Khóa luận áp dụng 5 nguyên tắc chuẩn:
- Ngày đầu tiên của tháng âm lịch là ngày chứa điểm Sóc (thời điểm Mặt Trăng nằm giữa Trái Đất và Mặt Trời, chu kỳ trung bình khoảng 29,530588853 ngày - tháng công hội).
- Năm bình thường có 12 tháng, năm nhuận có 13 tháng.
- Tiết Đông chí luôn rơi vào tháng 11 âm lịch.
- Trong năm nhuận, tháng đầu tiên sau Đông chí không chứa Trung khí là tháng nhuận.
- Quy đổi mốc thời gian qua số ngày Julius (Julian Day Number - JDN), phân biệt công thức tính trước và sau ngày 15/10/1582 (thời điểm cải cách lịch Gregory).
Phương pháp nghiên cứu
- Phương pháp khảo sát ứng dụng hiện có: Đánh giá định tính và đối chuẩn tính năng (benchmarking) 3 ứng dụng dẫn đầu trên Google Play khi tìm kiếm từ khóa "quản lý chi tiêu".
- Phương pháp phân tích và thiết kế hệ thống: Sử dụng mô hình Use-Case, sơ đồ hoạt động (Activity Diagram), sơ đồ lược đồ quan hệ thực thể cơ sở dữ liệu.
- Phương pháp thực nghiệm mô hình học máy: Chuẩn bị tập dữ liệu giọng nói, tiền xử lý, cấu hình tham số huấn luyện DeepSpeech trên phần cứng GPU và phân tích mối tương quan giữa số epoch và độ chính xác dự đoán.
Khảo sát các ứng dụng hiện có
Tác giả đã tiến hành khảo sát ba ứng dụng phổ biến trên Google Play Store tại thời điểm tháng 6/2023 nhằm chỉ ra điểm mạnh cần kế thừa và hạn chế cần khắc phục:
| Tên ứng dụng |
Đơn vị phát triển |
Lượt tải & Đánh giá |
Ưu điểm ghi nhận |
Nhược điểm ghi nhận |
| Sổ thu chi: Quản lý chi tiêu |
Komorebi Inc. |
> 500.000 lượt tải; 4.8 sao (31.000 đánh giá) |
Mở màn hình thêm chi tiêu ngay khi khởi động; nhiều báo cáo theo thời gian; tích hợp lịch hiển thị chi tiêu theo ngày; tùy biến màu sắc và ngôn ngữ. |
Giao diện góc cạnh, khó nhìn; chưa hỗ trợ Dark Mode; chứa nhiều quảng cáo; báo cáo đơn thuần chỉ thay đổi mốc thời gian; không có tính năng nâng cao. |
| Quản lý tiền: theo dõi chi phí |
Innim Mobile Exp |
> 5.000.000 lượt tải; 4.8 sao (267.000 đánh giá) |
Tích hợp máy tính bỏ túi; màu sắc đa dạng; hỗ trợ giao diện tối và đa ngôn ngữ; danh mục chi tiêu phong phú, chi tiết. |
Chứa nhiều quảng cáo ảnh hưởng trải nghiệm; độ tương phản nút bấm và văn bản chưa tối ưu; hệ thống biểu đồ chưa được đầu tư kỹ. |
| Quản lý chi tiêu - sổ thu chi |
HG Group Inc. |
> 1.000.000 lượt tải; 4.8 sao (68.000 đánh giá) |
Giao diện gọn gàng, đẹp mắt; có máy tính hỗ trợ tính toán nhanh; phân loại chi tiêu tương đối đầy đủ. |
Một số phần giao diện chưa hoàn thiện; biểu đồ nghèo nàn (chỉ có một loại); thiếu cơ chế tự động hóa và thông báo nhắc việc. |
Thiết kế và triển khai
Thiết kế ca sử dụng và luồng hoạt động
Hệ thống phân định hai tác nhân (Actor):
- Khách: Người dùng chưa thực hiện xác thực, chỉ có thể xem màn hình giới thiệu, đăng nhập hoặc đăng ký.
- Người dùng: Đã xác thực qua Firebase Authentication, có toàn quyền sử dụng các phân hệ: Quản lý chi tiêu, Quản lý loại chi tiêu, Quản lý nhãn (Tags), Quản lý sự kiện và Quản lý hóa đơn.
Các luồng hoạt động chính được thiết kế chặt chẽ:
- Đăng ký / Đăng nhập: Tương tác giữa Người dùng - Giao diện Flutter - Firebase Authentication để kiểm tra cú pháp, kiểm tra tồn tại và gửi email xác thực tài khoản.
- Thêm, sửa, xóa dữ liệu: Kiểm tra cú pháp dữ liệu đầu vào tại client trước khi xác thực ràng buộc toàn vẹn và ghi vào cơ sở dữ liệu SQFLite cục bộ.
Thiết kế cơ sở dữ liệu SQFLite
Cơ sở dữ liệu cục bộ được thiết kế chuẩn hóa phục vụ lưu trữ offline và đồng bộ gồm các bảng dữ liệu:
- History_fields (Các trường lịch sử dùng chung cho các bảng):
created_by (TEXT): Lưu định danh người tạo.
created_on (INTEGER): Thời điểm tạo bản ghi.
modified_by (TEXT): Lưu định danh người chỉnh sửa sau cùng.
modified_on (INTEGER): Thời điểm chỉnh sửa sau cùng.
- Bảng UserDetails: Lưu thông tin người dùng (
id TEXT - khóa chính từ Firebase Auth, first_name TEXT, last_name TEXT, bio TEXT, day_of_birthday INTEGER dạng YYYYMMDD, sex INTEGER với quy ước 0: nam, 1: nữ, 2: khác, job TEXT, avatar TEXT mã hóa base64, email TEXT).
- Bảng Categories: Phân loại khoản chi (
id TEXT, owner TEXT - khóa ngoại liên kết UserDetails.id, icon_code_point INTEGER, icon_color INTEGER, icon_background_color INTEGER).
- Bảng Events: Quản lý sự kiện và hóa đơn định kỳ (
id TEXT, owner TEXT, category_id TEXT, content TEXT, kind INTEGER quy định chu kỳ: 0: hàng năm, 1: hàng tháng, 2: 30 ngày, 3: hàng tuần, 4: hàng ngày, 5: một lần; next_cycle INTEGER; note TEXT; auto INTEGER - cờ tự động ghi nhận khi đến hạn).
- Bảng Tags: Quản lý nhãn bổ trợ (
id TEXT, owner TEXT, content TEXT).
- Bảng Expenses: Lưu chi tiết phát sinh thu chi (
id TEXT, owner TEXT, content TEXT, tags TEXT, cost REAL với quy ước <= 0 là Chi và > 0 là Thu, day INTEGER, note TEXT).
- Bảng DebtLoans: Quản lý vay nợ (
id TEXT, owner TEXT, partner TEXT - người nợ/cho vay, cost TEXT với <= 0 là Nợ và > 0 là Cho vay, deadline INTEGER, day_of_payment TEXT, note TEXT).
- Bảng Notifications: Quản lý thông báo (
id INTEGER, event_id INTEGER, debt_loan_id INTEGER, bill_id INTEGER, date_time INTEGER). Bảng này giữ vai trò tái lập lịch thông báo khi thiết bị khởi động lại hoặc hệ điều hành Android tự động giải phóng bộ nhớ.
Thiết kế giao diện người dùng
Giao diện ứng dụng xây dựng trên ngôn ngữ thiết kế Material 3 kết hợp các thành phần trực quan:
- Màn hình chính: Tích hợp thời tiết, nhiệt độ địa phương; lịch dương và thông tin lịch âm chi tiết (can chi ngày/tháng/năm, tiết khí, giờ hoàng đạo); hiển thị bảng tổng quan tổng chi, tổng thu và độ chênh lệch; danh sách các khoản vay nợ, sự kiện, hóa đơn sắp đến hạn trong vòng 7 ngày tới.
- Màn hình sổ ghi chép chi tiêu: Liệt kê dòng tiền theo từng mốc thời gian, biểu tượng danh mục, tổng thu chi trong ngày và phím thêm nhanh giao dịch.
- Màn hình thêm mới chi tiêu: Tích hợp phím ghi âm để kích hoạt nhận diện giọng nói DeepSpeech. Nội dung văn bản dịch từ giọng nói sẽ tự động điền vào mục diễn giải chi tiêu ("Chi tiêu gì").
- Màn hình quản lý nâng cao: Quản lý phân loại chi tiêu, quản lý nhãn, thiết lập tài khoản, cài đặt ngôn ngữ và giao diện.
Huấn luyện và tích hợp DeepSpeech
- Huấn luyện mô hình: Tập dữ liệu âm thanh được chuẩn hóa và tiền xử lý theo yêu cầu đầu vào của mạng DeepSpeech. Tiến hành huấn luyện trên hệ thống máy chủ trang bị GPU chuyên dụng. Tác giả theo dõi biểu đồ mối tương quan giữa số epoch đào tạo và tỷ lệ dự đoán chính xác, chia tách các trường hợp kết quả đạt dưới 50% và trên 50%, đồng thời thống kê danh sách các từ vựng xuất hiện nhiều nhất trong tập huấn luyện.
- Tích hợp ứng dụng di động: Viết module cầu nối native trên Android bằng Kotlin, nhận luồng ghi âm từ micro thiết bị di động, chuyển qua bộ thư viện DeepSpeech Java để suy luận (inference), sau đó thông qua
MethodChannel gửi chuỗi văn bản kết quả về giao diện Flutter.
Quy trình phát hành lên Google Play Console
Khóa luận mô tả chi tiết các bước đưa ứng dụng lên kho ứng dụng chính thức của Google:
- Đăng ký tài khoản nhà phát triển Google Play Console và hoàn tất thanh toán lệ phí (25 USD).
- Xác minh danh tính nhà phát triển theo chính sách của Google bằng giấy tờ tùy thân.
- Cung cấp thông tin ứng dụng: chính sách quyền riêng tư, phân loại độ tuổi, bản quyền nội dung, ảnh chụp màn hình ứng dụng và biểu tượng.
- Đóng gói tập tin ứng dụng định dạng Android App Bundle (AAB), tiến hành kiểm thử và xuất bản thành công ứng dụng "Heo đất" trên Google Play Store.
Nội dung chính theo từng chương
Chương 1. Lí do chọn đề tài
Chương này tập trung nêu bật sự cần thiết của việc quản lý tài chính cá nhân trong bối cảnh suy thoái kinh tế sau đại dịch và xung đột địa chính trị. Tác giả phân tích điểm yếu của phương thức ghi chép thủ công và lập luận cho việc ứng dụng công nghệ nhận dạng giọng nói nhằm tự động hóa quy trình nhập liệu. Nội dung chương trình bày chi tiết khảo sát 3 ứng dụng phổ biến trên Google Play Store (Sổ thu chi: Quản lý chi tiêu, Quản lý tiền: theo dõi chi phí, Quản lý chi tiêu - sổ thu chi), tổng hợp các điểm hạn chế về quảng cáo dày đặc, thiếu chế độ nền tối, thiếu thông báo nhắc việc và tính năng hỗ trợ chưa toàn diện.
Chương 2. Cơ sở lý thuyết
Nội dung chương 2 cung cấp toàn bộ nền tảng khoa học và công nghệ sử dụng trong đề tài:
- Công nghệ DeepSpeech: Nguyên lý mạng nơ-ron sâu kết hợp mô hình N-gram, cơ chế hai giai đoạn phiên âm và sửa lỗi chính tả, hỗ trợ đa ngôn ngữ.
- Flutter Framework và Dart: Kiến trúc ba tầng của Flutter, sự khác biệt giữa hai phong cách giao diện Material Design 3 và Cupertino, cấu trúc phân loại StatelessWidget và StatefulWidget, cơ chế truyền thông điệp qua kênh nền tảng (Platform Channels).
- Thuật toán Âm lịch Việt Nam: Trình bày chi tiết toán học chuyển đổi ngày Julius (JDN), thuật toán tìm điểm Sóc tháng 11 âm lịch dựa vào tiết Đông chí, thuật toán kiểm tra năm nhuận và tháng nhuận, quy trình chuyển đổi hai chiều Dương lịch - Âm lịch chuẩn xác cho kinh tuyến 105° Đông.
- Google Firebase: Trình bày cơ chế của Firebase Authentication, Firebase Storage và Firebase Test Lab.
Chương 3. Phân tích thiết kế
Chương này trình bày quá trình đặc tả yêu cầu và thiết kế kỹ thuật cho ứng dụng:
- Xây dựng sơ đồ Use-Case tổng thể và sơ đồ hoạt động (Activity Diagram) cho 4 quy trình nghiệp vụ then chốt: Đăng ký, Đăng nhập, Thêm/Cập nhật dữ liệu và Xóa dữ liệu.
- Thiết kế chi tiết lược đồ cơ sở dữ liệu quan hệ cho SQFLite gồm 8 bảng dữ liệu:
History_fields, UserDetails, Categories, Events, Tags, Expenses, DebtLoans và Notifications. Mỗi bảng đều được định nghĩa rõ ràng kiểu dữ liệu và ràng buộc khóa ngoại.
- Thiết kế chi tiết giao diện người dùng kèm theo bảng phân rã thành phần cho từng màn hình: màn hình chính, sổ ghi chép, thêm mới chi tiêu, chức năng nâng cao và quản lý vay nợ.
Chương 4. Cài đặt thực nghiệm
Chương 4 mô tả toàn bộ quá trình hiện thực hóa giải pháp:
- Xây dựng bộ dữ liệu giọng nói, thực hiện tiền xử lý âm thanh đáp ứng yêu cầu kỹ thuật của mô hình DeepSpeech.
- Thiết lập môi trường huấn luyện phần cứng có hỗ trợ GPU, cấu hình bảng tham số đào tạo (Bảng 4-2) và đánh giá kết quả huấn luyện mô hình qua các biểu đồ tương quan số lần học và tỷ lệ dự đoán chính xác.
- Tích hợp mô hình nhận dạng giọng nói vào Flutter thông qua mã nguồn Kotlin và Android MethodChannel.
- Quy trình đưa ứng dụng lên Google Play Store: từ đăng ký tài khoản, nộp phí, xác minh danh tính, cấu hình thông tin mô tả ứng dụng đến việc phát hành phiên bản chính thức.
Chương 5. Kết quả đạt được và hướng phát triển
Chương tổng kết đánh giá các sản phẩm hoàn thiện của khóa luận, đối chiếu mục tiêu ban đầu và đề xuất các hướng hoàn thiện, phát triển hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả chính đạt được
- Ứng dụng di động hoàn chỉnh: Xây dựng thành công ứng dụng "Heo đất" đa chức năng trên nền tảng Android bằng framework Flutter, đã vượt qua khâu kiểm duyệt và xuất bản trực tiếp lên cửa hàng Google Play Store.
- Tích hợp giọng nói: Huấn luyện và nhúng thành công mô hình DeepSpeech vào thiết bị di động, cho phép chuyển đổi giọng nói thành văn bản để tự động điền thông tin chi tiêu, giải quyết bài toán ngại nhập liệu lặp đi lặp lại của người dùng.
- Số hóa âm dương lịch chuẩn xác: Tích hợp thành công thuật toán thiên văn học tính âm lịch Việt Nam chính xác theo kinh tuyến 105° Đông, hỗ trợ quản lý các ngày lễ, ngày giỗ, sự kiện truyền thống và hóa đơn lặp lại theo chu kỳ âm lịch.
- Quản lý tài chính đa tầng: Cung cấp đầy đủ các phân hệ quản lý chi tiêu (thu/chi), quản lý danh mục, nhãn dán, theo dõi các khoản vay/nợ có kỳ hạn hoặc không kỳ hạn, và hệ thống lưu trữ thông báo cục bộ chống mất mát khi thiết bị khởi động lại.
Đóng góp kỹ thuật của đề tài
- Hiện thực hóa thành công giải pháp kết nối (interop) giữa framework Flutter và mô hình học máy DeepSpeech thông qua Platform Channel trên hệ điều hành Android (sử dụng cầu nối Kotlin/Java), tạo tài liệu thực tế cho các bài toán nhúng AI mã nguồn mở vào ứng dụng Flutter di động.
- Cung cấp tài liệu hệ thống hóa rõ ràng, chi tiết từ thuật toán lý thuyết (toán học âm lịch, mạng nơ-ron nhận dạng âm thanh) đến quy trình triển khai phần mềm thương mại thực tế trên Google Play Console.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế ghi nhận trong văn bản
- Mô hình nhận dạng giọng nói DeepSpeech tiếng Việt cần tài nguyên phần cứng lớn để huấn luyện; độ chính xác phụ thuộc nhiều vào quy mô tập dữ liệu và chất lượng thu âm môi trường thực tế.
- Việc tích hợp DeepSpeech vào Flutter chưa có thư viện hỗ trợ trực tiếp từ nhà phát triển, phải xử lý gián tiếp qua mã nguồn gốc Android (Kotlin), gây hạn chế về khả năng mở rộng sang nền tảng iOS.
- Dữ liệu chi tiêu chính đang được lưu trữ chủ yếu ở cơ sở dữ liệu cục bộ SQFLite trên thiết bị, cơ chế đồng bộ đa thiết bị thời gian thực qua đám mây chưa được hoàn thiện toàn diện.
Hướng phát triển
- Tiếp tục mở rộng tập dữ liệu giọng nói tiếng Việt đa dạng vùng miền để tối ưu hóa độ chính xác của mô hình DeepSpeech.
- Nghiên cứu giải pháp cầu nối Objective-C/Swift tương đương để hỗ trợ đầy đủ tính năng nhận dạng giọng nói trên hệ điều hành iOS.
- Phát triển toàn diện cơ chế đồng bộ đám mây tự động giữa SQFLite và Firebase Cloud Database khi có kết nối Internet.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo có giá trị chuyên môn đối với:
- Sinh viên ngành Hệ thống Thông tin, Kỹ thuật Phần mềm và Khoa học Máy tính: Học tập phương pháp phân tích thiết kế hệ thống thông tin hoàn chỉnh, từ khảo sát thị trường, thiết kế CSDL quan hệ đến xây dựng sơ đồ ca sử dụng và sơ đồ hoạt động.
- Lập trình viên phát triển ứng dụng di động Flutter: Tham khảo cách thức tổ chức mã nguồn Flutter với Material 3, cách thức triển khai Platform Channel kết nối mã nguồn Kotlin native và quy trình chuẩn bị hồ sơ xuất bản ứng dụng lên Google Play Store.
- Người nghiên cứu thuật toán lịch pháp: Phần phân tích toán học về số ngày Julius và thuật toán chuyển đổi âm dương lịch Việt Nam (Chương 2) được trình bày mạch lạc, có thể trực tiếp chuyển đổi thành mã nguồn thuật toán trong các dự án phần mềm liên quan.
Câu hỏi thường gặp
1. Ứng dụng "Heo đất" giải quyết vấn đề nhận dạng giọng nói DeepSpeech trên Flutter bằng cách nào khi chưa có thư viện chính thức?
Tác giả sử dụng cơ chế kênh nền tảng (Platform Channel - cụ thể là MethodChannel) của Flutter. Do DeepSpeech có hỗ trợ thư viện cho Java, ứng dụng xây dựng các hàm native bằng Kotlin trên hệ điều hành Android để nạp mô hình, nhận dữ liệu âm thanh từ micro, thực hiện suy luận và chuyển kết quả văn bản ngược lại về tầng framework Flutter.
2. Thuật toán tính Âm lịch Việt Nam trong khóa luận dựa trên những nguyên tắc cốt lõi nào?
Thuật toán dựa trên 5 nguyên tắc thiên văn học tính theo kinh tuyến 105° Đông: ngày mùng 1 đầu tháng là ngày chứa điểm Sóc; năm thường có 12 tháng, năm nhuận có 13 tháng; ngày Đông chí luôn nằm trong tháng 11 âm lịch; trong năm nhuận tháng đầu tiên sau Đông chí không có Trung khí là tháng nhuận; và sử dụng hệ thống số ngày Julius (JDN) để chuẩn hóa quy đổi thời gian trước và sau ngày 15/10/1582.
3. Bảng cơ sở dữ liệu Notifications trong ứng dụng có vai trò kỹ thuật gì đặc biệt?
Trên hệ điều hành Android, khi thiết bị khởi động lại hoặc hệ thống thu hồi bộ nhớ, các tác vụ thông báo được lập lịch trước đó có thể bị xóa khỏi hệ thống. Bảng Notifications trong SQFLite lưu lại toàn bộ các định danh sự kiện, hóa đơn và khoản vay nợ cùng thời gian cần thông báo, giúp ứng dụng tự động thiết lập lại các lịch báo khi được khởi động.
4. Dữ liệu tài chính thu và chi được phân biệt như thế nào trong thiết kế cơ sở dữ liệu của tác giả?
Trong bảng Expenses, tác giả sử dụng trường cost kiểu số thực (REAL) để quy ước: giá trị nhỏ hơn hoặc bằng 0 (cost <= 0) đại diện cho khoản tiền Chi, còn giá trị lớn hơn 0 (cost > 0) đại diện cho khoản tiền Thu. Tương tự trong bảng DebtLoans, giá trị nhỏ hơn hoặc bằng 0 đại diện cho khoản Nợ, và lớn hơn 0 đại diện cho khoản Cho vay.
5. Mô hình ngôn ngữ N-gram đóng vai trò gì trong kiến trúc DeepSpeech được trình bày ở khóa luận?
Mạng nơ-ron sâu (DNN) ở bước một chỉ dự đoán xác suất xuất hiện của các ký tự từ luồng âm thanh (phiên âm). Mô hình ngôn ngữ N-gram ở bước hai tiếp nhận chuỗi ký tự này để kiểm tra chính tả, ngữ pháp và ngữ cảnh từ vựng, giúp chọn ra chuỗi từ có xác suất cấu thành câu cao nhất, đặc biệt khắc phục sai số đối với các từ đồng âm hoặc phát âm gần giống nhau.
Kết luận
Khóa luận tốt nghiệp của sinh viên Hoàng Đình Phú đã giải quyết trọn vẹn bài toán xây dựng ứng dụng quản lý chi tiêu cá nhân "Heo đất" kết hợp công nghệ học máy DeepSpeech trên hệ điều hành Android. Tác giả đã kết nối thành công lý thuyết tính toán âm dương lịch Việt Nam, quy trình huấn luyện nhận dạng giọng nói và kỹ thuật lập trình đa nền tảng Flutter. Công trình đạt được sản phẩm thực tế hoàn chỉnh, đáp ứng các tiêu chuẩn kỹ thuật và đã được phát hành thành công trên cửa hàng ứng dụng Google Play Store.