Xây dựng tính năng AI, hoàn thiện giao diện và kiểm thử Với PyQT

 Text-to-Speech (TTS) là một công nghệ AI chuyển đổi văn bản thành âm thanh, cho phép máy tính hoặc thiết bị đọc to nội dung được chỉ định. TTS sử dụng trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên để tạo ra giọng nói tự nhiên và dễ nghe. 

 

Trong ứng dụng bạn vừa trải nghiệm, TTS được sử dụng để tăng trải nghiệm người dùng và hỗ trợ người khiếm thị/người có khó khăn khi đọc. Ngoài ra, TTS còn có các ứng dụng thực tế sau: 

  • Học ngôn ngữ (ứng dụng học phát âm chuẩn) 

  • Tương tác tự nhiên (chatbot, trợ ảo) 

  • Đọc thông báo (ứng dụng sân bay, ứng dụng GPS)

Import QPushButton 

 from PyQt6.QtWidgets import QMainWindow, QApplication, QMessageBox, QPushButton 

 

Tìm các nút QPushButton 

        # Khiến tất cả các nút "nói" 

        all_buttons = self.findChildren(QPushButton) 

        for button in all_buttons: 

            button.clicked.connect(lambda _, b=button: self.speak_text(b)) 

 

 

Cài đặt pyttsx3: pip install pyttsx3 

Tạo engine trong MainWindow 

         

        # Setup engine TTS 

        self.tts_engine = pyttsx3.init() 

 

Định nghĩa phương thức speak_text 

    def speak_text(self, button:QPushButton): 

        # Phương thức text to speech 

        self.tts_engine.say(button.text()) 

        self.tts_engine.runAndWait() 


Áp dụng thư viện AI cho dự án nhân
  • Xây dựng thêm các tính năng hữu ích cho ứng dụng 

  • Vận dụng thư viện AI vào xây dựng phần mềm

Triển khai phần mềm 

Khi đã thiết kế và viết xong phần mềm, bước cuối cùng là bước triển khai phần mềm trên môi trường thực tế. Việc triển khai (deploy) phục vụ nhiều mục đích: thương mại, chia sẻ trực tuyến hay đơn giản là chia sẻ cho người thân và bạn bè. 

Phần mềm đã được đóng gói (packaged) sẽ tự động xử lý các package và các thư viện, người dùng sẽ không cần phải tự cài đặt từ đầu và chỉ cần chạy phần mềm ngay khi họ tải về. 

Các bước đóng gói phần mềm desktop 

  1. Xác định nền tảng sẽ triển khai của ứng dụng 

  1. Cài đặt công cụ để đóng gói phần mềm 

  1. Đóng gói phần mềm 

  1. Triển khai phần mềm 

 

Xác định nền tảng 

Vì ứng dụng xây dựng hiện tại đang là ứng dụng desktop nên có thể chọn nền tảng chạy của ứng dụng là Windows, MacOS hoặc Linux. 

 

Cài đặt công cụ đóng gói 

Cài đặt thư viện pyinstaller sử dụng terminal: pip install pyinstaller 

 

Đóng gói phần mềm 

Trong terminal, tiếp tục chạy câu lệnh 

pyinstaller --noconfirm --onefile --windowed --name "CRUD Ranking APP" main.py 

Trong đó: 

  • --noconfirm flag để viết đè lên folder output của ứng dụng đã được đóng gói 

  • --onefile flag để đóng gói ứng dụng thành một file .exe duy nhất 

  • --windowed flag chỉ hiển thị cửa sổ của ứng dụng, không hiển thị cửa sổ console 

  • --name flag đặt lại tên của ứng dụng 

  • main.py script python để chạy ứng dụng cần đóng gói 

Sau khi chạy xong sẽ được 02 folder mới là dist, build và một file .spec 

image4.png, Hình ảnh 

Cấu trúc folder project sẽ như sau: 

 

├── main.py  

├── CRUD Ranking App.spec  

├── build  

│   └── app  

│   ├── localpycos  

│   ├── Analysis-00.toc  

│   ├── COLLECT-00.toc  

│   ├── EXE-00.toc  

│   ├── PKG-00.pkg  

│   ├── PKG-00.toc  

│   ├── PYZ-00.pyz  

│   ├── PYZ-00.toc  

│   ├── app  

│   ├── app.pkg  

│   ├── base_library.zip  

│   ├── warn-app.txt  

│   └── xref-app.html  

└── dist 

  └── CRUD Ranking App.exe  

  ... 

Trong đó: 

  • Folder build folder pyinstaller tạo ra để đóng gói app. thể bỏ qua nội dung của folder này. 

  • Folder dist chứa file chúng ta sẽ triển khai. Thường folder này sẽ chứa file .exe để chạy ứng dụng các thư viện khác để chạy thư viện, nhưng do đã chọn flag --onefile nên sẽ chỉ gồm một file .exe.  

Tuy nhiên khi chạy file .exe này sẽ báo lỗi vì không load được các resource và material của app (bao gồm hình ảnh, dữ liệu, icon, ...). Thế nên ta cần copy (các) folder resource của app vào chung folder với file .exe này để chạy. 

 

Cấu trúc folder dist sẽ như sau sau khi copy folder ui data vào trong: 

 

└── dist 

──ui 

│      ──images 

│      ──main_window.ui 

│      ──….. 

── data 

│      └──data.json 

  └── CRUD Ranking App.exe 

Khi triển khai phần mềm, ta sẽ sử dụng folder dist này. 

Triển khai phần mềm 

Sau khi đã có folder chứa phần mềm đã được đóng gói, ta sẽ đặt lại tên folder dist thành folder tên version của ứng dụng (crud-ranking-app_v1.0) để chia sẻ cho bạn bè hoặc tải lên các nền tảng. 

 

Ví dụ: Triển khai lên nền tảng Github 

  • Tạo repository trên github 

    • Push code lên repo 

    • Vào mục Releases image3.png, Hình ảnh 

    • Chọn Draft a new release image7.png, Hình ảnh 

    • Chọn Choose a tag viết tag tương ứng 

    • image6.png, Hình ảnh 

      • Điền vào các mục: 

      • Release title 

      • Release description 

      • Nén folder ứng dụng thành file .zip hoặc .rar tải lên bằng cách chọn 

      image2.png, Hình ảnh 

      • Chọn Publish release để hoàn thành image5.png, Hình ảnh 




Một số công cụ chọn màu sắc phù hợp 

  • AI Color Hunt: Công cụ tự động gợi ý các bảng màu phổ biến hoặc theo chủ đề. Giáo viên giải thích cách học viên thể nhập từ khóa hoặc chọn các bảng màu sẵn. 

  • Adobe Color: Công cụ cho phép tạo bảng màu bằng cách tùy chỉnh màu sắc dựa trên các nguyên tắc phối màu như tương phản, bổ sung. Học sinh thể sử dụng vòng tròn màu để chọn các màu phù hợp. 

  • Coolors: Giáo viên giới thiệu Coolors như một công cụ dễ dùng, giúp học viên nhanh chóng thử nghiệm nhiều bảng màu khác nhau lưu lại bảng màu yêu thích. 

 

Một vài nguyên tắc phối màu phổ biến 

  • Màu bổ sung (vd: tím vàng) 

  • Màu tương phản (vd: nền tối với chữ sáng màu) 

  • Màu tương tự (vd: sắc thái xanh dương, xanh , xanh ngọc)


Các bước kiểm thử 

B1. Tiến hành cài đặt lại chương trình để đảm bảo tính hoạt động. 

B2. Xác định lại các giao diện và thành phần cần có của chương trình 

B3. Kiểm thử bằng cách kiểm tra màu sắc, các trang, thành phần và đảm bảo từng thành phần giao diện được hiển thị đúng 

B4. Xác định lại các chức năng cần có của chương trình 

B5. Kiểm thử bằng cách chạy các chức năng, cần kiểm tra kỹ các chức năng CRUD như thêm, xóa, sửa. 

B6 (optional). Kiểm thử các trường điền vào cửa sổ thêm/sửa để đảm bảo đúng kiểu dữ liệu 








Mới hơn Cũ hơn