Mục đích nghiên cứu Ứng dụng điều khiển webpage bằng giọng nói được lập trình bằng ngôn ngữ lập trình Python hỗ trợ người khiếm thị được phát triển nhằm cải thiện khả năng tiếp cận we
Tính cấp thiết của đề tài
Công nghệ đóng vai trò quan trọng trong việc nâng cao khả năng tiếp cận và tương tác của cộng đồng người khiếm thị với các dịch vụ hàng ngày Ứng dụng đặt đồ ăn online qua điều khiển giọng nói giúp người khiếm thị giải quyết thách thức lớn nhất: tiếp cận thực phẩm một cách thuận tiện và độc lập.
Ứng dụng này giúp người khiếm thị dễ dàng đặt món ăn yêu thích từ các nhà hàng mà không cần nhìn thấy thực đơn hay màn hình Nó cũng giúp họ vượt qua rào cản giao tiếp với nhân viên phục vụ và di chuyển đến các địa điểm ăn uống mà không cần người hỗ trợ Với tầm quan trọng và ý nghĩa lớn lao, ứng dụng đặt đồ ăn online qua điều khiển giọng nói cần được nghiên cứu và phát triển hơn nữa để cải thiện trải nghiệm cho người khiếm thị trong tương lai.
Mục đích nghiên cứu
Ứng dụng điều khiển webpage bằng giọng nói được lập trình bằng Python nhằm cải thiện khả năng tiếp cận web cho người khiếm thị, nâng cao tính độc lập và thúc đẩy nghiên cứu công nghệ nhận diện giọng nói Người khiếm thị thường gặp khó khăn khi sử dụng trình duyệt web truyền thống do phụ thuộc vào giao diện đồ họa và chuột Ứng dụng này giúp họ dễ dàng truy cập dịch vụ trực tuyến, mang lại sự tự do và tự chủ mà không cần sự trợ giúp từ người khác Sự phát triển của ứng dụng cũng khuyến khích nghiên cứu và ứng dụng các công nghệ nhận diện giọng nói tiên tiến, sử dụng các thư viện như SpeechRecognition, Pyttsx3, Gtts và các API từ Google hay Microsoft.
Nhiệm vụ cần nghiên cứu
- Tìm hiểu tổng quan về những thư viện cần sử dụng
- Xác định thư viện phù hợp cho ứng dụng
- Phân luồng xử lý thành hai quá trình song song:
• Nghe, phản hồi yêu cầu khách hàng
- Phải xây dựng được các chức năng cơ bản như: đăng nhập, tìm kiểm sản phẩm, giỏ hàng, đặt hàng
- Xây dựng giao diện theo từng chức năng
- Cài đặt, đánh giá bằng thực nghiệm và demo ứng dụng.
Kết quả dự kiến đạt được
- Xây dựng thành công ứng dụng với giao diện điều khiển bằng giọng nói phù hợp với người khiếm thị
- Tích hợp được công nghệ nhận dạng giọng nói vào ứng dụng một cách hiệu quả, chính xác
- Thiết kế và phát triển được hệ thống đặt đồ ăn online bao gồm tìm kiếm, chọn lựa, thanh toán hình thức COD
- Tối ưu hóa trải nghiệm người dùng, đảm bảo ứng dụng dễ sử dụng, thân thiện với người khiếm thị
- Xây dựng được giao diện quản lý đơn hàng cho nhà hàng.
Giới hạn đề tài
- Ứng dụng sẽ tập trung vào trải nghiệm người dùng dành cho người khiếm thị, bao gồm giao diện âm thanh và phản hồi bằng giọng nói
- Chỉ xoay quanh các chức năng cơ bản của người dùng như xem sản phẩm, giỏ hàng,
3 đặt hàng Sẽ không bao gồm các tính năng như quản lý tài khoản, xem lịch sử đặt hàng, thanh toán trực tuyến,
- Ứng dụng sẽ được triển khai như một ứng dụng máy tính để bàn và không bao gồm phiên bản di động hoặc web
CÁC KIẾN THỨC CƠ BẢN VÀ CÁC NGHIÊN CỨU LIÊN QUAN
ĐỊNH NGHĨA BÀI TOÁN
Chúng ta đang phát triển một ứng dụng tương tác bằng giọng nói, nhằm tạo ra giao diện người dùng tự nhiên và trực quan Ứng dụng này cho phép người dùng tương tác thông qua giọng nói, thay vì sử dụng các phương thức nhập liệu truyền thống như bàn phím hay chuột.
Ứng dụng cần có khả năng nhận dạng và hiểu lệnh giọng nói từ người dùng, xử lý lệnh đó và thực hiện hành động phù hợp như trả lời câu hỏi, đặt lịch hẹn, gửi email hoặc tương tác với các ứng dụng khác Để đạt được điều này, ứng dụng phải đối mặt với một số thách thức chính: đầu tiên, cần nhận dạng giọng nói một cách chính xác; thứ hai, cần hiểu và xử lý ngôn ngữ tự nhiên; và cuối cùng, cần thực hiện hành động nhanh chóng và chính xác dựa trên lệnh giọng nói của người dùng.
XỬ LÝ NGÔN NGỮ TỰ NHIÊN
Xử lý ngôn ngữ tự nhiên (NLP) là một lĩnh vực quan trọng trong trí tuệ nhân tạo, nhằm phát triển các hệ thống có khả năng hiểu, diễn dịch và tạo ra ngôn ngữ mà con người sử dụng hàng ngày NLP đóng vai trò cầu nối giữa máy tính và ngôn ngữ con người, cho phép tương tác với máy tính thông qua ngôn ngữ tự nhiên.
Công nghệ NLP có nhiều ứng dụng đa dạng như dịch máy, trợ lý ảo, phân loại văn bản và phân tích cảm xúc Khi bạn yêu cầu Siri đặt cuộc hẹn hoặc sử dụng Google Translate để dịch văn bản, bạn đang trải nghiệm sức mạnh của NLP.
NLP sử dụng nhiều kỹ thuật và mô hình khác nhau để hiểu và tạo ra ngôn ngữ, bao gồm
5 cả học máy và học sâu Một số mô hình phổ biến bao gồm mô hình ngôn ngữ, mô hình phân loại văn bản, và mô hình dịch máy
Mặc dù NLP đã đạt được nhiều tiến bộ, nhưng vẫn tồn tại những thách thức đáng kể trong lĩnh vực này, bao gồm việc hiểu ngữ cảnh, xử lý ngôn ngữ không chính xác hoặc không chuẩn, và khả năng xử lý ngôn ngữ tự nhiên ở quy mô lớn.
Trong những năm gần đây, công nghệ và dữ liệu đã phát triển mạnh mẽ, dẫn đến những tiến bộ đáng kể trong lĩnh vực NLP Mặc dù đã đạt được nhiều thành tựu, vẫn còn nhiều cơ hội để cải thiện và mở rộng ứng dụng của NLP.
1.2.2 Các thành phần trong NLP
1.2.2.1 Phân tích hình thái và từ vựng
Phân tích từ vựng là quá trình nghiên cứu cấu trúc và cách diễn đạt của từ, bao gồm việc chia văn bản thành các đoạn, từ và câu Quá trình này cũng phân tích các từ riêng lẻ thành các thành phần của chúng, đồng thời tách biệt các mã thông báo không phải từ như dấu câu.
Phân tích ngữ nghĩa là quá trình chuyển đổi các chuỗi từ thành cấu trúc, giúp gán ý nghĩa cho chúng Thành phần này cho thấy cách mà các từ liên kết với nhau, tập trung vào nghĩa đen của từ, cụm từ và câu.
Cú pháp là tập hợp các nguyên tắc và quy tắc chi phối cấu trúc câu trong mỗi ngôn ngữ Nó nhấn mạnh tầm quan trọng của thứ tự từ, vì cách sắp xếp này có thể ảnh hưởng đáng kể đến ý nghĩa của câu.
Phân tích thực dụng tập trung vào việc hiểu cách mà nội dung giao tiếp và bối cảnh xã hội ảnh hưởng đến quá trình diễn giải Điều này nhấn mạnh tầm quan trọng của ngữ cảnh trong việc xác định ý nghĩa và cách mà thông điệp được tiếp nhận.
6 những gì được nói trong việc diễn giải lại ý nghĩa của nó
Tích hợp diễn ngôn là quá trình hiểu cảm giác về bối cảnh, trong đó ý nghĩa của mỗi câu phụ thuộc vào ngữ cảnh của câu đó Bên cạnh đó, việc phân tích ý nghĩa của câu tiếp theo cũng rất quan trọng để nắm bắt toàn bộ thông điệp.
1.2.3 Các bài toán và ứng dụng
Công nghệ Xử lý Ngôn ngữ Tự nhiên (NLP) đã tạo ra nhiều ứng dụng phong phú trong các lĩnh vực khác nhau, bao gồm cá nhân, doanh nghiệp, giáo dục và y tế Các ứng dụng cụ thể của NLP đang ngày càng trở nên đa dạng và hữu ích, góp phần nâng cao hiệu quả trong nhiều hoạt động.
Nhận dạng chữ viết bao gồm việc nhận diện chữ in và chữ viết tay, giúp chuyển đổi văn bản từ dạng vật lý sang điện tử Chức năng này không chỉ hữu ích trong việc số hóa tài liệu mà còn có ứng dụng quan trọng trong lĩnh vực khoa học hình sự và bảo mật thông tin.
• Tóm tắt văn bản: Quá trình tạo ra bản tóm tắt ngắn gọn của văn bản, tập trung vào các thông tin quan trọng nhất
• Dịch tự động: Tự động dịch văn bản giữa các ngôn ngữ, giúp giao tiếp và truy cập thông tin trên toàn cầu
• Nhận dạng tiếng nói: Quá trình này chuyển đổi tiếng nói thành văn bản, giúp tối ưu hóa trải nghiệm người dùng trên các thiết bị
Tổng hợp tiếng nói là chức năng chuyển đổi văn bản thành âm thanh, giúp người dùng nghe nội dung văn bản Trong bài viết này, chúng ta sẽ tập trung vào hai ứng dụng quan trọng của NLP: Nhận dạng tiếng nói và Tổng hợp tiếng nói, nhằm giải quyết vấn đề mà chúng ta đã đề cập.
HỆ THỐNG NHẬN DẠNG GIỌNG NÓI
Nhận dạng giọng nói, còn được gọi là nhận dạng giọng nói tự động (ASR) hay
Chuyển giọng nói thành văn bản (STT) là quá trình chuyển đổi tín hiệu âm thanh thành chuỗi từ, giúp nhận dạng và sử dụng trong các ứng dụng điều khiển thiết bị và nhập liệu.
Nhận dạng tiếng nói của con người là một quá trình phức tạp, bắt đầu từ việc chuyển đổi tín hiệu âm thanh tương tự từ người dùng thành tín hiệu số qua quá trình lấy mẫu và mã hóa Sau đó, các đặc trưng của tín hiệu này sẽ được trích xuất, cho phép hệ thống tiến hành nhận dạng để xác định nội dung của tín hiệu âm thanh và đưa ra kết quả cuối cùng.
Hình 1 1 Sơ đồ nhận dạng giọng nói
1.3.2 Những đặc điểm của hệ thống nhận dạng giọng nói Để một hệ thống nhận dạng giọng nói hoạt động hiệu quả, nó cần phải có những đặc điểm sau:
Hệ thống nhận dạng giọng nói cần đạt độ chính xác cao trong việc chuyển đổi từ ngữ nói thành văn bản, bất chấp sự hiện diện của tiếng ồn hoặc giọng nói đa dạng Độ chính xác này phụ thuộc vào khả năng học hỏi và nhận diện của thuật toán, cùng với chất lượng dữ liệu đầu vào.
- Khả năng thích ứng với nhiều ngôn ngữ và giọng nói: Một hệ thống nhận dạng
Cần có 8 giọng nói tốt hỗ trợ nhiều ngôn ngữ, có khả năng nhận diện các giọng nói khác nhau, bao gồm cả biến thể giọng địa phương, tốc độ nói và phát âm.
Hệ thống cần có khả năng xử lý và nhận diện giọng nói trong thời gian thực, mang đến trải nghiệm liền mạch cho người dùng mà không phải chờ đợi Tính năng này đặc biệt quan trọng trong các ứng dụng giao tiếp tức thời như trợ lý ảo và dịch vụ khách hàng.
Hệ thống có khả năng nhận diện và kích hoạt hành động dựa trên từ khóa hoặc cụm từ cụ thể, giúp người dùng thực hiện lệnh bằng giọng nói một cách nhanh chóng và thuận tiện.
Hệ thống cần có khả năng học hỏi và cải tiến liên tục từ các lỗi nhận diện để nâng cao độ chính xác theo thời gian Việc này thường được thực hiện thông qua việc thu thập và phân tích dữ liệu sử dụng thực tế, từ đó giúp thuật toán trở nên thông minh và hiệu quả hơn.
Hệ thống cần có khả năng học hỏi từ những lỗi nhận diện và cải thiện độ chính xác theo thời gian Việc này thường được thực hiện thông qua việc thu thập và phân tích dữ liệu sử dụng thực tế, giúp thuật toán trở nên thông minh và hiệu quả hơn.
1.3.3 Các hướng tiếp cận Để tiếp cận bài toán nhận dạng giọng nói ta có một số cách phổ biến như sau:
• Phương pháp âm học - ngữ âm học
• Phương pháp nhận dạng mẫu
• Sử dụng trí tuệ nhận tạo.
NHỮNG MÔ HÌNH NHẬN DẠNG GIỌNG NÓI
CTC là một mô hình phân loại thời gian dựa trên mạng neural CTC có thể thực
Học trực tuyến cho phép hệ thống nhận đầu vào giọng nói và cung cấp đầu ra ngay lập tức mà không cần chờ toàn bộ đoạn giọng nói CTC đã giới thiệu các biểu tượng trống để giải quyết vấn đề của sự không cân xứng giữa dãy đầu vào và đầu ra Ý tưởng chính là tối đa hóa tổng xác suất của tất cả các chuỗi tương ứng mà không cần xem xét sự sắp xếp của các khung giọng nói và ký tự, chỉ cần tập trung vào việc đào tạo đầu vào và đầu ra.
RNN-T là mô hình nhận dạng giọng nói tích hợp âm thanh và ngôn ngữ, rất phù hợp cho nhận dạng giọng nói trực tuyến So với mô hình CTC, RNN-Transducer mang lại cải tiến đáng kể với khả năng tối ưu hóa toàn diện từ đầu đến cuối, tích hợp mô hình ngôn ngữ mạnh mẽ và dễ dàng triển khai cho nhận dạng giọng nói tự động trực tuyến.
1.4.3 Listen, Attend, and Spell (LAS)
Mô hình LAS (Listen, Attend and Spell) là một phương pháp nhận dạng giọng nói tiên tiến, khác biệt so với các mô hình truyền thống Nó học tất cả các thành phần của hệ thống nhận dạng giọng nói một cách đồng thời, giúp cải thiện đáng kể độ chính xác và hiệu quả Mô hình LAS bao gồm hai thành phần chính, đóng vai trò quan trọng trong quá trình nhận diện giọng nói.
Bộ Nghe (Listener) hoặc Mã hóa (Encoder) sử dụng mạng nơ-ron tái lặp (RNN) để phân tích thông tin ẩn từ chuỗi đầu vào Phương pháp Attend và Spell áp dụng mạng chú ý (Attention) để tạo ra một vector ngữ cảnh, tóm tắt thông tin quan trọng trong chuỗi đầu vào Vector này được sử dụng để dự đoán đầu ra, thường là văn bản.
CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN
Nhiều nghiên cứu đã tập trung vào việc tích hợp công nghệ điều khiển bằng giọng nói vào các trang web và ứng dụng, nhằm nâng cao trải nghiệm người dùng và cải thiện tính tiện ích Dưới đây là một số nghiên cứu nổi bật trong lĩnh vực này.
Trình duyệt web điều khiển bằng giọng nói dành cho người mù được phát triển dựa trên Dillo, một phần mềm mã nguồn mở Nó sử dụng mô-đun chuyển văn bản thành giọng nói để đọc màn hình và cho phép người dùng điều hướng qua các trang web phổ biến Bên cạnh đó, trình duyệt tích hợp đầu vào lệnh nói và mô-đun hội thoại, giúp người dùng dễ dàng tương tác Mục tiêu chính của trình duyệt này là phục vụ cho cổng thông tin web mới, được thiết kế đặc biệt cho người mù và người khiếm thị, với các trang web được tổ chức một cách hợp lý.
Một ứng dụng thương mại điện tử điều khiển bằng giọng nói đã được nghiên cứu, sử dụng công nghệ IBM Watson speech-to-text để thực hiện các giao dịch mua sắm Các tác giả đã đề xuất một phân loại cho các hệ thống nhận dạng giọng nói (SRS) và trình bày ứng dụng này như một minh chứng cho khả năng sử dụng của nó trong lĩnh vực thương mại điện tử.
KẾT QUẢ NGHIÊN CỨU CÁ NHÂN
ASR (Nhận diện giọng nói tự động) là quá trình chuyển đổi âm thanh nói thành văn bản Để giải quyết vấn đề này, nhóm nghiên cứu đã áp dụng và kết hợp hai mô hình học sâu, bao gồm 2D CNN và RNN.
Mạng nơ-ron tích chập 2D CNN (Convolutional Neural Network) là một công nghệ mạnh mẽ trong việc trích xuất đặc trưng từ dữ liệu hình ảnh và âm thanh Cấu trúc của 2D CNN bao gồm nhiều lớp tích chập, lớp kết nối đầy đủ và lớp kích hoạt Mỗi lớp tích chập sử dụng bộ lọc (filter) để quét qua dữ liệu đầu vào, từ đó tạo ra feature map Feature map là một ma trận thể hiện mức độ kích hoạt của bộ lọc tại từng vị trí, giúp mạng nơ-ron nhận diện và phân tích các đặc điểm quan trọng trong dữ liệu.
Mạng nơ-ron sử dụng các lớp kết nối đầy đủ để phân loại hoặc hồi quy, với đầu vào là vector đặc trưng được nối lại từ các đặc trưng ban đầu Lớp kích hoạt, là một hàm phi tuyến, đóng vai trò quan trọng trong việc tăng cường tính phi tuyến và khả năng biểu diễn của mạng Một số hàm kích hoạt phổ biến bao gồm ReLU, Sigmoid, Tanh và Leaky ReLU.
Các lớp tiếp theo trong mạng nơ-ron tích chập (CNN) tạo ra kết quả từ phép tích chập của lớp trước, thiết lập các kết nối cục bộ Mỗi neuron ở lớp tiếp theo được hình thành từ kết quả của bộ lọc áp dụng lên một vùng ảnh cục bộ của neuron trong lớp trước Mạng CNN sử dụng hàng trăm hoặc thậm chí hàng nghìn bộ lọc khác nhau và kết hợp các kết quả này Ngoài ra, các lớp pooling hoặc subsampling cũng được sử dụng để lọc và tối ưu hóa thông tin hữu ích hơn.
RNN (Recurrent Neural Network) là mạng nơ-ron chuyên xử lý dữ liệu chuỗi như văn bản, âm thanh và video Đặc điểm nổi bật của RNN là bộ nhớ nội bộ, hay trạng thái ẩn, giúp lưu giữ thông tin từ các bước thời gian trước Tại mỗi bước thời gian, RNN tiếp nhận đầu vào là một phần tử chuỗi và cho ra đầu ra là phân phối xác suất của các nhãn hoặc giá trị liên tục RNN được huấn luyện thông qua phương pháp lan truyền ngược qua thời gian (BPTT), trong đó gradient của hàm mất mát được tính toán và cập nhật cho từng tham số Các biến thể của RNN bao gồm LSTM (Long Short-Term Memory), GRU (Gated Recurrent Unit) và Bi-RNN (Bidirectional RNN).
Bằng cách kết hợp 2D CNN và RNN, chúng ta có thể xây dựng một mô hình nhận diện giọng nói (ASR) hiệu quả và linh hoạt 2D CNN đóng vai trò quan trọng trong việc trích xuất các đặc trưng từ âm thanh nói, trong khi RNN giúp mô hình xử lý thông tin theo chuỗi, nâng cao khả năng nhận diện và hiểu ngữ nghĩa của âm thanh.
12 hình hóa các mối quan hệ thời gian giữa các đặc trưng và các kí tự
Hình 1 3 Kiến trúc mô hình RNN
Kiến trúc RNN thường tiếp nhận đầu vào dưới dạng 3 chiều, bao gồm kích thước lô (batch size), số bước thời gian (timesteps) và số chiều (dimensions), có thể là một hoặc nhiều biến Hệ thống có thể bao gồm nhiều lớp lặp lại, như minh họa trong hình Để thực hiện dự đoán, RNN sẽ sử dụng một lớp dày đặc (dense layer) ở cuối.
Để chia các tập dữ liệu thành Train Dataset (80%), Validation Dataset (10%) và Test Dataset (10%), bước đầu tiên là xây dựng hàm xử lý tệp âm thanh và nhãn tương ứng (encode_single_sample).
Bước 2: Xây dựng bộ từ vựng tiếng Anh là một bước chuẩn bị quan trọng cho việc xử lý dữ liệu trong các mô hình học máy, đặc biệt trong nhận dạng giọng nói tự động (ASR) Bộ từ vựng tương ứng với từng số nguyên giúp mô hình học máy dễ dàng chuyển đổi giữa dữ liệu văn bản và dữ liệu số nguyên, điều này cần thiết cho quá trình huấn luyện và suy luận.
Bước 3: Tạo ra một hàm mất mát CTC
Hàm mất mát CTCLoss được sử dụng để tính toán giá trị mất mát trong quá trình huấn luyện mô hình nhận dạng giọng nói tự động (ASR) hoặc các mô hình khác sử dụng chuỗi thời gian với độ dài đầu ra khác nhau CTC giúp mô hình học cách ánh xạ chuỗi đầu vào sang chuỗi đầu ra mà không cần thông tin về sự căn chỉnh thời gian giữa chúng.
Mô hình được xây dựng tương tự như DeepSpeech2 và bao gồm các bước sau:
● Định nghĩa đầu vào của mô hình là một spectrogram với kích thước không xác định và chiều sâu bằng input_dim
● Mở rộng chiều để sử dụng CNN 2D
● Thêm hai lớp Convolutional để học các đặc trưng từ dữ liệu đầu vào
● Reshape kết quả để phù hợp với các lớp RNN
● Xây dựng các lớp RNN với số lượng lớp và đơn vị được xác định bởi rnn_layers và rnn_units
● Thêm lớp Dense để tạo ra các đặc trưng dày đặc hơn từ dữ liệu đã qua xử lý RNN
● Lớp phân loại sử dụng hàm softmax để dự đoán kết quả cuối cùng
● Biên dịch mô hình với optimizer Adam và hàm mất mát CTC
Sử dụng RandomSearch để tìm kiếm cấu hình tối ưu cho mô hình bao gồm việc khởi tạo đối tượng RandomSearch với hàm lambda nhằm xây dựng mô hình dựa trên các tham số siêu Mục tiêu tối ưu hóa được thiết lập là val_loss, với giới hạn số lượng thử nghiệm và mỗi mô hình được chạy 2 lần Kết quả sẽ được lưu trữ và không gian tìm kiếm sẽ được hiển thị Quá trình bắt đầu với dữ liệu huấn luyện và validation, và cuối cùng là tóm tắt kết quả để xác định mô hình tối ưu nhất.
Sau khi đã tìm ra được mô hình tốt nhất, nhóm đã tiến hành dùng EarlyStopping để vừa
14 huấn luyện, retrained (huấn luyện lại với bộ tham số có sẵn) cũng như tìm ra epoch phù hợp nhất
1.5.3 Cách đánh giá Để đánh giá được mức độ hiệu quả của mô hình nhóm đã sử dụng các tiêu chí sau để đánh giá
WER (Tỷ lệ lỗi từ) là tiêu chí phổ biến để đánh giá chất lượng nhận dạng giọng nói, được tính bằng tỷ lệ phần trăm số từ bị nhận diện sai so với tổng số từ trong văn bản gốc Một WER thấp hơn chỉ ra độ chính xác cao hơn của mô hình nhận dạng giọng nói tự động (ASR).
WER được tính bằng cách sử dụng công thức sau:
• S là số từ bị thay đổi (substitutions)
• D là số từ bị bỏ qua (deletions)
• I là số từ được chèn vào (insertions)
• N là tổng số từ trong văn bản gốc
CER (Tỷ lệ lỗi ký tự) - Giống như WER, CER đo lường tỷ lệ phần trăm ký tự được nhận diện sai CER mang đến cái nhìn sâu sắc về khả năng nhận diện từng ký tự của mô hình, đặc biệt quan trọng đối với các ngôn ngữ có cấu trúc phức tạp.
CER được tính bằng cách sử dụng công thức tương tự như WER nhưng áp dụng cho từng ký tự:
• S là số ký tự bị thay đổi
• D là số ký tự bị bỏ qua
• I là số ký tự được chèn vào
• N là tổng số ký tự trong văn bản gốc
Thời gian thực thi của mô hình nhận dạng tiếng nói (ASR) là yếu tố quyết định trong việc đánh giá hiệu suất, đặc biệt là trong các ứng dụng yêu cầu phản hồi tức thì Thời gian cần thiết để mô hình thực hiện quá trình nhận dạng và trả về kết quả nhanh chóng là rất quan trọng.
Sau khi hoàn thành huấn luyện nhóm, ba trường hợp đã được đánh giá với ba mô hình khác nhau: mô hình tự huấn luyện và tối ưu, mô hình sử dụng bộ siêu tham số có sẵn, và mô hình đã được huấn luyện sẵn Kết quả cho từng mô hình lần lượt được ghi nhận như sau:
Hình 1 4 Kết quả của Self training
Hình 1 5 Kết quả của Retrained
Hình 1 6 Kết quả của Pre-trained
TỔNG QUAN VỀ ỨNG DỤNG
GIỚI THIỆU
Ứng dụng AB Cơm Tấm là một giao diện người dùng đồ họa (GUI) được phát triển bằng Python và thư viện Tkinter, nhằm tạo ra một trải nghiệm tương tác bằng giọng nói Ứng dụng cho phép người dùng, đặc biệt là người mù và khiếm thị, điều khiển các chức năng mà không cần chuột hay bàn phím Với tính năng tự động đăng nhập qua tên máy tính, người dùng có thể tìm kiếm, xem chi tiết và thêm món ăn vào giỏ hàng, cũng như tiến hành đặt hàng chỉ bằng giọng nói Điều này mang lại sự thuận tiện và độc đáo trong trải nghiệm mua sắm trực tuyến cho người dùng có khuyết tật.
Đề tài này có một số giới hạn nhằm đảm bảo tính khả thi và tập trung vào mục tiêu chính, với ứng dụng chỉ hoạt động trên nền tảng Windows và không có phiên bản di động hay web Ứng dụng cũng sẽ không tích hợp với phần cứng đặc biệt ngoài micrô và loa, và các tính năng như quản lý tài khoản, xem lịch sử đặt hàng, và thanh toán trực tuyến sẽ không được bao gồm Ứng dụng được cấu thành từ hai thành phần chính.
• Hàm nhận dạng âm thanh: Thực hiện chuyển đổi âm thanh thành văn bản để lấy thông tin mà người dùng yêu cầu
• Hàm chuyển văn bản thành âm thanh: Xử lý yêu cầu từ người dùng và phản hồi lại kết quả thông qua âm thanh
Sau khi nhận diện và xử lý yêu cầu của người dùng, hệ thống sẽ phát ra âm thanh để thông báo kết quả, mang đến trải nghiệm tương tác mượt mà và tiện lợi.
CÁC CHỨC NĂNG
Khi ứng dụng hiển thị, hệ thống tự động kiểm tra username, điều này rất cần thiết vì ứng dụng hướng đến đối tượng khiếm thị, khiến việc đăng nhập thông thường trở nên khó khăn Do đó, việc sử dụng tên máy tính làm username là phương án khả thi nhất Hệ thống sẽ xác nhận xem username này đã được đăng ký hay chưa; nếu chưa, người dùng sẽ được yêu cầu tạo tài khoản và thực hiện đăng nhập sau đó.
Khi truy cập vào menu chính, hệ thống sẽ hiển thị một số món ăn nổi bật của quán để bạn có thể lựa chọn Bạn chỉ cần nói tên món ăn mà bạn muốn xem, và hệ thống sẽ tìm kiếm và liệt kê các món theo yêu cầu của bạn.
2.2.3 Xem chi tiết sản phẩm
Tính năng này cung cấp thông tin chi tiết về sản phẩm bạn yêu cầu, bao gồm tên món ăn, giá cả và mô tả Nhờ vào những thông tin này, bạn có thể hiểu rõ hơn về món ăn, thành phần và quy trình chế biến của nó.
2.2.4 Thêm sản phẩm vào giỏ hàng
Khi bạn muốn đặt món ăn, hãy thêm sản phẩm vào giỏ hàng với số lượng mong muốn trước khi xác nhận đơn hàng.
2.2.5 Các thao tác với giỏ hàng
Khi bạn truy cập vào trang giỏ hàng, hệ thống sẽ hiển thị các sản phẩm hiện có trong giỏ hàng của bạn, bao gồm tên sản phẩm, số lượng, giá và tổng tiền đơn hàng Hệ thống cũng sẽ hỏi bạn "Bạn muốn đặt hàng hay điều chỉnh đơn hàng?" Bạn có thể dễ dàng điều chỉnh đơn hàng bằng cách thay đổi số lượng sản phẩm.
20 xóa sản phẩm khỏi giỏ hàng
Khi bạn ở giỏ hàng, hệ thống sẽ hỏi bạn có muốn đặt hàng hay không Nếu bạn chọn "đặt hàng", hệ thống sẽ chuyển đến trang xác nhận đơn hàng, nơi bạn có thể xem lại danh sách món ăn và tổng tiền Sau khi xác nhận, hệ thống sẽ kiểm tra lại số điện thoại và địa chỉ nhận hàng của bạn, trước khi chuyển đến trang trạng thái đơn hàng.
Sau khi truy cập vào trang trạng thái đơn hàng, hệ thống sẽ xác nhận rằng bạn đã đặt hàng thành công Bạn có thể hủy đơn hàng trong vòng hai phút kể từ thời điểm đặt hàng.
CÁC THƯ VIỆN SỬ DỤNG
Tkinter là thư viện Python phổ biến để xây dựng giao diện đồ họa người dùng (GUI) cho ứng dụng desktop Thư viện này cho phép tạo ra các cửa sổ, nút, hộp văn bản và nhiều thành phần khác để tương tác với người dùng Điểm mạnh của Tkinter là tính đơn giản và sự tích hợp sẵn trong Python, giúp các nhà phát triển dễ dàng tạo ra ứng dụng với giao diện trực quan.
Threading là một thư viện trong Python cho phép tạo và quản lý các luồng (threads), giúp thực hiện các quá trình nhỏ đồng thời trong ứng dụng Việc sử dụng threading nâng cao hiệu suất và khả năng phản hồi của ứng dụng, đặc biệt trong các tác vụ phức tạp hoặc khi chờ đợi sự kiện mà không làm gián đoạn giao diện người dùng.
Mục đích sử dụng thư viện cho dự án là phân luồng các tiến trình nghe và phản hồi bằng giọng nói
Thư viện này hỗ trợ chuyển đổi văn bản thành giọng nói, cho phép tạo ra âm thanh tự động cho các thông báo gửi đến người dùng trong ứng dụng.
Thư viện này cho phép người dùng chỉ định ngôn ngữ văn bản chuyển đổi thành giọng nói bằng tham số “lang='vi'” và điều chỉnh tốc độ giọng nói với tham số “slowse” Khi tham số slow=True được sử dụng, giọng nói sẽ phát ra với tốc độ chậm hơn, trong khi nếu không có tham số này, giọng nói sẽ được phát ra với tốc độ bình thường.
Thư viện này hỗ trợ Gtts trong việc chuyển đổi văn bản thành âm thanh, trong khi Playsound đảm nhiệm vai trò phát âm thanh để người dùng có thể nghe phản hồi.
Khi sử dụng thư viện, nhóm có sử dụng tham số “blockse” để hàm
“playsound.playsound()” sẽ không chờ cho đến khi âm thanh được phát xong trước khi tiếp tục thực thi các dòng code tiếp theo
Khi sử dụng tham số "block=True" trong hàm "playsound.playsound()", hàm sẽ dừng lại cho đến khi âm thanh kết thúc, điều này có thể làm chậm quá trình thực hiện các tác vụ khác Để tránh tình trạng trì hoãn này, việc đặt "block=False" cho phép các tác vụ khác tiếp tục hoạt động mà không cần chờ âm thanh hoàn tất.
Thư viện này cho phép nhận dạng giọng nói từ microphone hoặc tệp âm thanh Trong ứng dụng, Speech_recognition được sử dụng để lắng nghe âm thanh từ microphone và chuyển đổi thành văn bản Từ văn bản này, hệ thống kiểm tra yêu cầu của người dùng và phân loại để phản hồi bằng âm thanh.
Thư viện SpeechRecognition có nhiều ưu điểm nổi bật so với các thư viện khác trong
22 lĩnh vực chuyển đổi giọng nói thành văn bản như:
SpeechRecognition offers diverse API support, including popular options like Google Web Speech API, IBM Speech to Text, and Microsoft Bing Voice Recognition, as well as internal engines such as Sphinx.
SpeechRecognition mang lại khả năng cài đặt và sử dụng dễ dàng nhờ vào cú pháp đơn giản và dễ hiểu, giúp việc triển khai và tích hợp vào các ứng dụng Python trở nên thuận tiện hơn Chỉ với vài dòng mã, bạn có thể nhanh chóng thực hiện việc chuyển đổi giọng nói thành văn bản.
Thư viện này nổi bật với khả năng tùy chỉnh cao, cho phép người dùng điều chỉnh nhiều tham số như thời gian chờ, độ nhạy của microphone và lựa chọn các dịch vụ nhận dạng giọng nói khác nhau, nhằm đáp ứng nhu cầu cụ thể của từng người dùng.
SpeechRecognition là một thư viện mã nguồn mở và miễn phí, giúp tiết kiệm chi phí cho các dự án nhỏ hoặc thử nghiệm ý tưởng mới mà không cần đầu tư vào dịch vụ trả phí.
Thư viện này tương thích với nhiều định dạng âm thanh, bao gồm WAV, AIFF, FLAC, và cho phép thu âm trực tiếp từ microphone, mang lại sự linh hoạt cho việc xử lý các nguồn dữ liệu âm thanh khác nhau.
Thư viện Pillow, một phần mở rộng của PIL (Python Imaging Library), cung cấp nhiều chức năng đa dạng để mở, chỉnh sửa và lưu trữ hình ảnh trong nhiều định dạng khác nhau, đồng thời được phát triển và duy trì một cách tích cực.
Thư viện này cho phép người dùng đọc, chỉnh sửa và hiển thị hình ảnh, đồng thời cung cấp các công cụ hữu ích để làm việc với hình ảnh trong ứng dụng Tkinter.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
LUỒNG XỬ LÝ CỦA HỆ THỐNG
Hệ thống ứng dụng Python này cho phép người dùng đặt đồ ăn thông qua điều khiển giọng nói, với mục tiêu chính là đặt cơm tấm Giao diện người dùng được phát triển bằng thư viện tkinter, cung cấp các chức năng như đặt hàng, tìm kiếm sản phẩm và hiển thị thông tin chi tiết Để đảm bảo ứng dụng có thể lắng nghe yêu cầu của người dùng liên tục, cấu trúc ứng dụng được chia thành hai luồng riêng biệt.
Hình 3 1 Hình ảnh mô tả luồng xử lý của ứng dụng
Luồng xử lý giao diện là thành phần thiết yếu trong ứng dụng, đảm nhiệm việc cập nhật giao diện và phản hồi sự kiện từ người dùng Nó bao gồm việc cập nhật thông tin đơn hàng, hiển thị thông báo và xử lý các tương tác như nhấn nút qua điều khiển giọng nói Luồng này đảm bảo giao diện người dùng phản hồi nhanh chóng và chính xác, mang lại trải nghiệm mượt mà cho người dùng.
Để phát triển một hệ thống điều khiển giọng nói hiệu quả, ứng dụng đã thiết lập một luồng riêng biệt dành cho việc nghe và xử lý các yêu cầu giọng nói Luồng này sử dụng thư viện nhận dạng giọng nói SpeechRecognition tiên tiến, cho phép phân tích giọng nói của người dùng và chuyển đổi thành các lệnh mà ứng dụng có thể hiểu và thực hiện.
Khả năng điều hướng giữa các frame của ứng dụng thông qua giọng nói phụ thuộc vào luồng nghe và xử lý yêu cầu giọng nói Khi người dùng phát lệnh như “đến giỏ hàng”, luồng xử lý giọng nói sẽ nhận diện và tạo ra sự kiện để chuyển người dùng đến frame giỏ hàng Điều này mang lại trải nghiệm người dùng liền mạch và tự nhiên, tương tự như khi tương tác với một trợ lý ảo thông minh.
THIẾT KẾ HỆ THỐNG
Bảng 3 1 Chức năng của người dùng
STT Chức năng Mô tả
1 Đăng ký Đăng ký tạo tài khoản người dùng
2 Đăng nhập Đăng nhập vào hệ thống
3 Xem/Tìm kiếm sản phẩm Tìm kiếm, xem danh sách, chi tiết sản phẩm
4 Quản lý giỏ hàng Xem, thêm, cập nhật sản phẩm trong giỏ hàng
5 Đặt hàng Đặt hàng, thanh toán
3.2.1.2 Phía quản trị viên (Admin)
Bảng 3 2 Chức năng của quản trị viên (admin)
STT Chức năng Mô tả
1 Quản lý sản phẩm Xem, thêm, xóa, sửa sản phẩm
2 Quản lý đơn hàng trong hệ thống
Xem, cập nhật trạng thái, theo dõi trạng thái đơn hàng trong hệ thống
3.2.2 Biểu đồ Use case (Use case Diagram)
Bảng 3 3 Use case Đăng nhập
Goal Đăng nhập vào hệ thống
Actors Người mua hàng (Customer)
Post-conditions Nếu thành công, đăng nhập vào thệ thống và đến menu chính
Main Flow 1 Sau khi ứng dụng khỏi động
2 Đợi hệ thống kiểm tra tài khoản (hostname)
Exception 2a Tài khoản không tồn tại
2a1 Tiến hành đăng ký tài khoản
Bảng 3 4 Use case Đăng ký
Goal Đăng kí tài khoản cho khách hàng mới
Actors Người mua hàng (Customer)
Pre-conditions Chưa có tài khoản theo tên thiết bị trong hệ thống
Post-conditions Nếu thành công, tài khoản được tạo mới và chuyển đến menu chính
Main Flow 1 Sau khi ứng dụng khỏi động
2 Đợi hệ thống kiểm tra tài khoản (hostname)
3 Hệ thống xác nhận chưa tồn tại tài khoản theo tên thiết bị
4 Tiến hàng cung cấp địa chỉ, số điện thoại thông qua giọng nói
5 Xác nhận nội dung vừa cung cấp hệ thống đã hiểu đúng hay chưa
Xác nhận là “chính xác” nếu đã đúng thông tin
Alternative 6a Xác nhận là “chưa đúng” hoặc “sai” để cung cấp thông tin lại
3.2.2.3 Tìm kiếm / Xem chi tiết sản phẩm
Bảng 3 5 Use case Tìm kiếm / Xem chi tiết sản phẩm
Goal Tìm kiếm và xem chi tiết sản phẩm
Actors Người mua hàng (Customer)
Pre-conditions Đã đăng nhập vào hệ thống
Post-conditions - Nếu thành công, hiển thị danh sách món ăn theo từ khóa tìm kiếm (keyword)
- Nếu thất bại, thông “Không tìm thấy”
Main Flow 1 Vào ứng dụng
2 Nói tên món ăn (keyword) mong muốn
3 Chuyển đến trang chi tiết sản phẩm
3.2.2.4 Thêm sản phẩm vào giỏ hàng
Bảng 3 6 Use case Thêm sản phẩm vào giỏ hàng
Goal Thêm sản phẩm vào giỏ hàng
Actors Người mua hàng (Customer)
Pre-conditions Đã đăng nhập vào hệ thống
Main Flow 1 Vào trang xem chi tiết sản phẩm muốn thêm
2 Nói “Thêm vào giỏ hàng”
3 Hệ thống yêu cầu số lượng sản phẩm
4 Nói số lượng sản phẩm muốn thêm
5 Hệ thống thông báo thành công
Alternative 4a Số lượng không hợp hệ
3.2.2.5 Sửa số lượng sản phẩm trong giỏ hàng
Bảng 3 7 Use case Sửa số lượng sản phẩm trong giỏ hàng
Goal Sửa số lượng sản phẩm trong giỏ hàng
Actors Người mua hàng (Customer)
Pre-conditions Đã đăng nhập vào hệ thống
Main Flow 1 Vào trang quản lý sản phẩm
2 Yêu cầu chỉnh sủa số lượng sản phẩm
3 Chọn sản phẩm muốn chỉnh sửa
4 Nói số lượng cần thay đổi
5 Nói “có” để xác nhận thay đổi
Alternative 4a Số lượng không hợp hệ
4b Nói lại số lượng 5a Nói “Không” hủy lệnh
3.2.2.6 Xóa sản phẩm trong giỏ hàng
Bảng 3 8 Use case Xóa sản phẩm trong giỏ hàng
Name Delete product in cart
Goal Xóa sản phẩm trong giỏ hàng
Actors Người mua hàng (Customer)
Pre-conditions Đã đăng nhập vào hệ thống
Main Flow 1 Vào trang quản lý sản phẩm
2 Yêu cầu chỉnh xóa số lượng sản phẩm
3 Chọn sản phẩm muốn xóa
4 Nói “có” để xác nhận thay đổi
Alternative 4a Nói “Không” hủy lệnh
Bảng 3 9 Use case Đặt hàng
Goal Đặt những món trong giỏ hàng
Actors Người mua hàng (Customer)
Pre-conditions Có sản phẩm trong giỏ hàng
Post-conditions Đơn hàng sẽ được thực hiện và giao đến khách hàng
Main Flow 1 Yêu cầu đặt hàng
2 Hệ thống xác nhận lại tên xác phẩm và số lượng
3 Xác nhận “chính xác” nếu thông tin đặt hàng chính xác
Alternative 3a Xác nhận là “chưa đúng” hoặc “sai” để hủy quá trình đặt hàng
Bảng 3 10 Use case Hủy đơn
Goal Hủy đơn hàng đã đặt
Actors Người mua hàng (Customer)
Pre-conditions Thời gian đặt đặt hàng chưa quá 2 phút
Post-conditions Hủy đơn hàng đã đặt
Main Flow 1 Yêu cầu hủy đơn
2 Xác nhận chắc chắn hủy đơn
Alternative 2a Xác nhận lại là không hủy đơn để tiếp tục đơn hàng
Exception 1a Không yêu cầu hủy đơn thì hệ thống tự động hiểu và tiếp tục xử lý đơn hàng
3.2.3 Thiết kế cơ sở dữ liệu
Hình 3 2 Lược đồ biểu diễn thành phần ở mức quan niệm
STT Tên field Mô tả Kiểu dữ liệu
Id + primary-key (khóa chính) + auto-generated (được tạo tự động) bigint
Danh sách các địa chỉ của người dùng
3 Email Email đã xác minh chưa?
4 is_enabled Email đã xác minh chưa?
Role của account + default: ‘user’
Tên của người dùng + required
STT Tên field Mô tả Kiểu dữ liệu
Id + primary-key (khóa chính) + auto-generated (được tạo tự động) bigint
2 audio_url Đường dẫn của file âm thanh có trong hệ thống String
Mô tả về product + required
4 img_url Đường dẫn đến hình ảnh của các sản phẩm String
6 price Đơn giá + required + min 0
Slug, mang tính chất SEO + auto-generated (từ name) + unique
STT Tên field Mô tả Kiểu dữ liệu
Id + primary-key (khóa chính) + auto-generated (được tạo tự động) bigint
Id của user cart + required + ref: User bigint
Số lượng + required + min 1 int
STT Tên field Mô tả Kiểu dữ liệu
Id + primary-key (khóa chính) + auto-generated (được tạo tự động) bigint
Id của cart + required + ref: Cart bigint
Id của product + required + ref: Product bigint
Số lượng + required + min 1 int
STT Tên field Mô tả Kiểu dữ liệu
Id + primary-key (khóa chính) + auto-generated (được tạo tự động) bigint
2 delivery_address Địa chỉ giao hàng của user
3 order_date Ngày đặt hàng của user
4 status Trạng thái đơn hàng String
Số tiền user trả cho đơn hàng
Id của user + required + ref: User
STT Tên field Mô tả Kiểu dữ liệu
Id + primary-key (khóa chính) + auto-generated (được tạo tự động) bigint
Số lượng + required + min 1 int
Id của order + required + ref: Order bigint
Id của product + required + ref: Product bigint
CÀI ĐẶT VÀ ĐÁNH GIÁ
CÀI ĐẶT
4.1.1.1 Máy tính và cấu hình
Để cài đặt và chạy ứng dụng này, bạn cần một máy tính có cài đặt Python, kết nối internet, và thiết bị âm thanh như loa hoặc tai nghe Ứng dụng có thể hoạt động mượt mà ngay cả trên những máy tính có RAM và CPU không phải thế hệ mới, do dữ liệu trong database tương đối nhỏ.
Python 3 được chọn làm ngôn ngữ lập trình chính do tính linh hoạt, thư viện phong phú và cộng đồng hỗ trợ mạnh mẽ, giúp việc triển khai ứng dụng trong việc nghe yêu cầu từ người dùng và phản hồi lại bằng giọng nói một cách thuận tiện hơn
Ngoài ra, nhóm còn xây dựng thêm ứng dụng Web nhằm quản lý sản phẩm, đơn hàng,
Giao diện người dùng được phát triển bằng Tkinter, một thư viện Python hỗ trợ UI/UX Tkinter là một công cụ mạnh mẽ và linh hoạt, cung cấp đầy đủ các phương thức để tạo ra cửa sổ, nút bấm, hộp văn bản và nhiều thành phần khác của giao diện người dùng.
Hình 4 1 Giao diện người dùng
Ứng dụng này sử dụng Tkinter để tạo ra các thành phần giao diện như nút bấm, hộp văn bản và cửa sổ, đồng thời liên kết chúng với các hành động được kích hoạt bằng giọng nói Tkinter cung cấp các phương thức quản lý cấu trúc và bố trí giao diện người dùng, giúp ứng dụng có giao diện mạch lạc và dễ sử dụng.
Tkinter mang lại tính linh hoạt cao, giúp dễ dàng tạo giao diện tương tác bằng giọng nói, tùy chỉnh theo nhu cầu cụ thể của ứng dụng Việc này không chỉ nâng cao trải nghiệm người dùng mà còn mang lại sự thuận tiện và hiệu quả trong việc sử dụng ứng dụng.
Ngoài ra, giao diện dành cho người quản lý được xây dựng cơ bản bằng HTML, CSS và Javascript
Hình 4 2 Giao diện quản trị viên (admin)
4.1.2.1 Ứng dụng phía người dùng
Bước 1: Chuẩn bị môi trường phát triển
Để cài đặt Python, bạn cần truy cập trang web chính thức tại https://www.python.org/ Tại đây, bạn sẽ tìm thấy phiên bản Python mới nhất tương thích với hệ điều hành của mình Sau khi chọn phiên bản phù hợp, hãy tải xuống trình cài đặt và tiến hành cài đặt Python trên máy tính của bạn.
Có thể tạo môi trường cô lập cho dự án bằng cách sử dụng virtualenv hoặc venv, tuy nhiên nhóm đã chọn cài đặt và sử dụng Python trực tiếp trên laptop.
Khi khởi động một dự án Python mới, việc tổ chức các tập tin và thư mục là rất quan trọng để duy trì sự sạch sẽ và dễ quản lý Đầu tiên, hãy tạo một thư mục mới cho dự án của nhóm, nơi tất cả các tệp liên quan sẽ được lưu trữ và quản lý một cách hiệu quả.
- Khi tạo thư mục dự án, nhóm đặt tên thư mục một cách có ý nghĩa và dễ hiểu, phản ánh mục đích hoặc nội dung chính của dự án
Bước 3: Cài đặt thư viện
Sau khi tạo thư mục cho dự án, bước tiếp theo là cài đặt các gói phụ thuộc, điều này rất quan trọng cho quá trình phát triển Nhóm sẽ sử dụng pip, một trình quản lý gói mạnh mẽ của Python, để thực hiện việc này.
Pip là công cụ giúp bạn dễ dàng cài đặt, cập nhật và quản lý các gói Python một cách hiệu quả Khi bắt đầu dự án mới, việc cài đặt các gói phụ thuộc là rất quan trọng để đảm bảo môi trường phát triển có đầy đủ các công cụ cần thiết cho quá trình phát triển.
Tkinter đã được tích hợp sẵn trong Python, vì vậy trong các dự án sử dụng Tkinter, người dùng không cần cài đặt thêm bất kỳ gói phụ thuộc nào Điều này cho phép chúng ta bắt đầu làm việc ngay lập tức mà không phải lo lắng về việc cài đặt riêng Tkinter.
Trong trường hợp cần sử dụng các gói phụ thuộc ngoài Tkinter, nhóm đã chọn cách cài đặt dễ dàng bằng pip Chẳng hạn, để gửi yêu cầu HTTP, nhóm cần sử dụng gói requests và đã sử dụng lệnh "pip install requests" để cài đặt gói này vào môi trường làm việc.
Sử dụng pip để quản lý gói là yếu tố quan trọng trong phát triển Python, giúp tiết kiệm thời gian và công sức trong việc quản lý các phụ thuộc của dự án.
Bước 4: Triển khai ý tưởng thành code
Giai đoạn chuyển đổi ý tưởng từ bản vẽ và thiết kế sang mã nguồn cụ thể là rất quan trọng Nhóm đã triển khai ứng dụng với hai luồng riêng biệt: một cho giao diện và một cho xử lý giọng nói, thông qua một loạt các bước cụ thể.
Nhóm bắt đầu bằng việc triển khai các hàm giao diện chính, tập trung vào việc xây dựng các thành phần như cửa sổ, nút bấm và hộp văn bản Qua đó, họ đã tạo ra một giao diện người dùng cơ bản, cho phép người dùng dễ dàng tương tác.
ĐÁNH GIÁ
Đánh giá hiệu suất và trải nghiệm người dùng của sản phẩm số đang trở nên ngày càng quan trọng Để đảm bảo tính khách quan trong đánh giá, nhóm chúng tôi đã thực hiện một cuộc khảo sát qua Google Biểu mẫu và thu thập được những kết quả đáng chú ý.
Hình 4 3 Kêt quả đánh giá về giao diện người dùng
Hình 4 4 Kết quả đánh giá về chức nằng phản hồi giọng nói
Hình 4 5 Kết quả đánh giá về khả năng cung cấp thông tin