📋 Tổng quan khóa học (5 buổi × 120 phút = 10 giờ)
🏆 Dự thi AIJAM 2026
Khóa học này hướng học sinh chế tạo mô hình thử nghiệm kính thông minh hỗ trợ người khiếm thính bằng AI âm thanh để tham gia cuộc thi AIJAM 2026. Kính không chỉ hiển thị lời nói mà còn phát hiện âm thanh nguy hiểm, xác định hướng nguồn âm và cảnh báo bằng hình ảnh/rung để người dùng phản ứng kịp thời — dựa trên báo cáo ý tưởng đề tài "Kính thông minh hỗ trợ người khiếm thính bằng AI âm thanh".
🧠 Nền tảng: Kiến trúc hệ thống AI âm thanh
Bối cảnh, mục tiêu đề tài, kiến trúc tổng thể (mic → AI xử lý → Wi-Fi → kính hiển thị + rung), khái niệm AI/machine learning cơ bản, làm quen board ESP32/Arduino.
Sản phẩm: Sơ đồ hệ thống + thu âm thử nghiệm đầu tiên.
🔊 Dự án: Nhận diện âm thanh môi trường
Phân loại âm thanh bằng AI (còi xe, báo cháy, gõ cửa, gọi tên) dùng mô hình YAMNet/CNN nhỏ trên mel-spectrogram.
Sản phẩm: Chương trình nhận diện đúng loại âm thanh mẫu và hiện nhãn cảnh báo.
🧭 Dự án: Xác định hướng nguồn âm
Dùng nhiều microphone, so sánh biên độ tín hiệu từng kênh để suy ra hướng trái/phải/trước.
Sản phẩm: Kính rung đúng bên tương ứng với hướng phát ra âm thanh.
💬 Dự án: Speech-to-Text & Lọc nhiễu AI
Chuyển lời nói thành văn bản thời gian thực, lọc nhiễu nền, hiển thị lên màn hình OLED/LCD gắn trên gọng kính.
Sản phẩm: Màn hình kính hiển thị đúng nội dung câu nói ngắn.
🚨 Hoàn thiện: Cảnh báo khẩn cấp theo bối cảnh
Ưu tiên cảnh báo theo bối cảnh indoor/outdoor, hoàn thiện toàn bộ kính, thử nghiệm, định hướng phát triển nâng cao (Gemini API, smart home).
Sản phẩm: Mô hình kính thông minh hoàn chỉnh sẵn sàng dự thi + báo cáo trình bày.
🗂️ Cấu trúc mỗi buổi (120 phút)
| Phần | Thời lượng | Nội dung |
|---|---|---|
| 1. Lý thuyết | 30 phút | Kiến thức AI/phần cứng mới, mô phỏng tương tác, câu hỏi thảo luận |
| 2. Lắp ráp / Chế tạo | 30 phút | Đấu nối linh kiện, gắn lên gọng kính, xử lý lỗi thường gặp |
| 3. Lập trình | 40 phút | Thực hành xử lý âm thanh/AI + thực hành trực tiếp trên board |
| 4. Tổng kết | 20 phút | Checklist dự án, quiz ôn tập, thử thách mở rộng |
🧠 Buổi 1: Kiến trúc hệ thống AI âm thanh
Bối cảnh, mục tiêu & kiến trúc hệ thống
⏱ 30 phút👂 Vì sao cần kính thông minh cho người khiếm thính?
Người khiếm thính khó nhận biết các âm thanh quan trọng trong môi trường sống: còi xe, chuông báo cháy, tiếng gõ cửa, tiếng ai đó gọi tên mình. Kính thông minh trong khóa học này không chỉ hiển thị lời nói thành chữ, mà còn phát hiện âm thanh nguy hiểm, xác định hướng nguồn âm và chuyển thành cảnh báo trực quan hoặc rung để người dùng phản ứng kịp thời.
🏗️ Kiến trúc tổng thể hệ thống
Hệ thống gồm 2 phần chính hoạt động phối hợp qua Wi-Fi:
🤖 AI / Machine Learning là gì? (giải thích đơn giản)
AI (Trí tuệ nhân tạo) ở đây là một chương trình máy tính đã được "huấn luyện" từ rất nhiều mẫu âm thanh có sẵn (tiếng còi xe, tiếng chuông, tiếng nói...), để khi nghe một âm thanh mới, nó có thể tự đoán xem âm thanh đó thuộc loại nào — giống như một đứa trẻ học phân biệt các loại tiếng động sau khi nghe đi nghe lại nhiều lần.
🧩 4 bài toán AI cốt lõi của dự án
| Bài toán | Mục tiêu |
|---|---|
| 1. Phân loại âm thanh | Nhận biết còi xe, chuông cửa, báo cháy, tiếng gọi (Buổi 2) |
| 2. Xác định hướng | Biết âm thanh phát ra từ bên trái/phải/trước (Buổi 3) |
| 3. Speech-to-text | Chuyển lời nói thành chữ hiển thị (Buổi 4) |
| 4. Lọc nhiễu & ưu tiên cảnh báo | Tránh báo sai, ưu tiên đúng tình huống (Buổi 5) |
🧠 Vì sao nên làm AI trước khi hoàn thiện phần cứng?
Vì phần kính cần thiết kế cơ khí và in 3D tốn thời gian, nhóm nên triển khai và thử nghiệm thuật toán AI trước bằng laptop hoặc Raspberry Pi. Cách này giúp kiểm thử thuật toán, thu dữ liệu, đánh giá độ chính xác — chỉ chuyển sang phần cứng đeo được khi logic xử lý đã ổn định.
Chọn linh kiện & bố trí sơ bộ
⏱ 30 phút🧰 Bảng linh kiện chính
| Khối | Linh kiện gợi ý | Ghi chú |
|---|---|---|
| Thu âm | USB mic array / ReSpeaker 2-4 mic | Ưu tiên loại dễ dùng với laptop/Raspberry Pi |
| Xử lý AI | Laptop / Raspberry Pi 4-5 / Orange Pi | Giai đoạn đầu dùng laptop, sau chuyển máy nhúng |
| Kính | ESP32/Arduino + OLED/LCD nhỏ + mô-tơ rung + LED | Nhận dữ liệu qua Wi-Fi/BLE, hiển thị cảnh báo |
| Nguồn | Pin Li-Po + mạch sạc TP4056 + boost 5V | Đủ dòng cho màn hình, ESP32, mô-tơ rung |
| Cơ khí | Gọng kính in 3D / hộp module nhỏ | Ban đầu làm mô hình đeo thử, chưa cần tối ưu thẩm mỹ |
🛠️ Bố trí sơ bộ gọng kính
- Đặt ESP32 và mạch pin ở phần gọng bên (đối trọng hai bên để cân bằng khi đeo).
- Vị trí màn hình OLED/LCD nhỏ nên đặt ở góc trong tầm nhìn phụ, không che khuất tầm nhìn chính.
- Mô-tơ rung đặt sát thái dương, nơi da nhạy cảm dễ cảm nhận rung.
- Dây nối giữa các khối cần gọn, cố định chắc để tránh đứt khi đeo/tháo kính.
🔌 Đấu nối cơ bản ESP32
Đấu màn hình OLED (thường dùng giao tiếp I2C — chỉ cần 4 dây: VCC, GND, SDA, SCL) và mô-tơ rung (qua 1 chân tín hiệu số) vào ESP32. Đây là bước đấu nối phần cứng cơ bản, sẽ được lập trình điều khiển chi tiết hơn ở Buổi 4-5.
Thu âm thử nghiệm đầu tiên
⏱ 40 phút🎚️ Lấy mẫu âm thanh (sampling) là gì?
Âm thanh thật là sóng liên tục, máy tính không lưu được sóng liên tục nên phải "chụp" giá trị biên độ sóng tại từng thời điểm rất nhỏ cách đều nhau — gọi là lấy mẫu (sampling). Tần số lấy mẫu phổ biến cho giọng nói là 16.000 mẫu/giây (16kHz).
🎙️ Thực hành: ghi âm & phát lại
- Kết nối mic vào laptop/Raspberry Pi, dùng thư viện thu âm cơ bản (ví dụ PyAudio trong Python) để ghi âm 3 giây.
- Lưu đoạn ghi âm thành file .wav, phát lại để kiểm tra chất lượng thu âm.
- Thử ghi âm ở môi trường yên tĩnh và ồn ào để so sánh chất lượng tín hiệu.
📊 Sóng âm nhìn như thế nào?
Đây là dạng "dạng sóng" (waveform) — trục ngang là thời gian, trục dọc là biên độ. Ở Buổi 2, ta sẽ biến đổi sóng này thành mel-spectrogram để AI dễ "nhìn" và phân loại hơn.
Tổng kết Buổi 1
⏱ 20 phút✅ Checklist dự án
📝 Quiz ôn tập Buổi 1
1. Kính thông minh trong dự án hỗ trợ đối tượng người dùng nào?
2. Ngoài hiển thị lời nói, kính còn có chức năng gì?
3. Trong kiến trúc hệ thống, phần nào chịu trách nhiệm phân loại âm thanh bằng AI?
4. Hai phần của hệ thống giao tiếp với nhau qua đâu?
5. Vì sao nên phát triển AI trước khi hoàn thiện phần cứng đeo được?
6. "Lấy mẫu âm thanh" (sampling) nghĩa là gì?
7. Tần số lấy mẫu phổ biến cho giọng nói là bao nhiêu?
8. Mô-tơ rung trên kính nên đặt ở vị trí nào để người dùng dễ cảm nhận?
9. Hệ thống kính thông minh gồm mấy phần chính?
10. ESP32/Arduino trong phần kính đảm nhận vai trò gì?
11. Bài toán "xác định hướng nguồn âm" sẽ được triển khai ở buổi học nào?
12. Bài toán "chuyển lời nói thành văn bản" (speech-to-text) thuộc buổi học nào?
13. Bài toán "lọc nhiễu và ưu tiên cảnh báo theo bối cảnh" thuộc buổi học nào?
14. Mô hình AI trong dự án học cách phân loại âm thanh từ đâu?
15. Linh kiện gợi ý cho khối thu âm là gì?
16. Ở giai đoạn đầu, khối xử lý AI nên dùng thiết bị nào?
17. Khối "kính" cần những linh kiện chính nào?
18. Nguồn điện cho kính thông minh nên dùng loại nào?
19. Ở giai đoạn đầu, gọng kính nên được làm theo dạng nào?
20. ESP32 và mạch pin nên được bố trí ở đâu trên gọng kính?
21. Màn hình OLED/LCD nên đặt ở vị trí nào trên kính?
22. Màn hình OLED thường giao tiếp với ESP32 qua chuẩn nào?
23. Dạng biểu diễn của âm thanh ghi được theo thời gian gọi là gì?
24. Ở buổi học sau, âm thanh sẽ được biến đổi thành dạng nào để AI dễ phân loại hơn?
25. Thư viện Python phổ biến để ghi âm cơ bản là gì?
26. Đoạn ghi âm thử nghiệm thường được lưu dưới định dạng file nào?
27. Bài thực hành ghi âm ở Buổi 1 yêu cầu làm gì?
28. Sản phẩm cần hoàn thành vào cuối Buổi 1 là gì?
29. AI (Trí tuệ nhân tạo) trong dự án được hiểu đơn giản là gì?
30. Mục tiêu chính của khóa học "Chế tạo kính thông minh AI" là gì?
Bấm nộp sẽ mở 1 tab GitHub Issue đã điền sẵn điểm số của bạn — bấm "Submit new issue" để hoàn tất nộp bài.
🔊 Buổi 2: Nhận diện âm thanh môi trường
Phân loại âm thanh bằng AI
⏱ 30 phút🎯 Environmental Sound Detection là gì?
Là chức năng nhận diện các âm thanh môi trường quan trọng: còi xe, chuông báo cháy, tiếng gõ cửa, tiếng gọi tên. Khi phát hiện đúng loại âm thanh, hệ thống sẽ hiển thị chữ/cảnh báo màu tương ứng trên kính và kích hoạt mô-tơ rung.
🌈 Mel-spectrogram — "ảnh chụp" của âm thanh
Máy tính khó phân loại trực tiếp từ dạng sóng thô, nên âm thanh được biến đổi thành mel-spectrogram — một dạng "ảnh" thể hiện năng lượng âm thanh theo tần số và thời gian, mô phỏng cách tai người cảm nhận âm thanh. Mô hình AI sau đó "nhìn" ảnh mel-spectrogram này để phân loại, tương tự cách AI nhận diện ảnh vật thể.
🧠 Các mô hình AI có thể dùng
📈 Độ tin cậy (confidence score)
Mô hình AI không chỉ trả về "nhãn" (label) mà còn kèm theo một con số độ tin cậy (ví dụ 0.92 = 92% chắc chắn). Ta thường chỉ chấp nhận cảnh báo khi độ tin cậy vượt một ngưỡng nhất định, tránh báo sai khi AI không chắc chắn.
🕹 Câu hỏi thảo luận
Đấu nối mic & kiểm tra tín hiệu
⏱ 30 phút🛠️ Đấu nối microphone
- Cắm USB mic array vào laptop/Raspberry Pi (hoặc đấu mic I2S theo sơ đồ chân nếu dùng loại mic rời).
- Cài đặt driver/thư viện thu âm cần thiết (ví dụ PyAudio, sounddevice cho Python).
- Kiểm tra mức âm lượng thu được bằng một đoạn ghi âm test ngắn.
🔍 Kiểm tra chất lượng tín hiệu
🧯 Lỗi thường gặp
| Hiện tượng | Nguyên nhân | Cách khắc phục |
|---|---|---|
| Không thu được âm thanh | Sai driver hoặc chưa cấp quyền micro cho ứng dụng | Kiểm tra driver, cấp quyền truy cập micro trong hệ điều hành |
| Tín hiệu nhiễu nhiều | Mic đặt gần nguồn nhiễu (quạt, loa) | Di chuyển mic xa nguồn nhiễu, dùng mic có khử ồn |
Chạy thử mô hình phân loại
⏱ 40 phút📥 Sử dụng mô hình có sẵn (pretrained)
Thay vì tự huấn luyện AI từ đầu (rất tốn dữ liệu và thời gian), nhóm dùng mô hình YAMNet/TensorFlow Lite đã được huấn luyện sẵn, chỉ cần đưa đoạn âm thanh ghi được vào mô hình và đọc kết quả nhãn + độ tin cậy trả về.
🧪 Thực hành: nhận diện âm thanh mẫu
- Chuẩn bị vài đoạn âm thanh mẫu: tiếng còi xe, tiếng chuông, tiếng gõ cửa (tải từ nguồn học liệu mở hoặc tự ghi âm).
- Đưa từng đoạn vào mô hình, ghi lại nhãn và độ tin cậy mô hình trả về.
- So sánh kết quả AI với thực tế — nhận xét trường hợp nào AI đoán đúng, trường hợp nào chưa chính xác.
🚦 Ánh xạ kết quả AI sang cảnh báo trên kính
| Nhãn AI nhận diện | Cảnh báo hiển thị | Màu |
|---|---|---|
| Còi xe | ⚠️ CÒI XE | Đỏ |
| Báo cháy | 🔥 BÁO CHÁY | Đỏ nhấp nháy |
| Gõ cửa | 🚪 CÓ NGƯỜI GÕ CỬA | Vàng |
| Gọi tên | 🙋 CÓ NGƯỜI GỌI | Xanh dương |
Tổng kết Buổi 2
⏱ 20 phút✅ Checklist dự án
📝 Quiz ôn tập Buổi 2
1. Mel-spectrogram dùng để làm gì?
2. YAMNet là gì?
3. Độ tin cậy (confidence score) của AI thể hiện điều gì?
4. Vì sao nên đặt ngưỡng độ tin cậy tối thiểu trước khi cảnh báo?
5. Vì sao nhóm nên dùng mô hình pretrained thay vì tự huấn luyện từ đầu?
6. TensorFlow Lite phù hợp để chạy trên loại thiết bị nào?
7. Khi AI nhận diện "báo cháy", cảnh báo trên kính nên hiển thị như thế nào theo bảng ánh xạ?
8. Bước nào nên làm trước khi chạy mô hình AI phân loại?
Bấm nộp sẽ mở 1 tab GitHub Issue đã điền sẵn điểm số của bạn — bấm "Submit new issue" để hoàn tất nộp bài.
🧭 Buổi 3: Xác định hướng nguồn âm
Nguyên lý xác định hướng âm thanh
⏱ 30 phút🎯 Vì sao cần biết hướng nguồn âm?
Biết được âm thanh (còi xe, tiếng gọi) phát ra từ hướng nào giúp người dùng phản ứng chính xác hơn — ví dụ quay đầu đúng hướng có xe đang tới, thay vì chỉ biết "có nguy hiểm" mà không biết từ đâu.
🎙️🎙️🎙️ Dùng nhiều microphone (mic array)
Đặt 3 microphone ở ba vị trí khác nhau trên gọng kính (trái, phải, giữa). Vì khoảng cách từ nguồn âm đến mỗi mic khác nhau, âm thanh sẽ đến mỗi mic ở thời điểm và biên độ hơi khác nhau một chút — đây chính là "manh mối" để suy luận ra hướng.
📊 Cách đơn giản: so sánh biên độ
Cách dễ triển khai nhất cho học sinh: so sánh biên độ (độ lớn) tín hiệu thu được ở từng kênh mic. Kênh nào có biên độ lớn nhất → âm thanh đến gần hướng đó nhất.
Bấm một nút để xem biên độ mic thay đổi theo hướng âm thanh.
🚀 Kỹ thuật nâng cao: TDOA & GCC-PHAT
Ở mức nâng cao hơn (sau khi thành thạo cách so sánh biên độ), có thể dùng TDOA (Time Difference Of Arrival — chênh lệch thời gian đến) hoặc thuật toán GCC-PHAT để tính hướng chính xác hơn, dựa trên độ trễ thời gian cực nhỏ giữa các mic thay vì chỉ so biên độ.
Lắp mic array lên gọng kính
⏱ 30 phút🛠️ Các bước lắp đặt
- Gắn 3 mic nhỏ (hoặc dùng 1 module mic array có sẵn 3-4 mic) tại vị trí trái, phải và giữa gọng kính.
- Đảm bảo khoảng cách giữa các mic đủ để tạo chênh lệch tín hiệu rõ rệt, nhưng vẫn gọn trong khung gọng kính.
- Đấu dây tín hiệu từng mic về board xử lý (Raspberry Pi hoặc module xử lý riêng), đánh dấu rõ mic nào là trái/giữa/phải.
🔍 Kiểm tra sau khi lắp
Lập trình xác định hướng & rung cảnh báo
⏱ 40 phút🧮 So sánh biên độ 3 kênh
Chương trình đọc biên độ tín hiệu từ 3 kênh mic trong cùng một thời điểm, so sánh giá trị lớn nhất trong 3 kênh đó để xác định "hướng ban đầu": kênh trái lớn nhất → hướng trái; kênh phải lớn nhất → hướng phải; kênh giữa lớn nhất hoặc gần bằng nhau → hướng trước mặt.
📳 Gửi lệnh rung theo hướng qua Wi-Fi
Sau khi xác định hướng, phần xử lý AI gửi một mã lệnh nhỏ qua Wi-Fi tới ESP32 trên kính (ví dụ: 1 = rung bên trái, 2 = rung bên phải, 3 = rung cả hai bên nhẹ = phía trước). ESP32 nhận mã và kích hoạt đúng mô-tơ rung tương ứng.
🔁 Kết hợp với nhãn phân loại âm thanh (Buổi 2)
Kết quả cuối cùng gửi tới kính sẽ gồm cả 2 thông tin: loại âm thanh (từ Buổi 2) và hướng phát ra (Buổi 3) — ví dụ "⚠️ CÒI XE — hướng phải", giúp người dùng vừa biết nguy hiểm gì, vừa biết cần chú ý hướng nào.
Tổng kết Buổi 3
⏱ 20 phút✅ Checklist dự án
📝 Quiz ôn tập Buổi 3
1. Vì sao cần biết hướng nguồn âm, không chỉ loại âm thanh?
2. Cách đơn giản nhất để xác định hướng âm thanh trong dự án này là gì?
3. Nếu mic bên phải có biên độ lớn nhất, âm thanh nhiều khả năng đến từ hướng nào?
4. TDOA là viết tắt của cụm từ nào?
5. Mã lệnh rung được gửi từ đâu tới ESP32?
6. Kết quả cuối cùng gửi tới kính nên gồm những thông tin gì?
7. Vì sao cần đặt 3 mic ở các vị trí khác nhau thay vì chỉ 1 mic?
8. GCC-PHAT là kỹ thuật thuộc mức độ nào so với so sánh biên độ đơn giản?
Bấm nộp sẽ mở 1 tab GitHub Issue đã điền sẵn điểm số của bạn — bấm "Submit new issue" để hoàn tất nộp bài.
💬 Buổi 4: Speech-to-Text & Lọc nhiễu AI
Chuyển giọng nói thành văn bản
⏱ 30 phút💬 Live Speech-to-Text là gì?
Là chức năng chuyển lời nói thành văn bản thời gian thực, hiển thị lên màn hình kính hoặc ứng dụng đi kèm — giúp người khiếm thính "đọc" được nội dung người khác đang nói mà không cần biết ngôn ngữ ký hiệu.
🛠️ Công cụ speech-to-text phù hợp học sinh
🧹 Lọc nhiễu AI (Noise Filtering)
Trong lớp học, quán cà phê hay ngoài đường có rất nhiều tạp âm nền. Lọc nhiễu AI áp dụng tiền xử lý âm thanh (loại bỏ tần số nhiễu nền) kết hợp mô hình phân loại để tăng độ chính xác nhận diện giọng nói/âm thanh mục tiêu trong môi trường ồn.
⏳ Thử nghiệm hiển thị văn bản
Lắp màn hình hiển thị
⏱ 30 phút🛠️ Lắp OLED/LCD lên gọng kính
- Gắn màn hình OLED/LCD nhỏ vào vị trí đã bố trí từ Buổi 1 (góc trong tầm nhìn phụ).
- Đấu 4 dây I2C (VCC, GND, SDA, SCL) từ màn hình vào ESP32.
- Nạp chương trình test hiển thị chữ "Xin chào" để kiểm tra màn hình hoạt động đúng trước khi tích hợp.
🧯 Lỗi thường gặp với màn hình OLED/LCD
| Hiện tượng | Nguyên nhân | Cách khắc phục |
|---|---|---|
| Màn hình không sáng | Sai địa chỉ I2C hoặc thiếu nguồn | Kiểm tra lại địa chỉ I2C trong code, đo lại điện áp nguồn cấp |
| Chữ hiển thị bị vỡ/nhòe | Sai thư viện điều khiển màn hình | Dùng đúng thư viện tương thích với loại màn hình đang dùng |
Lập trình gửi văn bản qua Wi-Fi
⏱ 40 phút📡 Truyền văn bản từ AI tới ESP32
Sau khi mô hình speech-to-text chuyển giọng nói thành chữ trên laptop/Raspberry Pi, đoạn văn bản ngắn đó được gửi qua Wi-Fi (giao thức HTTP đơn giản hoặc MQTT) tới ESP32 trên kính.
🖥️ Hiển thị văn bản lên màn hình
ESP32 nhận được chuỗi văn bản, cắt bớt nếu quá dài (màn hình nhỏ chỉ hiển thị được một số ký tự nhất định mỗi dòng), sau đó xuất ra màn hình OLED/LCD theo từng dòng.
🧹 Áp dụng lọc nhiễu trước khi hiển thị
Trước khi gửi văn bản, chương trình kiểm tra độ tin cậy của kết quả speech-to-text — nếu quá thấp (do quá nhiều nhiễu nền), hệ thống có thể hiển thị "..." thay vì hiển thị một câu sai lệch gây hiểu nhầm.
Tổng kết Buổi 4
⏱ 20 phút✅ Checklist dự án
📝 Quiz ôn tập Buổi 4
1. Live Speech-to-Text giúp người khiếm thính làm gì?
2. Vosk và Whisper tiny có điểm chung nào?
3. Lọc nhiễu AI giúp ích điều gì trong môi trường ồn?
4. Màn hình OLED/LCD thường giao tiếp với ESP32 qua chuẩn nào?
5. Vì sao cần cắt bớt văn bản trước khi hiển thị lên màn hình nhỏ?
6. Nếu độ tin cậy speech-to-text quá thấp, hệ thống nên làm gì?
7. Văn bản được truyền từ phần xử lý AI tới ESP32 qua đâu?
8. Ở giai đoạn đầu, mục tiêu speech-to-text nên đặt ra là gì?
Bấm nộp sẽ mở 1 tab GitHub Issue đã điền sẵn điểm số của bạn — bấm "Submit new issue" để hoàn tất nộp bài.
🚨 Buổi 5: Cảnh báo khẩn cấp theo bối cảnh & Hoàn thiện
Ưu tiên cảnh báo theo bối cảnh
⏱ 30 phút🚨 Emergency Detection System là gì?
Là hệ thống ưu tiên cảnh báo theo bối cảnh sử dụng: khi ở ngoài trời, hệ thống ưu tiên cảnh báo âm thanh giao thông (còi xe, phanh gấp); khi ở trong nhà, hệ thống ưu tiên cảnh báo cháy, tiếng gõ cửa, tiếng kính vỡ. Cách này giúp giảm cảnh báo thừa và đúng tình huống hơn.
🏠🌳 Cách xác định bối cảnh indoor/outdoor
Có thể cho người dùng tự chọn chế độ (đơn giản nhất), hoặc dùng ngưỡng mức tiếng ồn nền / dữ liệu GPS / thiết lập trong ứng dụng đi kèm để tự động thay đổi mức ưu tiên cảnh báo mà không cần thao tác thủ công.
🧹 Nhắc lại: Lọc nhiễu & tránh cảnh báo lặp
Kết hợp thêm cơ chế "bỏ qua âm thanh lặp lại trong thời gian ngắn" (ví dụ còi xe kêu liên tục không cần báo lại mỗi giây) để tránh làm phiền người dùng bằng quá nhiều cảnh báo trùng lặp.
🚀 Giai đoạn nâng cao (sau khóa học)
🗓️ Lộ trình phát triển tổng thể (4 tuần)
| Tuần | Nội dung |
|---|---|
| Tuần 1 | Thu dữ liệu âm thanh, chạy thử mô hình phân loại trên laptop |
| Tuần 2 | Thêm speech-to-text, lọc nhiễu, cơ chế ưu tiên indoor/outdoor |
| Tuần 3 | ESP32 nhận dữ liệu qua Wi-Fi, điều khiển màn hình và mô-tơ rung |
| Tuần 4 | Ghép mô hình kính hoàn chỉnh, thử nghiệm thực tế, đo độ trễ và tỷ lệ đúng |
Hoàn thiện lắp ráp kính
⏱ 30 phút🛠️ Kiểm tra tổng thể trước khi hoàn thiện
- Rà soát toàn bộ dây nối giữa mic, ESP32, màn hình, mô-tơ rung — cố định gọn gàng, tránh đứt khi đeo/tháo.
- Kiểm tra pin Li-Po và mạch sạc TP4056 hoạt động ổn định, đo thời lượng sử dụng thực tế.
- Cân chỉnh lại trọng lượng hai bên gọng kính để đeo thoải mái, không bị lệch.
📋 Bảng kiểm tra hoàn thiện (final checklist)
| Hạng mục | Đạt / Chưa đạt |
|---|---|
| Mic array thu âm rõ, đủ 3 kênh | ____ |
| AI phân loại đúng >80% với âm thanh mẫu | ____ |
| Xác định hướng rung đúng bên | ____ |
| Speech-to-text hiển thị đúng câu ngắn | ____ |
| Chuyển chế độ indoor/outdoor hoạt động đúng | ____ |
Hoàn thiện chương trình tổng hợp
⏱ 40 phút🧩 Ghép toàn bộ logic đã học
Chương trình cuối cùng kết hợp toàn bộ 4 buổi trước: thu âm (Buổi 1) → phân loại âm thanh + độ tin cậy (Buổi 2) → xác định hướng (Buổi 3) → speech-to-text + lọc nhiễu (Buổi 4) → áp dụng mức ưu tiên theo bối cảnh (Buổi 5) → gửi kết quả cuối cùng qua Wi-Fi tới kính để hiển thị và rung.
🐞 Mẹo gỡ lỗi (debug) hệ thống
- Kiểm tra từng khối riêng lẻ (mic → AI → Wi-Fi → kính) trước khi ghép toàn bộ pipeline.
- In log (nhật ký) từng bước xử lý ra màn hình laptop để dễ theo dõi lỗi xảy ra ở khối nào.
- Nếu cảnh báo bị trễ nhiều, đo thời gian xử lý từng bước để tìm ra khối đang làm chậm hệ thống.
🏆 Chuẩn bị thuyết trình dự thi AIJAM 2026
| Tiêu chí | Mô tả |
|---|---|
| Ý nghĩa xã hội | Giải quyết đúng nhu cầu thực tế của người khiếm thính |
| Kỹ thuật AI | Độ chính xác phân loại âm thanh, xác định hướng, speech-to-text |
| Hoàn thiện phần cứng | Kính đeo được, gọn nhẹ, hoạt động ổn định |
| Thuyết trình | Trình bày rõ kiến trúc hệ thống, quá trình phát triển và hướng mở rộng |
Tổng kết khóa học
⏱ 20 phút✅ Checklist hoàn thiện dự thi
📝 Quiz tổng kết Buổi 5
1. Emergency Detection System ưu tiên cảnh báo dựa trên yếu tố nào?
2. Khi ở trong nhà, hệ thống nên ưu tiên cảnh báo loại âm thanh nào?
3. Vì sao cần cơ chế bỏ qua âm thanh lặp lại trong thời gian ngắn?
4. Theo lộ trình 4 tuần, Tuần 3 tập trung vào nội dung gì?
5. API Gemini được đề cập dùng cho mục đích gì ở giai đoạn nâng cao?
6. Bước nào nên làm trước khi ghép toàn bộ pipeline hệ thống?
7. Tiêu chí "Ý nghĩa xã hội" khi thuyết trình dự thi AIJAM 2026 đánh giá điều gì?
8. Nếu hệ thống cảnh báo bị trễ nhiều, nên làm gì để tìm nguyên nhân?
Bấm nộp sẽ mở 1 tab GitHub Issue đã điền sẵn điểm số của bạn — bấm "Submit new issue" để hoàn tất nộp bài.