Isi kandungan:

Sistem Camara Pembesar Suara (SPACS): 8 Langkah
Sistem Camara Pembesar Suara (SPACS): 8 Langkah

Video: Sistem Camara Pembesar Suara (SPACS): 8 Langkah

Video: Sistem Camara Pembesar Suara (SPACS): 8 Langkah
Video: 7 Settingan Pengguna Baru VIVO Y12s dan VIVO Y20 - Settingan Rahasia 2024, November
Anonim
Image
Image
Perkakasan - Percetakan 3D
Perkakasan - Percetakan 3D

Bayangkan panggilan persidangan di mana berbilang pembesar suara mengelilingi satu kamera. Kita sering bertemu di mana sudut pandangan kamera yang terhad sering gagal menatap orang yang bercakap. Batasan perkakasan ini secara signifikan menurunkan pengalaman pengguna. Sekiranya kamera dapat melihat pembesar suara aktif, khalayak jauh akan lebih terlibat dalam perbualan semasa panggilan berlangsung. Dalam projek ini, kami mencadangkan sistem (prototaip) kamera yang mengesan dan mengikuti pembesar suara aktif dengan memutar kamera ke arah pembesar suara. Sistem ini menggunakan pendekatan berasaskan visual dan audio. Apabila wajah dikesan dari kamera, ia menentukan orang yang bercakap dan mengira sudut untuk berputar. Apabila wajah tidak dikesan pada sudut semasa, sistem mencari pembesar suara berdasarkan arah isyarat audio kedatangan.

Langkah 1: Bahan

Adafruit Feather nRF52840 Express X 1

www.adafruit.com/product/4062

Penguat Mikrofon Elektrret - MAX4466 X 2

www.adafruit.com/product/1063

Motor Servo Mikro X 1

www.adafruit.com/product/169

Telefon pintar Android X 1

Langkah 2: Perkakasan - Percetakan 3D

Perkakasan - Percetakan 3D
Perkakasan - Percetakan 3D
Perkakasan - Percetakan 3D
Perkakasan - Percetakan 3D

Untuk pelaksanaan yang pantas, kami memutuskan untuk mencetak 3D lampiran yang kami perlukan. Terdapat dua komponen utama untuk kurungan; meja pusing dan pendirian telefon pintar. Kami menggunakan pusing putar dari pautan ini (https://www.thingiverse.com/thing:141287), di mana ia menyediakan casing Arduino di bahagian bawah dan meja berputar yang dapat dihubungkan dengan motor servo. Kami menggunakan pendirian telefon pintar dari pautan ini (https://www.thingiverse.com/thing::673050), yang boleh dilipat dan disesuaikan sudut sehingga membolehkan kami menentukur sudut dengan mudah. Gambar di bawah menunjukkan bahagian bercetak 3D yang dipasang bersama.

Langkah 3: Perkakasan - Komponen Elektronik

Perkakasan - Komponen Elektronik
Perkakasan - Komponen Elektronik
Perkakasan - Komponen Elektronik
Perkakasan - Komponen Elektronik

Terdapat empat komponen berwayar; Adafruit Feather, dua mikrofon, dan motor. Untuk pembungkusan padat, kami menyolder wayar (bulatan kelabu) tanpa menggunakan papan roti. Di bawah menerangkan gambarajah litar dan artifak sebenar.

Langkah 4: Perisian

Sistem kami terutamanya menggunakan maklumat visual dari pengecaman wajah untuk mengikuti pembesar suara kerana lebih tepat. Agar Feather mendapatkan maklumat visual dari aplikasi Android, kami menggunakan Bluetooth Low Energy sebagai kaedah komunikasi utama.

Apabila mana-mana muka dikesan, aplikasi mengira sudut yang perlu diputar oleh motor untuk memfokuskan pembesar suara di tengah bingkai. Kami menguraikan kemungkinan senario dan menangani seperti berikut:

  1. Sekiranya wajah dikesan dan bercakap, ia akan menghitung titik tengah pembesar suara dan mengembalikan sudut relatif ke Feather.
  2. Sekiranya wajah dikesan dan tetapi tidak ada yang berbicara, ia juga akan mengira titik tengah wajah dan mengembalikan sudut dengan sewajarnya.
  3. Sekiranya wajah tidak dikesan, sistem akan menukar logik penjejakan pembesar suara dari visual ke audio.

Perisian SPACS terletak di

Langkah 5: Perisian - Bunyi

Perisian - Bunyi
Perisian - Bunyi

Bunyi (YH)

Untuk mencari sumber suara yang masuk, pertama kami cuba menggunakan perbezaan masa antara kedua mikrofon. Tetapi itu tidak tepat seperti yang kami harapkan kerana laju pengambilan sampel (~ 900Hz) Arduino Leopard, di mana kami menguji isyarat suara, perlahan sehingga tidak dapat mengambil perbezaan waktu antara mikrofon yang berjarak 10cm.

Kami mengubah rancangan untuk menggunakan perbezaan intensiti antara dua isyarat bunyi input. Akibatnya, bulu mengambil dua isyarat bunyi dan memprosesnya untuk mengesan dari mana suara itu berasal. Pemprosesan dapat dijelaskan dengan langkah-langkah berikut:

  1. Ambil input dari dua mikrofon dan tolak offset untuk mendapatkan amplitud isyarat.
  2. Kumpulkan nilai mutlak amplitud per MIC untuk 500 pengambilan.
  3. Simpan perbezaan nilai terkumpul ke barisan yang mempunyai 5 slot.
  4. Kembalikan jumlah barisan sebagai nilai perbezaan terakhir.
  5. Bandingkan nilai akhir dengan ambang untuk menentukan dari mana suara itu berasal.

Kami menemui ambang dengan merancang nilai akhir dalam pelbagai keadaan termasuk suara yang datang dari kiri dan kanan. Di atas ambang untuk nilai akhir, kami juga menetapkan ambang lain untuk rata-rata amplitud terkumpul pada langkah 2 untuk menyaring suara.

Langkah 6: Perisian - Pengesanan Muka dan Bicara

Untuk pengecaman wajah, kami menggunakan ML Kit untuk Firebase yang dikeluarkan oleh Google (https://firebase.google.com/docs/ml-kit). ML Kit menyediakan API pengesanan wajah yang mengembalikan kotak pengikat setiap wajah dan tanda tempatnya, termasuk mata, hidung, telinga, pipi, dan titik yang berbeza pada mulut. Setelah wajah dikesan, aplikasi mengesan pergerakan mulut untuk menentukan sama ada orang itu bercakap. Kami menggunakan pendekatan berasaskan ambang sederhana yang menghasilkan prestasi yang boleh dipercayai. Kami memanfaatkan kenyataan bahawa pergerakan mulut menjadi lebih besar secara mendatar dan menegak ketika seseorang bercakap. Kami mengira jarak menegak dan mendatar mulut dan mengira sisihan piawai untuk setiap jarak. Jarak dinormalisasi mengikut ukuran wajah. Sisihan piawai yang lebih besar menunjukkan bercakap. Pendekatan ini mempunyai batasan bahawa setiap aktiviti melibatkan pergerakan mulut, termasuk makan, minum, atau menguap, dapat dikenali sebagai bercakap. Tetapi, ia mempunyai kadar negatif palsu yang rendah.

Langkah 7: Perisian - Motor Berputar

Perisian - Motor Berputar
Perisian - Motor Berputar

Putaran motor tidak semudah yang kita jangkakan kerana kawalan kelajuan putaran. Untuk mengawal kelajuan, kami menyatakan pemboleh ubah pembilang global yang membolehkan motor berpusing hanya apabila pemboleh ubah mencapai nilai tertentu. Kami juga menyatakan pemboleh ubah global lain yang menunjukkan jika motor bergerak untuk memberitahu mikrofon sehingga dapat mengelakkan bunyi yang keluar dari putaran motor.

Langkah 8: Penambahbaikan Masa Depan

Salah satu batasannya ialah motor menjadi goyah pada sudut tertentu. Nampaknya motor tidak cukup kuat untuk mengatasi tork yang dihasilkan dengan memutar telefon pintar. Ia dapat diselesaikan dengan menggunakan motor yang lebih kuat atau menyesuaikan kedudukan telefon pintar ke arah pusat putaran untuk mengurangkan tork.

Pengesanan arah suara berdasarkan audio dapat ditingkatkan dengan kaedah yang lebih canggih. Kami ingin mencuba pendekatan acuan akustik untuk menentukan arah bunyi yang masuk. Kami telah mencuba dengan masa kedatangan isyarat audio. Tetapi, kadar pensampelan Feather terhad untuk mengesan perbezaan waktu ketika mikrofon hanya berjarak sekitar 10cm.

Bahagian terakhir prototaip yang hilang ini adalah penilaian kebolehgunaan. Salah satu cara yang menjanjikan untuk menilai adalah mengintegrasikan sistem dengan platform panggilan video yang ada dan memerhatikan tindak balas pengguna. Respons tersebut akan membantu memperbaiki sistem dan membuat lelaran seterusnya dari prototaip ini.

Disyorkan: