Mục lục:
- Bước 1: Vật liệu
- Bước 2: Phần cứng - In 3D
- Bước 3: Phần cứng - Linh kiện điện tử
- Bước 4: Phần mềm
- Bước 5: Phần mềm - Âm thanh
- Bước 6: Phần mềm - Phát hiện khuôn mặt và giọng nói
- Bước 7: Phần mềm - Động cơ quay
- Bước 8: Cải tiến trong tương lai
Video: Hệ thống Loa-Aware Camara (SPACS): 8 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Hãy tưởng tượng một cuộc gọi hội nghị trong đó nhiều diễn giả vây quanh một camera. Chúng ta thường gặp trường hợp góc nhìn hạn chế của máy ảnh thường không nhìn được vào người nói. Hạn chế phần cứng này làm giảm đáng kể trải nghiệm người dùng. Nếu máy ảnh có thể nhìn vào loa đang hoạt động, khán giả ở xa sẽ tham gia vào cuộc trò chuyện nhiều hơn trong cuộc gọi. Trong dự án này, chúng tôi đề xuất một hệ thống camera (nguyên mẫu) phát hiện và theo dõi người nói đang hoạt động bằng cách quay camera về phía người nói. Hệ thống sử dụng cả phương pháp tiếp cận dựa trên hình ảnh và âm thanh. Khi khuôn mặt được nhận diện từ máy ảnh, nó sẽ xác định người nói và tính toán góc để xoay. Khi không phát hiện được khuôn mặt ở góc hiện tại, hệ thống sẽ tìm kiếm người nói dựa trên hướng của tín hiệu âm thanh đến.
Bước 1: Vật liệu
Adafruit Feather nRF52840 Express X 1
www.adafruit.com/product/4062
Bộ khuếch đại micrô điện tử - MAX4466 X 2
www.adafruit.com/product/1063
Động cơ Servo Micro X 1
www.adafruit.com/product/169
Điện thoại thông minh Android X 1
Bước 2: Phần cứng - In 3D
Để thực hiện nhanh chóng, chúng tôi quyết định in 3D thùng loa mà chúng tôi cần. Có hai thành phần chính cho thùng loa; một bàn xoay và một giá đỡ điện thoại thông minh. Chúng tôi đã sử dụng bàn xoay từ liên kết này (https://www.thingiverse.com/thing:141287), nơi nó cung cấp hộp Arduino ở dưới cùng và một bàn xoay có thể được kết nối với động cơ servo. Chúng tôi đã sử dụng một giá đỡ điện thoại thông minh từ liên kết này (https://www.thingiverse.com/thing:2673050), có thể gập lại và điều chỉnh góc để cho phép chúng tôi hiệu chỉnh góc một cách thuận tiện. Hình dưới đây cho thấy các bộ phận in 3D được lắp ráp với nhau.
Bước 3: Phần cứng - Linh kiện điện tử
Có bốn thành phần có dây; Adafruit Feather, hai micrô và một động cơ. Đối với bao bì nhỏ gọn, chúng tôi hàn (các vòng tròn màu xám) các dây mà không sử dụng bảng mạch. Dưới đây mô tả sơ đồ mạch và hiện vật thực tế.
Bước 4: Phần mềm
Hệ thống của chúng tôi chủ yếu sử dụng thông tin trực quan từ nhận dạng khuôn mặt để theo dõi người nói vì nó chính xác hơn. Để Feather nhận được thông tin trực quan từ ứng dụng Android, chúng tôi sử dụng Bluetooth Low Energy làm phương thức giao tiếp chính.
Khi phát hiện bất kỳ khuôn mặt nào, ứng dụng sẽ tính toán góc mà động cơ cần xoay để tập trung loa vào tâm khung hình. Chúng tôi đã phân tích các tình huống có thể xảy ra và xử lý như sau:
- Nếu (các) khuôn mặt được phát hiện và đang nói, nó sẽ tính toán điểm giữa của người nói và trả về góc tương đối cho Feather.
- Nếu (các) khuôn mặt được phát hiện và không có khuôn mặt nào đang nói, nó cũng sẽ tính toán điểm giữa của các khuôn mặt và trả về góc tương ứng.
- Nếu bất kỳ khuôn mặt nào không được phát hiện, hệ thống sẽ thay đổi logic theo dõi người nói từ hình ảnh sang âm thanh.
Phần mềm SPACS được đặt tại
Bước 5: Phần mềm - Âm thanh
Âm thanh (YH)
Để xác định nguồn âm thanh đến, trước tiên chúng tôi cố gắng sử dụng chênh lệch thời gian giữa hai micrô. Nhưng nó không chính xác nhiều như chúng tôi mong đợi vì tốc độ lấy mẫu (~ 900Hz) của Arduino Leopard, nơi chúng tôi kiểm tra tín hiệu âm thanh, chậm đến mức không thể nhận ra chênh lệch thời gian giữa các micrô cách nhau 10cm.
Chúng tôi đã thay đổi kế hoạch sử dụng chênh lệch cường độ giữa hai tín hiệu âm thanh đầu vào. Kết quả là, chiếc lông vũ lấy hai tín hiệu âm thanh và xử lý chúng để phát hiện âm thanh phát ra từ đâu. Quá trình xử lý có thể được mô tả bằng các bước sau:
- Lấy đầu vào từ hai micrô và trừ đi phần bù để có được biên độ của tín hiệu.
- Tích lũy các giá trị tuyệt đối của biên độ trên mỗi MIC cho 500 xe bán tải.
- Lưu sự khác biệt của các giá trị tích lũy vào hàng đợi có 5 vị trí.
- Trả về tổng các hàng đợi dưới dạng giá trị chênh lệch cuối cùng.
- So sánh giá trị cuối cùng với các ngưỡng để quyết định nơi phát ra âm thanh.
Chúng tôi đã tìm ra ngưỡng bằng cách vẽ biểu đồ giá trị cuối cùng trong các trường hợp khác nhau, bao gồm cả âm thanh phát ra từ trái và phải. Ngoài các ngưỡng cho giá trị cuối cùng, chúng tôi cũng đặt một ngưỡng khác cho giá trị trung bình của các biên độ tích lũy trong bước 2 để lọc ra tiếng ồn.
Bước 6: Phần mềm - Phát hiện khuôn mặt và giọng nói
Để nhận dạng khuôn mặt, chúng tôi đã sử dụng ML Kit cho Firebase do Google phát hành (https://firebase.google.com/docs/ml-kit). ML Kit cung cấp API phát hiện khuôn mặt trả về hộp giới hạn của từng khuôn mặt và các điểm mốc của khuôn mặt, bao gồm mắt, mũi, tai, má và các điểm khác nhau trên miệng. Sau khi nhận diện được khuôn mặt, ứng dụng sẽ theo dõi chuyển động của miệng để xác định xem người đó có đang nói hay không. Chúng tôi sử dụng phương pháp đơn giản dựa trên ngưỡng mang lại hiệu suất đáng tin cậy. Chúng tôi đã tận dụng thực tế là chuyển động của miệng trở nên lớn hơn theo cả chiều ngang và chiều dọc khi một người nói. Chúng tôi tính toán khoảng cách theo chiều dọc và chiều ngang của miệng và tính độ lệch chuẩn cho mỗi khoảng cách. Khoảng cách được chuẩn hóa theo kích thước của khuôn mặt. Độ lệch chuẩn lớn hơn cho thấy khả năng nói. Cách tiếp cận này có hạn chế là mọi hoạt động liên quan đến cử động miệng, bao gồm ăn, uống hoặc ngáp, đều có thể được coi là nói. Tuy nhiên, nó có tỷ lệ âm tính giả thấp.
Bước 7: Phần mềm - Động cơ quay
Vòng quay của động cơ không đơn giản như chúng tôi mong đợi do việc kiểm soát tốc độ quay. Để điều khiển tốc độ, chúng ta khai báo một biến đếm toàn cục để cho phép động cơ chỉ quay khi biến đó đạt đến một giá trị nhất định. Chúng tôi cũng đã khai báo một biến toàn cục khác cho biết động cơ có đang chuyển động hay không để cho micrô biết để nó có thể tránh âm thanh phát ra từ chuyển động quay của động cơ.
Bước 8: Cải tiến trong tương lai
Một trong những hạn chế là động cơ trở nên chao đảo ở một số góc nhất định. Có vẻ như động cơ không đủ mạnh để vượt qua mô-men xoắn tạo ra khi quay smartphone. Nó có thể được giải quyết bằng cách sử dụng một động cơ mạnh hơn hoặc điều chỉnh vị trí của điện thoại thông minh về phía trung tâm của vòng quay để giảm mô-men xoắn.
Phát hiện hướng âm thanh dựa trên âm thanh có thể được cải thiện bằng một phương pháp phức tạp hơn. Chúng tôi muốn thử phương pháp tạo chùm âm thanh để xác định hướng của âm thanh tới. Chúng tôi đã thử với thời gian xuất hiện của các tín hiệu âm thanh. Tuy nhiên, tốc độ lấy mẫu của Feather bị giới hạn để phát hiện sự khác biệt về thời gian khi các micrô chỉ cách khoảng 10cm.
Phần cuối cùng còn thiếu của nguyên mẫu này là đánh giá khả năng sử dụng. Một cách đầy hứa hẹn để đánh giá là tích hợp hệ thống với nền tảng cuộc gọi điện video hiện có và quan sát phản hồi của người dùng. Những phản hồi đó sẽ giúp cải thiện hệ thống và thực hiện lần lặp tiếp theo của nguyên mẫu này.
Đề xuất:
Loa Mood - một loa mạnh mẽ để phát nhạc tâm trạng dựa trên nhiệt độ môi trường: 9 bước
Mood Speaker- một loa mạnh mẽ để phát nhạc tâm trạng dựa trên nhiệt độ môi trường: Xin chào! Đối với dự án trường học của tôi tại MCT Howest Kortrijk, tôi đã làm Mood Speaker, đây là một thiết bị loa Bluetooth thông minh với các cảm biến khác nhau, màn hình LCD và WS2812b ledstrip đi kèm. loa phát nhạc nền dựa trên nhiệt độ nhưng có thể
Loa Coco - Loa âm thanh trung thực cao: 6 bước
Loa Coco - Loa âm thanh trung thực cao: Xin chào giáo viên hướng dẫn, Siddhant đây. Bạn có muốn nghe âm thanh chất lượng cao không? Có thể bạn sẽ thích … Chà … trên thực tế mọi người đều thích. Đại diện ở đây là Loa Coco - Cái nào không chỉ cung cấp chất lượng âm thanh HD mà còn " GẶP LẠI MẮT
Hệ thống thông báo mã thông báo: 5 bước
Hệ thống thông báo mã thông báo: Trong phần hướng dẫn trước, chúng ta đã biết cách làm cho Arduino của bạn có thể nói. Hôm nay chúng ta sẽ khám phá thêm một chút về chủ đề tương tự. Tất cả chúng ta đều phải có một lúc nào đó trong đời bắt gặp hệ thống Thông báo có thể là trong ngân hàng hoặc nhà ga xe lửa. Bạn đã bao giờ chiến thắng
Cách chuyển đổi bất kỳ LOA nào thành LOA BLUETOOTH: 5 bước
Làm thế nào để chuyển đổi bất kỳ LOA nào thành LOA BLUETOOTH: Nếu bạn có một hệ thống rạp hát gia đình cũ như tôi thì bạn đã tìm thấy một tùy chọn kết nối rất phổ biến, được gọi là Bluetooth, bị thiếu trên hệ thống của bạn. Nếu không có phương tiện này, bạn phải đối mặt với sự lộn xộn của kết nối AUX thông thường và tất nhiên, nếu bạn
Quay số thông minh - Điện thoại truyền thống thông minh tự động sửa lỗi: 8 bước
Smart Dial - Điện thoại truyền thống thông minh tự động sửa lỗi: Smart Dial là điện thoại tự động sửa lỗi thông minh được tạo ra cho người cao tuổi có nhu cầu đặc biệt và nó cho phép người cao tuổi quay số trực tiếp từ điện thoại truyền thống mà họ quen dùng. Chỉ nhờ hoạt động tình nguyện tại một trung tâm chăm sóc người cao niên địa phương mà tôi