Với mục đích muốn tiếp cận với công nghệ IoTs cũng như mảng lập trình ứng dụng, chúng em mong muốn tự tạo một thiết bị giúp người sử dụng có thể nắm bắt, tiếp cận thông tin dễ dàng và ti
Trang 1THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG
THIẾT KẾ VÀ THI CÔNG MÔ HÌNH GƯƠNG
THÔNG MINH (SMART MIRROR)
GVHD: NGUYỄN ĐÌNH PHÚ SVTH: TRẦN NGUYÊN VŨ MSSV: 13141440
SVTH: TRẦN HỮU NGHĨA MSSV: 13141519
SKL 0 0 5 7 0 1
Trang 2CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
Tp Hồ Chí Minh, tháng 1 năm 2017
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
2 Các số liệu, tài liệu ban đầu:
Bên cạnh kiến thức cơ bản về các môn Vi xử lý và Lập
trình nhúng, đồ án đã được thực hiện trên cơ sở nghiên
cứu và tham khảo những đồ án tốt nghiệp, công trình
nghiên cứu khoa học trong lĩnh vực lập trình ứng dụng
và Home Automation
3 Nội dung thực hiện đề tài:
- Tìm hiều về máy tính Raspberry Pi 3
- Tìm hiểu về camera Play Station Eye
- Tìm hiều về thư viện NoseJs
- Tìm hiểu về thư viện AngularJS
- Tìm hiều về phần mềm viết chương trình
JavaScrit
- Tìm hiểu về nền tảng đám mây của Google
1 Tên đề tài: Thiết kế và thi công mô hình gương thông
minh (Smart Mirror)
Ngành: Công Nghệ Kỹ Thuật Điện tử, Truyền thông Lớp: 13141CLDT
Giảng viên hướng dẫn: THS NGUYỄN ĐÌNH PHÚ ĐT: 0903 982 443
Họ và tên sinh viên: Trần Nguyên Vũ
Trần Hữu Nghĩa
MSSV: 13141440 MSSV: 13141519
Trang 3- Viết chương trình xử lí cho Raspberry Pi
- Điều chỉnh chương trình chạy ổn định
- Viết quyển báo cáo đồ án tốt nghiệp
- Báo cáo đề tài tốt nghiệp
4 Sản phẩm:
Một gương thông minh có khả năng hỗ trợ người dùng
cập nhật thời gian, thời tiết, lịch trình công việc, điều
khiển đèn thông minh, tìm kiếm bản đồ tìm kiếm video
Trang 4CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc
*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ và tên Sinh viên: MSSV:
MSSV:
Ngành: CÔNG NGHỆ - KỸ THUẬT - ĐIỆN TỬ, TRUYỀN THÔNG Chuyên ngành: ĐIỆN TỬ CÔNG NGHIỆP Tên đề tài:
Họ và tên Giáo viên hướng dẫn: THS NGUYỄN ĐÌNH PHÚ NHẬN XÉT 1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:……….(Bằng chữ: )
Tp Hồ Chí Minh, ngày tháng năm 20…
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)
Trang 5CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc
*******
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ và tên Sinh viên: MSSV:
MSSV:
Ngành: CÔNG NGHỆ - KỸ THUẬT - ĐIỆN TỬ TRUYỀN THÔNG Chuyên ngành: ĐIỆN TỬ CÔNG NGHIỆP Tên đề tài:
Họ và tên Giáo viên phản biện:
NHẬN XÉT 1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:……….(Bằng chữ: )
Tp Hồ Chí Minh, ngày tháng năm 20…
Giáo viên phản biện
(Ký & ghi rõ họ tên
Trang 6LỜI CẢM ƠN
Để hoàn thành đồ án tốt nghiệp này, lời đầu tiên chúng em xin bày tỏ lòng
biết ơn sâu sắc đến thầy ThS Nguyễn Đình Phú, đã tận tình hướng dẫn trong suốt
quá trình chúng em thực hiện đồ án
Chúng em cũng xin chân thành cảm ơn quý thầy, cô trường Đại Học Sư Phạm Kỹ Thuật TP.HCM, đặc biệt là các thầy cô trong khoa Đào tạo chất lượng cao, đã nhiệt tình giúp đỡ, truyền đạt kiến thức trong suốt quá trình học tập của nhóm tại trường Vốn kiến thức được tiếp thu trong quá trình học tập không chỉ là nền tảng cho quá trình thực hiện đồ án tốt nghiệp mà còn là hành trang quý báu cho
sự nghiệp của nhóm sau này
Bên cạnh đó, chúng tôi xin cảm ơn sự hỗ trợ và giúp đỡ của bạn bè trong thời gian học tập tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh và trong quá trình hoàn thành luận văn tốt nghiệp này
Cuối cùng, chúng con chân thành cảm ơn sự động viên và hỗ trợ của gia đình trong suốt thời gian học tập Đặc biệt, chúng con xin gửi lời cảm ơn trân trọng nhất đến cha mẹ, người đã sinh ra và nuôi dưỡng chúng con nên người Sự quan tâm, lo lắng và hy sinh lớn lao của cha mẹ luôn là động lực cho chúng con cố gắng phấn đấu trên con đường học tập của mình
Xin chân thành cảm ơn!
Người thực hiện đề tài
Trần Nguyên Vũ Trần Hữu Nghĩa
Trang 7TÓM TẮT
Ngày nay trên thế giới với sự bùng nổ của các ngành công nghệ thông tin, điện
tử v.v đã làm cho đời sống của con người ngày càng hoàn thiện Các thiết bị tự động hóa đã ngày càng xâm lấn vào trong sản xuất và thậm chí là vào cuộc sống sinh hoạt hằng ngày của mỗi con người như việc những mô hình ngôi nhà thông Tuy nhiên, các ngôi nhà thông minh cần 1 bộ HUB, vậy tại sao ta không biến nó thành thứ đầu tiên ta nhìn vào mỗi buổi sáng? Gương thông minh ra đời, hỗ trợ chúng ta các hoạt động buổi sang, giúp ta có trải nghiệm tốt hơn
Với mục đích muốn tiếp cận với công nghệ IoTs cũng như mảng lập trình ứng dụng, chúng em mong muốn tự tạo một thiết bị giúp người sử dụng có thể nắm bắt, tiếp cận thông tin dễ dàng và tiện lợi, sử dụng các kiến thức đã học trên môn lập trình nhúng và dựa trên nền tảng của các mã nguồn mở lập trình ứng dụng, em đã tạo thành công mô hình gương thông minh
Trong quá trình thực hiện đề tài Thiết kế và thi công mô hình gương thông
minh (Smart Mirror), mặc dù nhóm thực hiện đề tài đã cố gắng hoàn thành nhiệm
vụ đặt ra và đúng thời hạn nhưng do còn hạn chế về kiến thức nên chắc chắn sẽ không tránh khỏi những thiếu sót, hạn chế, mong quý Thầy/Cô và các bạn sinh viên thông cảm Nhóm rất biết ơn và mong nhận được những ý kiến đóng góp của quý Thầy/Cô và các bạn sinh viên về đề tài này
Trang 8MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN iii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iv
LỜI CẢM ƠN v
TÓM TẮT vi
MỤC LỤC vii
DANH MỤC TỪ VIẾT TẮT xi
DANH MỤC HÌNH ẢNH xii
DANH MỤC BẢNG BIỂU xv
Chương 1: TỔNG QUAN 1
1.1 Giới thiệu tình hình nghiên cứu hiện nay 1
1.2 Tính cấp thiết của đề tài 1
1.3 Mục tiêu nghiên cứu 2
1.4 Nhiệm vụ nghiên cứu 2
1.5 Đối tượng và phạm vi nghiên cứu 2
1.6 Phương ph́áp nghiên cứu 2
1.7 Bố cục của Đồ án 3
Chương 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN 4
2.1 Công nghệ nhận dạng giọng nói 4
Các công nghệ nhận dạng giọng nói: 5
2.1.1 Thuật toán nhận diện giọng nói 5
2.1.2 Các thư viện giọng nói phổ biến 7
2.1.3 2.2 Giới thiệu về RASPBERY PI 7
Trang 92.2.1 Giới thiệu về bo mạch RASPBERRY PI 3 8
2.2.2 Cấu hình RASPBERRY PI 9
2.2.3 Vi xử lý ARM: 11
2.2.4 Phần mềm 17
2.3 Tổng quan thư viện NOSE.JS 18
2.3.1 Giới thiệu NOSE.JS 18
2.3.2 Đặc điểm NOSE.JS 19
2.4 Tổng quan thư viện Angular.js 20
2.4.1 Giới thiệu Angular.js 20
2.4.2 Tính năng Angular.js 20
2.4.3 Cấu trúc MVC trong Angular.js 21
2.4.4 Dependency Injection trong Angular.js 22
2.5 Giới thiệu HDMI 23
2.6 Giới thiệu Camera Play Station Eye: 24
2.7 Giới thiệu bóng đèn thông minh Xiaomi Yeelight LED Bulb 25
2.8 Giới thiệu module relay 26
Chương 3: TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 28
3.1 Giới thiệu hệ thống 28
3.2 Sơ đồ khối toàn hệ thống 28
3.3 Tính toán và thiết kế hệ thống 29
3.3.1 Khối xử lí trung tâm 29
Phần cứng 29
3.3.1.1 Phần mềm 30
3.3.1.2 3.3.2 Khối thu âm 35
Trang 103.3.3 Khối hiển thị 37
3.3.4 Khối xử lí giọng nói 37
3.3.5 Khối nguồn 39
3.3.6 Sơ đồ nguyên lí toàn mạch 40
3.4 Lập trình hệ thống 42
3.4.1 Chương trình chính 42
3.4.2 Chương trình con 42
3.4.2.1 Speech to text 42
3.4.2.2 Map 43
3.4.2.3 Todoist 46
3.4.2.4 RSS Feeds 49
3.4.2.5 Light 49
3.4.2.6 LED 51
3.4.2.7 SearchYouTube 54
3.4.2.8 Weather 56
3.4.2.9 Timer 57
Chương 4: KẾT QUẢ NGHIÊN CỨU 60
4.1 Thiết kế mô hình 60
4.2 Hoạt động của toàn hệ thống 62
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 68
5.1 Kết luận 68
5.2 Hướng phát triển 68
TÀI LIỆU THAM KHẢO 69
PHỤ LỤC 1: CODE JAVASCRIPT 70
Trang 11PHỤ LỤC 2: CODE HTML 86
Trang 12DANH MỤC TỪ VIẾT TẮT
LAN: Local Area Network
IOT: Internet of Things
MFCC: Mel Frequency Cepstral Coefficients
DIY: Do It Yourself
CPU: Central Processing Unit
RAM: Random Access Memory
ROM: Read Only Memory
DC: Direct current
GPIO: General Purpose Input/Output
JSON: JavaScript Object Noattion
API: Application Programming Interface
Trang 13DANH MỤC HÌNH ẢNH
Hình 2 – 1: Các bước rút trích đặc trưng MFCC 6
Hình 2 – 2: Bo mạch Raspberry Pi 3 9
Hình 2 – 3: Các thanh ghi của ARM 12
Hình 2 – 4: Cấu trúc thanh ghi trạng thái chương trình hiện tại (CPSR) 12
Hình 2 – 5: Một chu kỳ máy sử dụng dòng chảy có 3 tác vụ 13
Hình 2 – 6: Các chế độ hoạt động của ARM và thanh ghi 14
Hình 2 – 7: Các địa chỉ dành cho hệ thống 14
Hình 2 – 8: Vị trí các bit điều kiện trong lệnh 32bit 14
Hình 2 – 9: Các điều kiện 15
Hình 2 – 10: Ngắt phần mềm 15
Hình 2 – 11: Cấu trúc bên trong ARMv8 Cortex - A53 16
Hình 2 – 12: Sơ đồ khối nhân Cortex-A53 17
Hình 2 – 13: Lược đồ mô tả các thành phần quan trọng của Node.js 20
Hình 2 – 14: Cấu tạo đầu nối HDMI 24
Hình 2 – 15: Hình ảnh camera Play Station Eye 25
Hình 2 – 16: Hình ảnh bóng đèn thông minh Yeelight Xiaomi 26
Hình 2 – 17: Hình ảnh module relay 27
Hình 3 – 1: Sơ đồ khối toàn hệ thống 28
Hình 3 – 2: Sơ đồ nguyên lí khối xử lí trung tâm 30
Hình 3 – 3: Trang tải hệ điều hành Raspian 31
Hình 3 – 4: Giao diện Win32DiskImager 32
Hình 3 – 5: Giao diện hệ điều hành Raspian 32
Hình 3 – 6: Thiết lập VNC cho PI 33
Hình 3 – 7: Thiết lập VNC cho PI 33
Hình 3 – 8: Giao diện VNC Viewer 34
Hình 3 – 9: Giao diện Terminal 35
Hình 3 – 10: Camera Playstation Eye 36
Trang 14Hình 3 – 11: Giao diện Google Cloud Platform 38
Hình 3 – 12: Giao diện cấp phép API 38
Hình 3 – 13: Tạo Key File 39
Hình 3 – 14: Adapter cho Raspberry Pi 3 40
Hình 3 – 15: Sơ đồ nguyên lí toàn mạch 40
Hình 3 – 16: Sơ đồ kết nối toàn mạch 41
Hình 3 – 18: Sơ đồ khối chương trình chính 42
Hình 3 – 19: Sơ đồ khối chương trình chuyển đổi giọng nói thành văn bản 43
Hình 3 – 20: Sơ đồ khối chương trình tạo bản đồ 45
Hình 3 – 21: Sơ đồ khối chương trình Zoom in 46
Hình 3 – 22: Sơ đồ khối chương trình Zoom out 46
Hình 3 – 23: Sơ đồ khối chương trình Todoist 47
Hình 3 – 24: Sơ đồ khối chương trình Add 48
Hình 3 – 25: Sơ đồ khối chương trình Remove 48
Hình 3 – 26: Sơ đồ khối chương trình hiển thị đề mục tin tức 49
Hình 3 – 27: Sơ đồ khối chương trình điều khiển đèn thông minh 50
Hình 3 – 28: Sơ đồ khối chương trình Light on 50
Hình 3 – 29: Sơ đồ khối chương trình Light off 51
Hình 3 – 30: Sơ đồ khối chương trình điều khiển module relay 52
Hình 3 – 31: Sơ đồ khối chương trình Led on 53
Hình 3 – 32: Sơ đồ khối chương trình Led off 54
Hình 3 – 33: Sơ đồ khối chương trình tìm kiếm video 55
Hình 3 – 34: Sơ đồ khối chương trình Stop video 56
Hình 3 – 35: Sơ đồ khối chương trình hiển thị thông tin thời tiết 57
Hình 3 – 36: Sơ đồ khối chương trình Timer 58
Hình 3 – 37: Sơ đồ khối chương trình Stop timer 59
Hình 3 – 38: Sơ đồ khối chương trình Resume timer 59
Hình 4 – 1: Các thiết bị được sử dụng trong mô hình 60
Trang 15Hình 4 – 2: Phần mặt trước của mô hình 61
Hình 4 – 2: Phần mặt sau của mô hình 61
Hình 4 – 2: Giao diện khi khởi động hệ thống 62
Hình 4 – 3: Bảng danh sách các lệnh mà gương thông minh có thể thực hiện 63
Hình 4 – 4: Bảng danh sách các lệnh mà gương thông minh có thể thực hiện 63
Hình 4 – 5: Bảng danh sách các lệnh mà gương thông minh có thể thực hiện 64
Hình 4 – 6: Bản đồ thành phố Hồ Chí Minh khi gương thông minh nhận lệnh “Show map” 64
Hình 4 – 7: Bản đồ thành phố Hồ Chí Minh khi Zoom in 65
Hình 4 – 8: Danh sách công việc được lên kế hoạch 66
Hình 4 – 9: Video cho kết quả liên quan sushi 66
Hình 4 – 10: Bộ đếm timer 67
Trang 16DANH MỤC BẢNG BIỂU
Bảng 2 - 1: Cấu hình phần cứng Raspberry Pi 3 9
Bảng 2 - 2: Pin out Raspberry Pi3 9
Bảng 2 - 3: Thông số kĩ thuật của bóng đèn 26
Bảng 2 - 4: Chi tiết các chân của 1 module relay 27
Bảng 3 - 1: Thông số kĩ thuật Camera Playstation Eye 36
Trang 17Chương 1: TỔNG QUAN
1.1 Giới thiệu tình hình nghiên cứu hiện nay
Ngày nay, những công nghệ tiên tiến giúp cho cuộc sống thuận tiện hơn, cùng với sự phát triển của khoa học và công nghệ, các thiết bị điện tử thông minh ra đời, ứng dụng ngày càng rộng rãi và mang lại hiệu quả trong hầu hết các lĩnh vực khoa học kỹ thuật cũng như trong đời sống xã hội
Ví dụ, gương là vật dụng mà hầu hết mọi người đều sở hữu trong nhà Nó có bề mặt đủ lớn để hiển thị thông tin và cho khả năng tương tác khi ta kết hợp nó với công nghệ Từ đó, nhóm em đã bắt tay tìm hiểu và thực hiện đề tài “Thiết kế và thi công mô hình gương thông minh (Smart Mirror)”
1.2 Tính cấp thiết của đề tài
Mạng Internet ngày càng phát triển rộng rãi gắn liền với công việc và cuộc sống hằng ngày của con người Sử dụng Internet đã và đang trở thành một thói quen không thể thiếu trong cuộc sống, từ học tập, công việc đến giải trí Với sự xuất hiện của các thiết bị thông minh như smartphone, máy tính bảng việc truy cập Internet trở nên dễ dàng và tiện lợi hơn rất nhiều
Để thực hiện các tính năng tự động hóa thông qua Internet giúp cho cuộc sống tiện lợi hơn thì các KIT nhúng xuất hiện với nhiệm vụ hỗ trợ học tập, nghiên cứu ngày càng nhiều Trong đó Raspbery Pi là máy tính siêu nhỏ với những tính năng mạnh mẽ và cho phép người lập trình có thể dễ dàng tiếp cận internet thông qua wifi Dùng Raspbery Pi đưa các dữ liệu lên mạng sẽ dễ dàng hơn rất nhiều vì có kết nối mạng LAN hoặc thu sóng wifi trực tiếp Với nhu cầu tìm hiểu về lĩnh vực Home Automation ứng dụng trong cuộc sống cùng với mong muốn tạo ra một sản phẩm
có giá trị ứng dụng cao, nhóm em xin thực hiện đề tài “Thiết kế và thi công mô hình gương thông minh (Smart Mirror)”
Trang 181.3 Mục tiêu nghiên cứu
Thiết kế và thi công luận văn này sẽ cung cấp cho người sử dụng giao diện trên gương thông minh để cập nhật thời gian, thời tiết, lịch trình công việc hoặc điều khiển thiết bị thông minh khác (ví dụ đèn thông minh) mà người dùng đã đặt trước khi có lệnh bằng giọng nói Giao diện dễ sử dụng và thuận tiện trong việc cho phép người dùng kết nối, theo dõi các thông tin hữu ích như bản đồ, tìm kiếm video, đề mục tin tức báo chí Hệ thống sử dụng module camera được điều khiển bởi module Raspbery Pi
1.4 Nhiệm vụ nghiên cứu
Tìm hiểu cách viết ứng dụng cho Raspberry pi
Khảo sát, lập trình giao tiếp giữa Raspberry pi và module camera
Lập trình khối giao tiếp giữa Raspberry pi và wifi
Lắp đặt mô hình gương thông minh
Lắp ráp các khối điều khiển vào mô hình
Chạy thử nghiệm hệ thống
Viết báo cáo kết quả đạt được sau khi thực hiện đồ án
1.5 Đối tượng và phạm vi nghiên cứu
Thiết kế mô hình gương thông minh để hỗ trợ cập nhật thông tin và điều khiển được thiết bị trong nhà
Sử dụng module Raspberry Pi làm bộ điều khiển và xử lý trung tâm
Sử dụng module camera với độ phân giải 640x480p tối thiểu 28 khung hình/giây
Đề tài chỉ áp dụng ở nơi có kết nối wifi hoặc 3G
1.6 Phương ph́áp nghiên cứu
Phương pháp nghiên cứ chủ yếu thu thập thông tin, tự nghiên cứu, sau đó tổng hợp
và đưa ra phương án thực hiện đề tài
Trang 191.7 Bố cục của Đồ án
Chương 1: Tổng quan đề tài: Trình bày về sự cần thiết đề tài, vai trò của đề tài trong cuộc sống Đồng thời nêu ra được các phương pháp tiếp cận và thực hiện đề tài theo từng bước
Chương 2: Giới thiệu về các kiến thức lý thuyết cơ bản về công nghệ Internet, giới thiệu kit Raspberry Pi 3 với hệ điều hành Rasbian Nêu lên các đặc điểm, giao thức truyền nhận dữ liệu, lựa chọn thiết bị thu
âm, đèn thông minh và các thư viện hỗ trợ thực hiện đề tài
Chương 3: Lắp đặt hệ thống Trình bày về hệ thống gương thông minh gồm sơ đồ khối, sơ đồ nguyên lý toàn hệ thống Đưa ra lưu đồ giải thuật cho ứng dụng và chương trình vi xử lý
Chương 4: Kết quả so sánh, thực nghiệm, phân tích, tổng hợp Chương này đưa ra các kết quả kiểm ra thực tế vào nhiều thời điểm trong ngày hoặc hoạt động trong các môi trường khác nhau
Chương 5: Kết luận và hướng phát triển: Chương này sẽ đưa ra các kết quả đạt được sau khi thực hiện đồ án, các hướng phát triển và mở rộng của đồ án
Trang 20Chương 2: CƠ SỞ LÝ THUYẾT LIÊN QUAN
2.1 Công nghệ nhận dạng giọng nói
Giọng nói đang ngày càng trở nên "quyền lực" khi có thể điều khiển mọi thiết bị công nghệ hiện đại ngày nay Chúng đều có thể nhận diện giọng nói của bạn để thực hiện nhiều tính năng và hành động khác nhau
Nhận dạng tiếng nói là một quá trình nhận dạng mẫu, với mục đích là phân lớp (classify) thông tin đầu vào là tín hiệu tiếng nói thành một dãy tuần tự các mẫu đã được học trước đó và lưu trữ trong bộ nhớ Các mẫu là các đơn vị nhận dạng, chúng
có thể là các từ, hoặc các âm vị Nếu các mẫu này là bất biến và không thay đổi thì công việc nhận dạng tiếng nói trở nên đơn giản bằng cách so sánh dữ liệu tiếng nói cần nhận dạng với các mẫu đã được học và lưu trữ trong bộ nhớ Khó khăn cơ bản của nhận dạng tiếng nói đó là tiếng nói luôn biến thiên theo thời gian và có sự khác biệt lớn giữa tiếng nói của những người nói khác nhau, tốc độ nói, ngữ cảnh và môi trường âm học khác nhau Xác định những thông tin biến thiên nào của tiếng nói là
có ích và những thông tin nào là không có ích đối với nhận dạng tiếng nói là rất quan trọng Đây là một nhiệm vụ rất khó khăn mà ngay cả với các kỹ thuật xác suất thống kê mạnh cũng khó khăn trong việc tổng quát hoá từ các mẫu tiếng nói những biến thiên quan trọng cần thiết trong nhận dạng tiếng nói
Các nghiên cứu về nhận dạng tiếng nói dựa trên ba nguyên tắc cơ bản:
Tín hiệu tiếng nói được biểu diễn chính xác bởi các giá trị phổ trong một khung thời gian ngắn (short-term amplitude spectrum) Nhờ vậy
ta có thể trích ra các đặc điểm tiếng nói từ những khoảng thời gian ngắn và dùng các đặc điểm này làm dữ liệu để nhận dạng tiếng nói
Nội dung của tiếng nói được biểu diễn dưới dạng chữ viết, là một dãy các ký hiệu ngữ âm Do đó ý nghĩa của một phát âm được bảo toàn khi chúng ta phiên âm phát âm thành dãy các ký hiệu ngữ âm
Trang 21 Nhận dạng tiếng nói là một quá trình nhận thức Thông tin về ngữ nghĩa (semantics) và suy đoán (pragmatics) có giá trị trong quá trình nhận dạng tiếng nói, nhất là khi thông tin về âm học là không rõ ràng
Các công nghệ nhận dạng giọng nói:
2.1.1.
Đã có nhiều nghiên cứu về việc triển khai hoặc giới thiệu thành công những ứng dụng giọng nói Chúng có thể nhắc đến Ask.com, một dịch vụ cho phép người dùng hỏi và nhận câu trả lời, đã tích hợp công nghệ nhận dạng giọng nói do Nuance phát triển vào ứng dụng iOS và Android của mình Sự liên kết này cho phép người dùng hỏi, trả lời cũng như đăng tải các lời bình luận
Amazon cũng cập nhật app Kindle trên iOS để hỗ trợ tính năng VoiceOver trong iOS VoiceOver sẽ tự động đọc nội dung trên màn hình để giúp cho việc xem sách của những người bị khiếm thị được dễ dàng và thuận tiện hơn Hãng cho biết
có khoảng 1,8 triệu đầu sách e-book tương thích với tính năng này Bản thân Amazon cũng từng mua lại công ty IVONA Software vốn cung cấp giải pháp chuyển đổi từ chữ sang giọng nói cho các sách mua từ Amazon
Và rồi chúng ta có Siri, Google Voice hay Cortana Đây đều là những ứng dụng được phát triển bởi các tập đoàn công nghệ lớn với tiềm lực mạnh mẽ và quy tụ nhiều nhân tài Bộ ba phần mềm này đã giúp người dùng thiết bị di động tương tác với thiết bị của mình một cách thông minh hơn, từ việc đặt câu hỏi, nhận câu trả lời cho đến điều chỉnh các thông số máy và khởi chạy app Một việc đơn giản có thể kể đến là đặt lịch hẹn hoặc báo thức Trước đây chúng ta phải mất cả chục thao tác chạm mới đặt xong một sự kiện, còn với Siri, Google Voice hay Cortana, bạn chỉ cần ra lệnh một cái là xong Mọi thao tác, từ việc ghi nội dung cho đến thiết lập giờ giấc, đều được thực hiện một cách tự động
Thuật toán nhận diện giọng nói
2.1.2.
Quá trình nhận diện giọng nói được thực hiện qua 2 quá trình:
Quá trình đăng ký người nói: Tiếng nói của người cần nhận diện được thu thập và sử dụng đểhuấn luyện mô hình Tập các mô hình của nhiều người nói còn được gọi là cơ sở dữ liệu người nói
Trang 22 Quá trình định danh người nói: Dữ liệu tiếng nói của một người dùng không rõ định danh được đưa vào hệ thống và so khớp với các mô hình trong cơ sở dữ liệu người nói
Cả hai quá trình đều có chung hai bước đầu Bước đầu tiên là thu thập tiếng nói.Tiếng nói có thể được thu thập thông qua micro và chuyển thành tín hiệu rời rạc – tín hiệu số Tuy nhiên dữ liệu này thông thường sẽ bị nhiễu, do đó cần phải được tiền xử lý trước khi đưa vào pha bước thứ hai Bước thứ hai đó là rút trích đặc trưng, nhằm mục đích giảm kích thước dữ liệu nhưng vẫn đảm bảo đủ thông tin để phân biệt người nói Ở bước thứ ba của quá trình đăng ký, thông tin người nói sau khi đã được rút trích đặc trưng được mô hình hóa và lưu vào cơ sở dữ liệu Ở bước thứ ba của quá trình định danh, dữ liệu rút trích được so khớp với các dữ liệu trong
cơ sở dữ liệu
Phương pháp rút trích đặc trưng MFCC là đặc trưng thường được dùng để diễn
tả âm thanh tiếng nói Nó dựa trên quan sát đó là thông tin được mang bởi các thành phần có tần số thấp thường quan trọng hơn các âm thanh có tần số cao – do tiếng nói con người biến đổi chậm Các bước để rút trích đặc trưng này như sau:
Hình 2 – 1: Các bước rút trích đặc trưng MFCC
Bước thứ nhất đó là windowing, chia tín hiệu âm thanh ban đầu thành các frame liên tiếp nhau Mỗi frame này sẽ được đưa vào và rút trích đặc trưng MFCC tương ứng
Trang 23 Bước thứ hai đó là biến đổi fourier rời rạc Bước này nhằm chuyển đổi tín hiệu ban đầu thành tổ hợp của các đồ thị hình sin tương ứng với từng tần số khác nhau
Bước thứ ba là bước chuyển tín hiệu ở dạng tần số thu được ở bước hai sang một vùng tần số theo cảm nhận của tai người
Bước thứ tư là lấy log để tách tín hiệu tần số thấp và tần số cao thành
OpenEars cũng là một thư viện khác nhưng nó thuộc dạng nguồn mở và hoạt động offline, hạn chế là chỉ hỗ trợ tiếng Anh và Tây Ban Nha Vài cái tên khác có thể kể đến như Ivona, iSpeech, Vocalkit and Acapela
Một cách khác mà nhiều phần mềm hiện cũng đang xài đó là tận dụng bộ nguồn nhận dạng có sẵn trên các hệ điều hành di động Người dùng có thể kích hoạt tính năng này ở những chỗ cần nhập văn bản Từ iOS 7 về trước thì tính năng này không
hỗ trợ tiếng Việt, phải lên iOS 8 mới có Google thì bắt đầu hỗ trợ nhập liệu tiếng Việt cho Android khoảng một năm về trước Ngoài ra, Apple, Google cũng có cung cấp các hàm API giúp app của lập trình viên biết nói chỉ với vài dòng mã nguồn
2.2 Giới thiệu về RASPBERY PI
Hiện tại ở Việt Nam và trên thế giới có rất nhiều KIT điện tử được sử dụng phổ biến như: Raspberry Pi, Arduino, STM32F103, Mini 2440, Trong đó, Raspberry
Trang 24Pi và Arduino là 2 KIT được sử dụng phổ biến nhất với giá thành vừa phải và có thể đáp ứng được yêu cầu đặt ra cho việc thực hiện điều khiển các thiết bị và truyền thông tin qua Internet Arduino thường áp dụng với hệ thống linh hoạt với các khả năng giao tiếp với hầu hết các thiết bị đồng thời cũng là hệ thống lý tưởng để học tập lần đầu và nhiều dự án nhỏ hơn Raspberry Pi thích hợp cho những dự án lớn hơn với yêu cầu cần hiển thị hay cần kết nối mạng Với các chức năng tương tự như một máy tính mini chạy hệ điều hành Linux, cùng với việc thực hiện được nhiều dự
án lớn, Raspberry Pi sẽ là lựa chọn hợp lý cho nhóm nghiên cứu để thực hiện đề tài
“THIẾT KẾ VÀ THI CÔNG MÔ HÌNH GƯƠNG THÔNG MINH (SMART
MIRROR)”
2.2.1 Giới thiệu về bo mạch RASPBERRY PI 3
Raspberry Pi – Chiếc máy tính mini bắt đầu được sản xuất bởi Quỹ Raspberry
Pi vào tháng 12/2011 Chiếc máy tính này chỉ có kích cỡ bằng một chiếc thẻ tín dụng với đầy đủ các kết nối và tuỳ dung lượng RAM mà người mua lựa chọn Được phát triển bởi Raspberry Pi Foundation là tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mà nhiều người có thể sử dụng được trong những công việc tùy biến khác nhau
Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman Và được phân phối chính bởi Element14, RS Components và Egoman Đặc tính của Raspberry Pi xây dựng xoay quanh bộ xử lí SoC Broadcom BCM (là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay được dùng trong điện thoại di động) bao gồm CPU, GPU, bộ xử
lí âm thanh /video, và các tính năng khác… tất cả được tích hợp bên trong chip có điện năng thấp này
Raspberry Pi không thay thế hoàn toàn hệ thống để bàn hoặc máy xách tay Không thể chạy Windows trên Raspberry Pi vì BCM2837 dựa trên cấu trúc ARM nên không hỗ trợ mã x86/x64, nhưng vẫn có thể chạy bằng Linux với các tiện ích như lướt web, môi trường Desktop và các nhiệm vụ khác Tuy nhiên Raspberry Pi
là một thiết bị đa năng đáng ngạc nhiên với nhiều phần cứng có giá thành rẻ nhưng
Trang 25rất hoàn hảo cho những hệ thống điện tử, những dự án DIY, thiết lập hệ thống tính toán rẻ tiền cho những bài học trải nghiệm lập trình
7 Nguồn 5V qua cổng Micro USB – dòng 2500 mA (12.5 W)
Bảng 2 - 2: Pin out Raspberry Pi3
Trang 2740 GPI021
2.2.3 Vi xử lý ARM:
Thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát triển của công ty máy tính Acorn ARM (Advanced RISC Machine) là một loại cấu trúc vi xử lý 32bit và 64bit kiểu RICS được sử dụng rộng rãi trong các thiết kế nhúng Do có đặc điểm tiết kiệm năng lượng và tiêu tán công suất nên thường được sử dụng trong các thiết bị điện tử Hiện nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM
Hầu hết các nguyên lý của hệ thống trên chip (Systems on chip-SoC) và cách thiết kế bộ xử lý hiện đại được sử dụng trong ARM Việc sử dụng 3 trạng thái nhận lệnh-giải mã-thực thi trong mỗi chu kì máy mang tính quy phạm để thiết kế các hệ thống xử lý thực Do đó, nhân xử lý ARM được sử dụng rộng rãi trong các hệ thống phức tạp
đó tăng được sự phức tạp cho các chỉ lệnh đơn lẻ
Mô hình thiết kế ARM:
Để phục vụ mục đích của người dùng: r0-r14: 15 thanh ghi đa dụng, r15 là thanh ghi PC, thanh ghi trạng thái chương trình hiện tại (CPSR) Các thanh ghi khác được giữ lại cho hệ thống
Trang 28Hình 2 – 3: Các thanh ghi của ARM
Hình 2 – 4: Cấu trúc thanh ghi trạng thái chương trình hiện tại (CPSR)
Thanh ghi CPSR được người dùng sử dụng chứa các bit điều kiện
N: Negative- cờ này được bật khi bit cao nhất của kết quả xử lý ALU bằng 1
Z: Zero- cờ này được bật khi kết quả cuối cùng trong ALU bằng 0
C: Carry- cờ này được bật khi kết quả cuối cùng trong ALU lớn hơn giá trị 32bit và tràn
V: Overflow-cờ báo tràn sang bit dấu
Cấu trúc load-store:
Cũng như hầu hết các bộ xử lý dùng tập lênh RISC khác, ARM cũng sử dụng cấu trúc load-store Điều đó có nghĩa là: tất cả các chỉ lệnh đều được thực hiện trên thanh ghi Chỉ có lệnh copy giá trị từ bộ nhớ vào thanh ghi hoặc chép lại giá trị từ thanh ghi vào bộ nhớ mới có ảnh hưởng tới bộ nhớ
Trang 29Các bộ xử lý CISC cho phép giá trị trên thanh ghi có thể cộng với giá trị trong
bộ nhớ, đôi khi còn cho phép giá trị trên bộ nhớ có thể cộng với giá trị trên thanh ghi ARM không hỗ trợ cấu trúc lệnh dạng ‘từ bộ nhớ đến bộ nhớ’ Vì thế, tất cả các lệnh của ARM có thể thuộc 1trong 3 loại sau:
Chỉ lệnh xử lý dữ liệu: chỉ thay đổi giá trị trên thanh ghi
Chỉ lệnh truyền dữ liệu: copy giá trị từ thanh ghi vào bộ nhớ và chép giá trị từ bộ nhớ vào thanh ghi
Chỉ lệnh điều khiển dòng lệnh: Bình thường, ta thực thi các chỉ lệnh chứa trong một vùng nhớ liên tiếp, chỉ lệnh điều khiển dòng lệnh cho phép chuyển sang các địa chỉ khác nhau khi thực thi lệnh, tới những nhánh cố định, hoặc là lưu và trở lại địa chỉ để phục hồi chuỗi lệnh ban đầu hay là đè lên vùng code của hệ thống
Cách tổ chức và thực thi tập lệnh của ARM: Fetch-decode-Excute (nhận lệnh, giải mã, thực thi)
Hình 2 – 5: Một chu kỳ máy sử dụng dòng chảy có 3 tác vụ
Tập lệnh của ARM:
Kiểu dữ liệu: ARM hỗ trợ 6 loại dữ liệu:
8 bit có dấu và không dấu
16 bit có dấu và không dấu
32 bit có dấu và không dấu
Như phần trên đề cập, các toán tử của ARM có 32 bit, bởi vậy, khi làm việc với các dữ liệu ngắn hơn, các bit cao của toán tử sẽ được thay thế bằng bit ‘0’
Trang 30Chế độ hoạt động:
Hình 2 – 6: Các chế độ hoạt động của ARM và thanh ghi
Hình 2 – 7: Các địa chỉ dành cho hệ thống
Thực thi các điều kiện:
Điều kiện cần thực thi nằm trên 4 bit cao nhất của chỉ lệnh
Hình 2 – 8: Vị trí các bit điều kiện trong lệnh 32bit
Tổ hợp các điều kiện này được quyết định bởi các bit (N,Z,C,V) nằm trong thanh ghi trạng thái chương trình hiện tại (CPSR):
Trang 31Hình 2 – 9: Các điều kiện
Ngắt phần mềm<SWI>:
Các chỉ lệnh ngắt phần mềm gọi chương trình giám sát Nó đưa vi xử lý vào chế
độ giám sát tại địa chỉ 0x0008
Hình 2 – 10: Ngắt phần mềm
Trường 24bit của vector này không ảnh hưởng tới hoạt động các chỉ lệnh nhưng
có thể tác động tới code hệ thống Nếu vào được chế độ giám sát, vi xử lý sẽ:
Lưu địa chỉ PC vào thanh ghi r14
Lưu giá trị thanh ghi trạng thái chương trình chương trình hiện tại vào thanh ghi SPSR
Vào chế độ giám sát và không cho phép các ngắt bình thường xảy ra nhưng các ngắt nhanh vẫn còn tác động bằng cách gán CPSR[4:0]=100112 và CPSR[7]=1
Trang 32 Gán PC=0x08 và thực thi các chỉ lệnh tại đấy
Để trở về lại chương trình bình thường sau SWI:
Copy giá trị thanh ghi r14 vào PC
Lấy lại giá trị CPSR từ SPSR
Giới thiệu về nhân Cortex-A53:
Bộ nhân xử lý Cortex - A53 được ARM giới thiệu vào năm 2012 nằm trong bộ nhân Cortex-A50 series, ARM gọi Cortex-A50 series là những bộ xử lí 64-bit có
"hiệu quả sử dụng năng lượng tốt nhất thế giới" nhờ được xây dựng trên kiến trúc
bộ ARMv8 và mang trong mình những cải tiến kĩ thuật mới
Cấu trúc bên trong ARMv8 Cortex - A53:
Hình 2 – 11: Cấu trúc bên trong ARMv8 Cortex – A53
Bộ vi xử lý Cortex-A53 thực hiện kiến trúc ARMv8-A Bao gồm:
Hỗ trợ cho cả 32 bit và 64 bit
Hỗ trợ cho tất cả các mức ngoại lệ, EL0, EL1, EL2, và EL3, trong mỗi trạng thái thực hiện
Tập lệnh A32, trước đây được gọi là tập lệnh ARM
Trang 33 Bộ hướng dẫn T32, trước đây được gọi là tập lệnh Thumb
Tập lệnh A64
Bộ vi xử lý Cortex-A53 bao gồm các tính năng sau:
Thực hiện đầy đủ các hướng dẫn kiến trúc ARMv8-A với kiến trúc các tùy chọn được liệt kê trong kiến trúc ARM ở trang 1-3
Hệ thống bộ nhớ cấp 1 (L1) của Harvard với một bộ quản lý bộ nhớ (MMU)
Hệ thống bộ nhớ cấp 2 (L2) cung cấp sự liên kết bộ nhớ cụm, tùy chọn bao gồm một bộ nhớ cache L2
Sơ đồ khối nhân Cortex – A53 :
Hình 2 – 12: Sơ đồ khối nhân Cortex-A53
Trang 34 Puppy Linux
Raspbmc và trung tâm truyền thông số mã nguồn mở XBMC
RISC OS – là hệ điều hành của máy tính dựa trên nền tảng ARM đầu tiên
Raspbian – được bảo trì độc lập bởi the Foundation dựa trên cổng kiến trúc Debian ARM hard-float (armhf) được thiết kế ban đầu cho ARMv7 và các bộ xử lý kế tiếp (với Jazelle RCT/ThumbEE và VFPv3), biên dịch cho các tập lệnh hạn chế hơn ARMv6 của Raspberry Pi 1 Một thẻ SD có kích thước tối thiểu là 4 GB là cần thiết cho những Raspbian image được cung cấp bởi Raspberry Pi Foundation Có một Pi Store dùng để trao đổi chương trình
Raspbian Server Edition là một phiên bản rút gọn với các gói phần mềm đi kèm ít hơn so với phiên bản Raspbian dành cho máy tính để bàn thông thường
Giao thức máy chủ hiển thị Wayland cho phép sử dụng hiệu quả GPU
để tăng tốc phần cứng chức năng vẽ GUI Vào ngay 16 Tháng 4 năm
2014, một GUI shell dành cho Weston gọi Maynard đã được phát hành
PiBang Linux – là một biến thể từ Raspbian
Raspbian for Robots – là một biến thể của Raspbian dành cho các dự
án robot với LEGO, Grove, và Arduino
Trong đó, Raspbian là hệ điều hành chính thức của Raspberry, được dùng phổ biến nhất
2.3 Tổng quan thư viện NOSE.JS
Node.js là một thư viện mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine, nó được sử dụng để xây dựng các ứng dụng web như các trang video clip, các forum và đặc biệt là trang mạng xã hội phạm vi hẹp
2.3.1 Giới thiệu NOSE.JS
Trang 35Node.js là một thư viện mã nguồn mở được sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới Node.js có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Window cho tới Linux, OS X nên đó cũng là một lợi thế Node.js cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất Ứng dụng Node.js được viết bằng Javascript và có thể chạy trong môi trường Node.js trên hệ điều hành Window, Linux
Các lĩnh vực mà Node.js được sử dụng như là một sự lựa chọn hoàn hảo:
Các ứng dụng về I/O
Các ứng dựng về luồng dữ liệu
Các ứng dụng về dữ liệu hướng đến thời gian thực
Các ứng dụng dựa vào JSON APIs
Các ứng dụng Single Page Application
dự liệu Server chuyển sang một API sau khi gọi nó và có cơ chế thông báo về Sự kiện của Node.js giúp Server nhận đựa phản hồi từ các API gọi trước đó
Chạy rất nhanh: Dựa trên V8 Javascript Engine của Google Chrome, thư viện Node.js giúp tối ưu được code hơn các nền tảng khác
Các tiến trình đơn giản nhưng hiệu năng cao: Node.js sử dụng một mô hình luồng đơn (single thread) với các sự kiện lặp Các cơ chế sự kiện giúp Server trả lại các phản hồi với một cách không khóa và tạo cho Server hiệu quả cao ngược lại với các cách truyền thống tạo ra một số lượng luồng hữu hạn để quản lý request Nodejs sử dụng các chương
Trang 36trình đơn luồng và các chương trình này cung cấp các dịch vụ cho số lượng request nhiều hơn so với các Server truyền thống như Apache HTTP Server
Không có bộ nhớ đệm: Ứng dụng Node.js không lưu trữ các dữ liệu buffer
Có giấy phép: Node.js được phát hành dựa vào MIT License
Lược đồ dưới đây mô tả các thành phần quan trọng của Node.js:
Hình 2 – 13: Lược đồ mô tả các thành phần quan trọng của Node.js
2.4 Tổng quan thư viện Angular.js
Angular.js là một thư viện JavaScript mạnh mẽ Nó đươc sử dụng trong các dự
án ứnng dụng trang đơn – Single Page Application (SPA) Nó kế thừa HTML DOM với các thuộc tính bổ sung và làm cho thao tác người dùng trở lên linh hoạt Angular.js có mã nguồn mở, hoàn toàn miễn phí và được sử dụng bởi hàng ngàn lập trình viên trên thế giới Nó hoạt động dưới giấy phép mã nguồn mở 2.0
2.4.1 Giới thiệu Angular.js
Angular.js là một Framwork phát triển dựa trên Javascript để tạo các ứng dụng web phong phú, thường dùng để phát triển frontend (giao diện khách hàng) thông qua các API để gọi data, sử dụng mô hình MVC rất mạnh mẽ
2.4.2 Tính năng Angular.js
Trang 37Dưới đây là một số tính năng chính của Angular.js:
Data-binding: (liên kết dữ liệu) Tự động đồng bộ dữ liệu giữa model
Directives: Đánh dấu vào các yếu tố của DOM, nghĩa là sẽ tạo ra các thẻ HTML tùy chỉnh
Templates: Hiển thị thông tin từ controller, đây là một thành phần của views
Routing: Chuyển đổi giữa các action trong controller
MVC: Mô hình chia thành phần riêng biệt thành Model, View, Controller Đây là một mô hình khá hay nhưng trong Angular thì nó được chế biến lại một chút gần giốn với MVVM (Model View View Model)
Deep Linking: Liên kết sâu, cho phép bạn mã hóa trạng thái của ứng dụng trong các URL để nó có thể đánh dấu được với công cụ tìm kiếm
Dependency Injection: Angular giúp các nhà phát triển tạo ứng dụng
dễ dàng hơn để phát triển, hiểu và thử nghiệm dễ dàng
2.4.3 Cấu trúc MVC trong Angular.js
Model View Controller hoặc MVC là cách gọi phổ biến, là một mô hình thiết kế phần mềm cho các ứng dụng phát triển trên nền tảng web Một Model View Controller được tạo thành bởi 3 thành phần chính sau:
Trang 38 Model - Là thành phần thấp nhất của mô hình có nhiệm vụ duy trì dữ liệu Nó phản hồi các yêu cầu từ phần view và thực hiện những phần lệnh từ controller để cập nhật các giá trị cho bản thân nó
View - Có nhiệm vụ hiển thị các phần dữ liệu theo một định dạng cụ thể, được trigger bởi phần controller để hiển thị dữ liệu
Controller - Là phần Code điều khiển sự tương tác giữa Model và View Phần controller nhận các tham số đầu vào, làm cho các tham số
có hiệu lực, sau đó thực hiện các hoạt động logic mà trong đó có thể thay đổi trạng thái dữ liệu model
MVC trở lên phổ biến bởi nó phân tách ứng dụng một cách hợp lý giữa tầng giao diện người dùng và hỗ trợ các phần có liên quan Phần controller nhận tất cả các request cho ứng dụng và sau đó làm việc với phần model để chuẩn bị dữ liệu cho phần view Phần view sử dụng dữ liệu được chuẩn bị bởi controller và sau đó tạo ra các dữ liệu được nhìn thấy phía người sử dụng
2.4.4 Dependency Injection trong Angular.js
Dependency Injection là một mô hình thiết kế phần mềm mà trong đó các thành phần được đưa ra từ những phần phụ thuộc nó - dependencies thay cho việc hard coding chúng trong các thành phần Điều này làm cho cách thành phần phụ thuộc nhau trong phần cấu hình Nó giúp việc làm có các thành phần có tính tái sử dụng cao, dễ bảo dưỡng và kiểm thử
Angular.js cung cấp kỹ thuật Dependency Injection, cho phép các thành phần lõi của Angular.js có thể được inject tới các thành phần phụ thuộc khác
Value: Là đối tượng JavaScript đơn giản và được sử dụng để thiết lập các giá trị tới controller trong các bước cấu hình
Factory: Là một hàm để sử dụng trả về giá trị Nó tạo ra giá trị theo yêu cầu mỗi khi service hoặc controller yêu cầu Ta thường dùng các hàm factory để tính và trả về giá trị
Trang 39 Service: Là một đối tượng singleton javascript chứa tập các hàm cho các mục đích cụ thể Service được định nghĩa sử dụng hàm service()
và sau đó inject nó đến controller
Provider: Được sử dụng bởi trong nội bộ AngularJS để tạo service, factory … trong quá trình cài đặt (quá trình mà AngularJS khởi tạo chính nó) Dưới đây mô tả script có thể tạo toanhocService trong đó chúng ta tạo trước đó Provider là một phương thức factory đặc biệt với phương thức get() trả về giá trị là value/service/factory
Constant: Được sử dụng thể truyền các giá trị trong tại giai đoạn cấu hình
2.5 Giới thiệu HDMI
HDMI (High-Definition Multimedia Interface) là Giao tiếp đa phương tiện độ phân giải cao Trước khi có chuẩn HDMI, để kết nối thường phải sử dụng rất nhiều các loại cable khác nhau và truyền tải video và âm thanh thường trên các cáp khác nhau, với HDMI chỉ cần một dây cáp có thể truyền tải cả hình ảnh và âm thanh với chất lượng rất cao Với cáp HDMI khoảng cách kết nối giữa các thiết bị có thể lên tới 30m mà không cần có bộ khuyếch đại tín hiệu mà vẫn giữ được tốc độ truyền tải lớn
Đầu cáp HDMI được cấu tạo bao gồm 19 chân, mỗi chân đảm nhiệm một nhiệm vụ khác nhau và trong quá trình truyền dữ liệu thì sẽ phải tuân thủ theo nguyên tắc nhất định
Cáp HDMI thường được hỗ trợ chất lượng âm thanh chuẩn của phòng thu, nên người dùng hoàn toàn yên tâm khi sử dụng nó để chuyển sang một thiết bị khác Một số phiên bản HDMI:
HDMI 1.4 : được công bố vào tháng 5 năm 2010, được thêm vào nhiều tính năng mới hữu ích như HDMI Ethernet cao cấp cho phép kết nối mạng, Audio Return Channels cho phép truyền âm thanh hai
Trang 40chiều Chuẩn sẵn sàng cho 3D cũng như hỗ trợ độ phân giải 4.096×2.160 pixel với độ sâu màu cải thiện hơn
HDMI 2.0 : được phát hành ngày 04 tháng 9 năm 2013 cho phép băng thông truyền tải dữ liệu lên tới 18Gbps Đặc biệt là việc truyền tải 4K
ở tốc độ khung hình 50/60Hz, hỗ trợ tối độ 32 kênh âm thanh kỹ thuật không nén, hỗ trợ tần số lấy mẫu âm thanh 1536kHz giúp đồng bộ âm thanh với nội dung chiều trên tivi tốt hơn
Hình 2 – 14: Cấu tạo đầu nối HDMI
Ưu thế của HDMI so với các đường truyền khác:
Cho phép truyền tải với chất lượng hình ảnh tốt hơn tất cả các cáp thông dụng khác Đủ băng thông cho video HD 1080p, tốc độ 50/60HZ Truyền tải âm thanh hỗ trợ 8 kênh tiếng 24bit ở 192hz Sợi cáp nhỏ gọn, chắc chắn, cắm rút dễ dàng
2.6 Giới thiệu Camera Play Station Eye:
Play Station Eye là một thiết bị máy ảnh kỹ thuật số, tương tự như một webcam cho PlayStation 3 Play Station Eye sử dụng công nghệ nhận dạng cử chỉ
để xử lý các hình ảnh chụp được, webcam còn được tích hợp một microphone để có thể giao tiếp và nhận diện âm thanh