← Danh sách khóa học

🎓 Danh sách khóa học Thầy Lê Chí Tuyền

Khóa học: 🕶️ Chế tạo kính thông minh hỗ trợ người khiếm thính bằng AI âm thanh · 5 buổi × 2 giờ · Dùng phím ← → hoặc nút để chuyển trang
🏆 Cuộc thi AIJAM 2026

📋 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".

1

🧠 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.

2

🔊 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.

3

🧭 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.

4

💬 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.

5

🚨 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ầnThời lượngNội dung
1. Lý thuyết30 phútKiế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ạo30 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ình40 phútThực hành xử lý âm thanh/AI + thực hành trực tiếp trên board
4. Tổng kết20 phútChecklist 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

Dự án: Sơ đồ hệ thống + thu âm thử nghiệm

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:

🎙️
Phần xử lý AIMicrophone thu âm → mô hình AI phân loại/lọc nhiễu/nhận dạng lời nói → gửi kết quả qua Wi-Fi
🕶️
Phần kính thông minhESP32/Arduino nhận dữ liệu → điều khiển màn hình hiển thị + mô-tơ rung, chạy bằng pin sạc

🤖 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ánMục tiêu
1. Phân loại âm thanhNhậ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ướngBiết âm thanh phát ra từ bên trái/phải/trước (Buổi 3)
3. Speech-to-textChuyể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áoTrá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.

💡 Đây là lý do Buổi 1-2 tập trung vào xử lý AI trên máy tính, còn việc lắp ráp lên gọng kính thật sẽ hoàn chỉnh dần ở các buổi sau.

Chọn linh kiện & bố trí sơ bộ

⏱ 30 phút

🧰 Bảng linh kiện chính

KhốiLinh kiện gợi ýGhi chú
Thu âmUSB mic array / ReSpeaker 2-4 micƯu tiên loại dễ dùng với laptop/Raspberry Pi
Xử lý AILaptop / Raspberry Pi 4-5 / Orange PiGiai đoạn đầu dùng laptop, sau chuyển máy nhúng
KínhESP32/Arduino + OLED/LCD nhỏ + mô-tơ rung + LEDNhận dữ liệu qua Wi-Fi/BLE, hiển thị cảnh báo
NguồnPin 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

  1. Đặt ESP32 và mạch pin ở phần gọng bên (đối trọng hai bên để cân bằng khi đeo).
  2. 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.
  3. Mô-tơ rung đặt sát thái dương, nơi da nhạy cảm dễ cảm nhận rung.
  4. 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

  1. 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.
  2. Lưu đoạn ghi âm thành file .wav, phát lại để kiểm tra chất lượng thu âm.
  3. 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?

Người khiếm thị
Người khiếm thính
Người cao tuổi nói chung

2. Ngoài hiển thị lời nói, kính còn có chức năng gì?

Chỉ phát nhạc
Phát hiện âm thanh nguy hiểm và xác định hướng nguồn âm
Đo nhịp tim

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?

Phần kính (ESP32/Arduino)
Phần xử lý AI (microphone + mô hình AI)
Mô-tơ rung

4. Hai phần của hệ thống giao tiếp với nhau qua đâu?

Bluetooth bắt buộc
Wi-Fi
Dây USB duy nhất

5. Vì sao nên phát triển AI trước khi hoàn thiện phần cứng đeo được?

Vì AI không cần phần cứng
Để kiểm thử thuật toán ổn định trước khi tốn thời gian thiết kế cơ khí/in 3D
Vì luật thi yêu cầu vậy

6. "Lấy mẫu âm thanh" (sampling) nghĩa là gì?

Ghi âm không giới hạn thời gian
Chụp lại giá trị biên độ sóng âm tại các thời điểm rất nhỏ cách đều nhau
Xóa bớt âm thanh nền

7. Tần số lấy mẫu phổ biến cho giọng nói là bao nhiêu?

16 mẫu/giây
16.000 mẫu/giây (16kHz)
16 triệu mẫu/giây

8. Mô-tơ rung trên kính nên đặt ở vị trí nào để người dùng dễ cảm nhận?

Ở giữa tròng kính
Sát thái dương
Ở đầu gọng phía sau tai

9. Hệ thống kính thông minh gồm mấy phần chính?

1 phần duy nhất
2 phần: xử lý AI và kính thông minh
4 phần độc lập

10. ESP32/Arduino trong phần kính đảm nhận vai trò gì?

Huấn luyện mô hình AI
Nhận dữ liệu qua Wi-Fi và điều khiển màn hình + mô-tơ rung
Ghi âm chính cho toàn hệ thống

11. Bài toán "xác định hướng nguồn âm" sẽ được triển khai ở buổi học nào?

Buổi 1
Buổi 3
Buổi 5

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?

Buổi 2
Buổi 4
Buổi 1

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?

Buổi 2
Buổi 5
Buổi 3

14. Mô hình AI trong dự án học cách phân loại âm thanh từ đâu?

Tự nhiên biết mà không cần dữ liệu
Được huấn luyện từ rất nhiều mẫu âm thanh có sẵn
Chỉ từ 1 mẫu âm thanh duy nhất

15. Linh kiện gợi ý cho khối thu âm là gì?

Loa Bluetooth
USB microphone array / ReSpeaker
Webcam

16. Ở giai đoạn đầu, khối xử lý AI nên dùng thiết bị nào?

Ngay lập tức dùng ESP32
Laptop, sau đó mới chuyển sang Raspberry Pi khi ổn định
Điện thoại di động

17. Khối "kính" cần những linh kiện chính nào?

Chỉ cần pin và dây điện
ESP32/Arduino, màn hình OLED/LCD, mô-tơ rung, LED cảnh báo
Chỉ cần microphone

18. Nguồn điện cho kính thông minh nên dùng loại nào?

Pin AA thường
Pin Li-Po kèm mạch sạc TP4056
Không cần pin, cắm điện trực tiếp

19. Ở giai đoạn đầu, gọng kính nên được làm theo dạng nào?

Hoàn thiện thẩm mỹ ngay từ đầu
Mô hình đeo thử đơn giản, chưa cần tối ưu thẩm mỹ
Bằng kim loại nguyên khối

20. ESP32 và mạch pin nên được bố trí ở đâu trên gọng kính?

Chỉ đặt ở một bên gọng
Ở phần gọng bên, đối trọng hai bên để cân bằng khi đeo
Ở giữa tròng kính

21. Màn hình OLED/LCD nên đặt ở vị trí nào trên kính?

Che kín toàn bộ tầm nhìn chính
Góc trong tầm nhìn phụ, không che khuất tầm nhìn chính
Phía sau gáy

22. Màn hình OLED thường giao tiếp với ESP32 qua chuẩn nào?

HDMI
I2C (VCC, GND, SDA, SCL)
USB-C

23. Dạng biểu diễn của âm thanh ghi được theo thời gian gọi là gì?

Mel-spectrogram
Dạng sóng (waveform)
Ma trận điểm ảnh

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?

File văn bản
Mel-spectrogram
Mã Morse

25. Thư viện Python phổ biến để ghi âm cơ bản là gì?

NumPy
PyAudio
Matplotlib

26. Đoạn ghi âm thử nghiệm thường được lưu dưới định dạng file nào?

.pdf
.wav
.exe

27. Bài thực hành ghi âm ở Buổi 1 yêu cầu làm gì?

Ghi âm 1 giờ liên tục
Ghi âm khoảng 3 giây, lưu file và phát lại để kiểm tra chất lượng
Ghi âm rồi xóa ngay không cần nghe lại

28. Sản phẩm cần hoàn thành vào cuối Buổi 1 là gì?

Kính hoàn chỉnh có thể đeo và hoạt động đầy đủ
Sơ đồ kiến trúc hệ thống + đoạn thu âm thử nghiệm đầu tiên
Mô hình AI đã huấn luyện xong hoàn chỉnh

29. AI (Trí tuệ nhân tạo) trong dự án được hiểu đơn giản là gì?

Một loại pin đặc biệt
Chương trình đã học từ nhiều mẫu âm thanh để tự đoán loại âm thanh mới
Một loại dây cáp truyền dữ liệu

30. Mục tiêu chính của khóa học "Chế tạo kính thông minh AI" là gì?

Thiết kế thời trang cho kính mắt
Chế tạo kính hỗ trợ người khiếm thính nhận biết âm thanh quan trọng, dự thi AIJAM 2026
Học lập trình game

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

Dự án: Phân loại âm thanh bằng AI

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

📦
YAMNetMô hình có sẵn (pretrained), nhận diện hàng trăm loại âm thanh phổ biến
📱
TensorFlow LitePhiên bản nhẹ, chạy được trên Raspberry Pi/thiết bị nhúng
🧮
CNN nhỏ tự huấn luyệnMạng nơ-ron tích chập tự xây dựng trên tập dữ liệu riêng của nhóm

📈 Độ 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.

Độ tin cậy AI: 50% 🔕 Chưa đủ tin cậy, bỏ qua

🕹 Câu hỏi thảo luận

❓ Vì sao AI cần rất nhiều mẫu âm thanh khác nhau để học phân loại chính xác?
❓ Nếu độ tin cậy chỉ đạt 40%, hệ thống nên cảnh báo hay im lặng? Vì sao?

Đấu nối mic & kiểm tra tín hiệu

⏱ 30 phút

🛠️ Đấu nối microphone

  1. 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).
  2. Cài đặt driver/thư viện thu âm cần thiết (ví dụ PyAudio, sounddevice cho Python).
  3. 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

✅ Tín hiệu rõ, không rè, mức âm lượng đủ lớn
❌ Tín hiệu quá nhỏ hoặc rè nhiều — kiểm tra lại cổng kết nối, khoảng cách mic

🧯 Lỗi thường gặp

Hiện tượngNguyên nhânCách khắc phục
Không thu được âm thanhSai driver hoặc chưa cấp quyền micro cho ứng dụngKiểm tra driver, cấp quyền truy cập micro trong hệ điều hành
Tín hiệu nhiễu nhiềuMic đặ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

  1. 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).
  2. Đưa từng đoạn vào mô hình, ghi lại nhãn và độ tin cậy mô hình trả về.
  3. 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ệnCả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ỬAVàng
Gọi tên🙋 CÓ NGƯỜI GỌIXanh 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ì?

Tăng âm lượng thu âm
Biến âm thanh thành dạng "ảnh" để AI dễ phân loại
Nén file âm thanh nhỏ lại

2. YAMNet là gì?

Một loại microphone
Một mô hình AI có sẵn để phân loại âm thanh
Một giao thức Wi-Fi

3. Độ tin cậy (confidence score) của AI thể hiện điều gì?

Tốc độ xử lý của mô hình
Mức độ chắc chắn của AI về kết quả phân loại
Dung lượng file âm thanh

4. Vì sao nên đặt ngưỡng độ tin cậy tối thiểu trước khi cảnh báo?

Để tiết kiệm pin
Để tránh cảnh báo sai khi AI chưa đủ chắc chắn
Để mô hình chạy nhanh hơn

5. Vì sao nhóm nên dùng mô hình pretrained thay vì tự huấn luyện từ đầu?

Vì pretrained luôn chính xác 100%
Vì tự huấn luyện từ đầu tốn rất nhiều dữ liệu và thời gian
Vì luật thi cấm tự huấn luyện

6. TensorFlow Lite phù hợp để chạy trên loại thiết bị nào?

Chỉ máy chủ siêu máy tính
Thiết bị nhúng như Raspberry Pi
Chỉ điện thoại đời mới nhất

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ạ?

Chữ xanh dương, không nhấp nháy
🔥 BÁO CHÁY, màu đỏ nhấp nháy
Không hiển thị gì, chỉ rung nhẹ

8. Bước nào nên làm trước khi chạy mô hình AI phân loại?

In 3D gọng kính hoàn chỉnh
Đấu nối và kiểm tra chất lượng tín hiệu microphone
Lắp mô-tơ rung lên kính

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

Dự án: Cảnh báo rung theo hướng (Direction-Aware Alerts)

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.

Mic Trái
Mic Giữa
Mic Phải

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 độ.

🎓 Đây là hướng tìm hiểu mở rộng dành cho nhóm muốn nâng cao độ chính xác khi dự thi AIJAM 2026.

Lắp mic array lên gọng kính

⏱ 30 phút

🛠️ Các bước lắp đặt

  1. 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.
  2. Đả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.
  3. Đấ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

✅ Cả 3 mic đều thu được tín hiệu khi test lần lượt
❌ Một mic không có tín hiệu — kiểm tra lại dây nối hoặc mic bị lỗi

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?

Để tiết kiệm pin
Để người dùng phản ứng chính xác hơn, ví dụ quay đúng hướng có nguy hiểm
Để mô hình AI chạy nhanh hơn

2. Cách đơn giản nhất để xác định hướng âm thanh trong dự án này là gì?

Dùng GPS
So sánh biên độ tín hiệu giữa các kênh microphone
Đo nhiệt độ không khí

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?

Phía trước
Bên phải
Bên trái

4. TDOA là viết tắt của cụm từ nào?

Total Data Of Audio
Time Difference Of Arrival
Two Direction Output Array

5. Mã lệnh rung được gửi từ đâu tới ESP32?

Từ mô-tơ rung
Từ phần xử lý AI, qua Wi-Fi
Từ màn hình OLED

6. Kết quả cuối cùng gửi tới kính nên gồm những thông tin gì?

Chỉ có mức pin còn lại
Loại âm thanh và hướng phát ra
Chỉ có thời gian hiện tại

7. Vì sao cần đặt 3 mic ở các vị trí khác nhau thay vì chỉ 1 mic?

Để tiết kiệm chi phí
Để tạo ra chênh lệch tín hiệu giữa các mic, làm cơ sở suy luận hướng
Để tăng âm lượng phát ra

8. GCC-PHAT là kỹ thuật thuộc mức độ nào so với so sánh biên độ đơn giản?

Đơn giản hơn, dùng cho người mới bắt đầu
Nâng cao hơn, cho độ chính xác tốt hơn
Không liên quan đến xác định hướng âm thanh

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

Dự án: Hiển thị lời nói lên màn hình kính

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

📴
VoskChạy offline, nhẹ, phù hợp Raspberry Pi
🐳
Whisper tinyMô hình nhỏ của OpenAI, độ chính xác khá tốt
☁️
API onlineDùng khi demo, cần kết nối mạng ổn định
💡 Giai đoạn đầu chỉ cần chuyển được câu ngắn thành văn bản để hiển thị — chưa cần xử lý hội thoại dài hay đa ngôn ngữ.

🧹 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

Đang chờ giọng nói...

Lắp màn hình hiển thị

⏱ 30 phút

🛠️ Lắp OLED/LCD lên gọng kính

  1. 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ụ).
  2. Đấu 4 dây I2C (VCC, GND, SDA, SCL) từ màn hình vào ESP32.
  3. 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ượngNguyên nhânCách khắc phục
Màn hình không sángSai địa chỉ I2C hoặc thiếu nguồnKiể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òeSai thư viện điều khiển màn hìnhDù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ì?

Nghe rõ hơn qua tai nghe
Đọc được nội dung lời nói dưới dạng văn bản
Tăng âm lượng giọng nói

2. Vosk và Whisper tiny có điểm chung nào?

Đều là loại microphone
Đều là công cụ/mô hình chuyển giọng nói thành văn bản
Đều là màn hình hiển thị

3. Lọc nhiễu AI giúp ích điều gì trong môi trường ồn?

Làm màn hình sáng hơn
Tăng độ chính xác nhận diện giọng nói/âm thanh mục tiêu
Tăng tốc độ Wi-Fi

4. Màn hình OLED/LCD thường giao tiếp với ESP32 qua chuẩn nào?

HDMI
I2C (VCC, GND, SDA, SCL)
USB-C

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ỏ?

Để tiết kiệm pin
Vì màn hình nhỏ chỉ hiển thị được giới hạn ký tự mỗi dòng
Để tăng tốc độ AI

6. Nếu độ tin cậy speech-to-text quá thấp, hệ thống nên làm gì?

Hiển thị nguyên văn kết quả dù có thể sai
Hiển thị "..." hoặc bỏ qua thay vì hiển thị câu sai lệch
Tắt màn hình hoàn toàn

7. Văn bản được truyền từ phần xử lý AI tới ESP32 qua đâu?

Qua dây USB bắt buộc
Qua Wi-Fi
Qua sóng FM

8. Ở giai đoạn đầu, mục tiêu speech-to-text nên đặt ra là gì?

Dịch được nhiều ngôn ngữ cùng lúc
Chuyển được câu ngắn thành văn bản để hiển thị
Tóm tắt cả cuộc hội thoại dà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 5: Cảnh báo khẩn cấp theo bối cảnh & Hoàn thiện

Sản phẩm cuối: Kính thông minh hoàn chỉnh + báo cáo

Ư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.

Chế độ hiện tại
🌳 Ưu tiên: còi xe, phanh gấp

🧹 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)

🗣️ Nhận diện người nói quen thuộc, học thói quen cảnh báo cá nhân theo thời gian sử dụng.
🤖 Kết hợp API Gemini để tóm tắt hội thoại và trả lời theo ngữ cảnh.
🏠 Liên kết smart home để điều khiển thiết bị trong nhà bằng giao tiếp tự nhiên.

🗓️ Lộ trình phát triển tổng thể (4 tuần)

TuầnNội dung
Tuần 1Thu dữ liệu âm thanh, chạy thử mô hình phân loại trên laptop
Tuần 2Thêm speech-to-text, lọc nhiễu, cơ chế ưu tiên indoor/outdoor
Tuần 3ESP32 nhận dữ liệu qua Wi-Fi, điều khiển màn hình và mô-tơ rung
Tuần 4Ghé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

  1. 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.
  2. 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ế.
  3. 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

  1. 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.
  2. 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.
  3. 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ộiGiả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ứngKính đeo được, gọn nhẹ, hoạt động ổn định
Thuyết trìnhTrì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?

Thời gian trong ngày
Bối cảnh indoor/outdoor
Màu sắc môi trường xung quanh

2. Khi ở trong nhà, hệ thống nên ưu tiên cảnh báo loại âm thanh nào?

Còi xe, phanh gấp
Cháy, gõ cửa, kính vỡ
Tiếng chim hót

3. Vì sao cần cơ chế bỏ qua âm thanh lặp lại trong thời gian ngắn?

Để tiết kiệm màn hình hiển thị
Để tránh làm phiền người dùng bằng cảnh báo trùng lặp
Để tăng tốc độ AI

4. Theo lộ trình 4 tuần, Tuần 3 tập trung vào nội dung gì?

Thu dữ liệu âm thanh ban đầu
ESP32 nhận dữ liệu qua Wi-Fi, điều khiển màn hình và mô-tơ rung
Kết hợp API Gemini

5. API Gemini được đề cập dùng cho mục đích gì ở giai đoạn nâng cao?

Sạc pin nhanh hơn
Tóm tắt hội thoại và trả lời theo ngữ cảnh
Tăng độ phân giải màn hình

6. Bước nào nên làm trước khi ghép toàn bộ pipeline hệ thống?

Thuyết trình trước ban giám khảo
Kiểm tra từng khối riêng lẻ (mic → AI → Wi-Fi → kính)
Sạc đầy pin dự phòng

7. Tiêu chí "Ý nghĩa xã hội" khi thuyết trình dự thi AIJAM 2026 đánh giá điều gì?

Giá thành sản phẩm rẻ nhất
Sản phẩm giải quyết đúng nhu cầu thực tế của người khiếm thính
Số lượng linh kiện sử dụng

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?

Thay toàn bộ linh kiện mới
Đo thời gian xử lý từng bước để tìm khối đang làm chậm hệ thống
Tắt mô-tơ rung để tiết kiệm pin

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.