-
Microphone mảng pha
- Microphone mảng pha 192 kênh, cung cấp khả năng thu thập dữ liệu bằng FPGA và beamforming/trực quan hóa trên GPU. Mảng pha cho phép các ứng dụng mà micro định hướng truyền thống không thể thực hiện, đồng thời có thể thay đổi hướng tính ngay sau khi ghi âm hoặc lấy nét đồng thời vào hàng trăm nghìn điểm.
- Toàn bộ thiết kế được cung cấp dưới dạng mã nguồn mở:
- Phần mềm máy chủ
- Gateware FPGA
- Bố cục PCB và sơ đồ mạch, các thành phần cơ khí
-
Phần cứng
- Để tạo micro mảng pha, cần bố trí một số lượng lớn micro với khoảng cách rộng. Với mảng tuyến tính, khoảng cách theo cấp số nhân giữa các micro là tối ưu cho tín hiệu băng rộng.
- Tổng chi phí khoảng $700.
Cánh tay
- Chiều dài của mỗi cánh tay được quyết định bởi giới hạn của quá trình sản xuất và lắp ráp PCB. Được sản xuất tại JLCPCB, và chiều dài tối đa của PCB 4 lớp là 570mm.
- Micro được chọn là MEMS microphone đầu ra số rẻ nhất, không có khác biệt lớn về đặc tính hiệu năng.
- Dữ liệu được xuất bằng PDM, có hỗ trợ DDR nên có thể ghép kênh hai micro trên một dây.
- Mỗi cánh tay có 8 micro dùng chung 4 đường đầu ra, và có bộ đệm đầu ra trên đường vào xung clock.
- Tỷ lệ thành phẩm của PCB không tốt, và vấn đề phổ biến nhất là đường clock bị chập với 3V3 hoặc đất.
Hub
- FPGA được dùng để thu thập dữ liệu vì có thể gom nhiều IO độ trễ thấp và giao tiếp qua giao diện tốc độ cao.
- Card Colorlight i5 được sử dụng vì có đủ IO, giá rẻ, và tích hợp hai Ethernet PHY.
- Hub bao gồm mạch quản lý nguồn đơn giản cùng với bo mạch cánh tay và đầu nối Ethernet.
Thiết kế cơ khí
- Các cánh tay được gắn vào hub bằng vít M3, và được lắp ráp bằng standoff/đai ốc gắn PCB.
- Thiết kế ban đầu có các khe trên PCB cánh tay để ăn khớp với PCB kết cấu, nhưng thiết kế cuối cùng bao quanh bên ngoài bằng MDF và cố định bằng dây rút.
- Mảng micro gắn tường nhạy với phản xạ, vì vậy sử dụng mút tiêu âm để giảm phản xạ.
-
Gateware
- Mục tiêu chính của gateware là truyền dữ liệu thô sang máy tính mà không bị mất mát.
- Thực hiện decimation và lọc trên FPGA sẽ làm giảm tốc độ truyền dữ liệu, nhưng vẫn có thể truyền dữ liệu PDM thô.
Giao diện PDM
- Mô-đun đầu vào PDM chia xung clock hệ thống 50MHz cho 16 để xuất ra xung clock PDM 3.125MHz, và chốt 96 chân đầu vào sau mỗi cạnh clock.
- Tốc độ dữ liệu là 600Mbps, và tính cả header là 700Mbps.
Đóng gói gói tin
- Khối đóng gói là một bộ đệm FIFO, chỉ bắt đầu gói khi hàng đợi có đủ dữ liệu để bảo đảm kích thước gói cố định.
- 48 khối đầu ra PDM được đưa vào mỗi gói, với tốc độ truyền 715 Mbps.
UDP streamer
- Nhờ dự án LiteEth, độ phức tạp của việc đóng gói UDP và IP được trừu tượng hóa, nên việc nối FIFO với luồng UDP trở nên đơn giản.
-
Phần mềm
Bộ lọc CIC
- Mỗi micro tạo ra tín hiệu 1 bit ở 3.125MHz, cần được giảm xuống tốc độ lấy mẫu và độ sâu bit hợp lý hơn.
- Sử dụng bộ lọc CIC 4 tầng, decimation 16 lần để giảm tốc độ lấy mẫu xuống 195kHz.
Hiệu chuẩn
- Để hiệu chuẩn mảng, một loa phát white noise và di chuyển phía trước mảng.
- Sử dụng tương quan chéo dựa trên FFT để tính độ trễ tương đối giữa các micro.
- Tối ưu hóa vị trí nguồn và vị trí micro để thu được mô hình tối ưu của hệ thống.
Beamforming
- Beamforming là phương pháp xử lý đầu vào micro thô để tạo ra đáp ứng có hướng.
- Tín hiệu được xử lý bằng cách triển khai độ trễ trong miền tần số.
- Đã triển khai beamformer 3D cự ly gần và beamformer 2D trường xa.
Beamforming 3D cự ly gần
- Được thực hiện trên lưới voxel 5cm, đạt tốc độ cập nhật 12Hz trên RTX 4090.
- Trực quan hóa bằng VisPy.
Beamforming 2D trường xa
- Sử dụng lưới 512x512 pixel, đạt tốc độ cập nhật 12Hz.
Âm thanh định hướng
- Đã triển khai beamformer trễ-thời-gian và cộng tín hiệu để cho phép ghi âm âm thanh định hướng.
Ghi âm
- Dữ liệu từ mảng micro được gửi dưới dạng gói UDP, có thể ghi lại bằng các công cụ như
tcpdump.
- Nhược điểm của cách triển khai ghi âm là tốc độ dữ liệu đầu ra rất cao.
-
Bước tiếp theo
- Dự án này về bản chất đã hoàn thành, và hiện không có kế hoạch làm thêm, nhưng vẫn có nhiều khả năng mở rộng.
- Sử dụng các thuật toán beamforming tiên tiến hơn
- GUI tốt hơn kết hợp tất cả tính năng
- Kết hợp beamforming khả vi với mô hình mạng nơ-ron
1 bình luận
Ý kiến trên Hacker News
Có người đề cập rằng việc tối ưu hóa tốc độ âm thanh để có được mô hình tối ưu của hệ thống hoạt động giống như một chiếc nhiệt kế cực kỳ phức tạp
Đã thực hiện một dự án dùng 4 microphone để xác định vị trí của dơi và nhận diện loài
Có câu hỏi về lý do dùng PDM thay vì microphone TDM I2S
Có ý kiến muốn kết hợp với mảng loa siêu âm để dùng cho ứng dụng y tế
Có người nhắc rằng trên YouTube có thể xem các demo rất ấn tượng của camera âm thanh
Mong các thiết bị di động sẽ có tính năng âm thanh định hướng chất lượng cao
Nhắc đến hệ thống âm thanh hình cầu mà Boeing đã dùng trên nguyên mẫu 787
Cho rằng một dự án tách âm thanh dựa trên vị trí sẽ rất hay
Bày tỏ sự ngạc nhiên trước PCB dạng "cánh tay" dài
Nhắc rằng công nghệ này đang ngày càng được dùng nhiều trên drone