İçindekiler:
- Adım 1: Malzemeler
- 2. Adım: Donanım - 3D Baskı
- 3. Adım: Donanım - Elektronik Bileşenler
- 4. Adım: Yazılım
- Adım 5: Yazılım - Ses
- 6. Adım: Yazılım - Yüz ve Konuşma Algılama
- Adım 7: Yazılım - Dönen Motor
- 8. Adım: Gelecekteki İyileştirmeler
Video: Konuşmacı Duyarlı Camara Sistemi (SPACS): 8 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Birden fazla hoparlörün bir kamerayı çevrelediği bir konferans görüşmesi hayal edin. Genellikle bir kameranın sınırlı görüş açısının konuşan kişiye bakmayı başaramadığı durumlarla karşılaşırız. Bu donanım sınırlaması, kullanıcı deneyimini önemli ölçüde düşürür. Kamera aktif konuşmacılara bakabiliyorsa, uzaktaki izleyici görüşme sırasında daha fazla konuşmaya dahil olur. Bu projede, kamerayı konuşmacıya doğru çevirerek aktif konuşmacıyı algılayan ve takip eden bir (prototip) kamera sistemi öneriyoruz. Sistem hem görsel hem de işitsel tabanlı bir yaklaşım kullanır. Kameradan yüzler algılandığında konuşan kişiyi belirler ve dönüş açısını hesaplar. Mevcut açıda yüzler algılanmadığında, sistem, gelen ses sinyallerinin yönüne göre hoparlörü arar.
Adım 1: Malzemeler
Adafruit Tüy nRF52840 Ekspres X 1
www.adafruit.com/product/4062
Elektret Mikrofon Amplifikatörü - MAX4466 X 2
www.adafruit.com/product/1063
Mikro Servo Motor X 1
www.adafruit.com/product/169
Android akıllı telefon X1
2. Adım: Donanım - 3D Baskı
Hızlı uygulama için, ihtiyacımız olan muhafazaları 3D olarak yazdırmaya karar verdik. Muhafazalar için iki ana bileşen vardır; bir döner tabla ve bir akıllı telefon standı. Bu linkten (https://www.thingiverse.com/thing:141287), alt kısmında Arduino kasası ve servo motor ile bağlanabilen döner tablanın bulunduğu döner tablayı kullandık. Bu bağlantıdan (https://www.thingiverse.com/thing:2673050) bir akıllı telefon standı kullandık, bu da açıyı rahatça kalibre etmemizi sağlayacak şekilde katlanabilir ve açısı ayarlanabilir. Aşağıdaki şekil, bir araya getirilmiş 3D baskılı parçaları göstermektedir.
3. Adım: Donanım - Elektronik Bileşenler
Dört kablolu bileşen vardır; Adafruit Feather, iki mikrofon ve bir motor. Kompakt paketleme için telleri breadboard kullanmadan lehimledik (gri daireler). Aşağıda devre şeması ve gerçek eser anlatılmaktadır.
4. Adım: Yazılım
Sistemimiz, daha doğru olduğu için konuşmacıyı takip etmek için öncelikle yüz tanımadan gelen görsel bilgileri kullanır. Feather'ın Android uygulamasından görsel bilgi alabilmesi için ana iletişim yöntemi olarak Bluetooth Low Energy kullanıyoruz.
Herhangi bir yüz algılandığında uygulama, hoparlörü çerçevenin ortasına odaklamak için motorun dönmesi gereken açıyı hesaplar. Olası senaryoları ayrıştırdık ve aşağıdaki gibi ele aldık:
- Yüz(ler) algılanır ve konuşursa, hoparlörlerin orta noktasını hesaplar ve göreli açıyı Tüy'e döndürür.
- Yüz(ler) algılanır ve hiçbiri konuşmuyorsa, yüzlerin orta noktasını da hesaplar ve buna göre açıyı döndürür.
- Herhangi bir yüz algılanmazsa sistem, hoparlör izleme mantığını görselden sese değiştirir.
SPACS yazılımı https://github.com/yhoonkim/cse599h-fp adresinde bulunmaktadır.
Adım 5: Yazılım - Ses
Ses (YH)
Gelen sesin kaynağını bulmak için önce iki mikrofon arasındaki zaman farkını kullanmaya çalıştık. Fakat ses sinyallerini test ettiğimiz Arduino Leopard'ın örnekleme hızı (~900Hz) 10cm aralıklı mikrofonlar arasındaki zaman farkını algılayamayacak kadar yavaş olduğu için beklediğimiz kadar doğru çıkmadı.
İki giriş ses sinyali arasındaki yoğunluk farkını kullanmak için planı değiştirdik. Sonuç olarak, tüy iki ses sinyali alır ve sesin nereden geldiğini tespit etmek için bunları işler. İşleme aşağıdaki adımlarla açıklanabilir:
- Girişleri iki mikrofondan alın ve sinyallerin genliklerini elde etmek için ofseti çıkarın.
- 500 başlatma için MIC başına amplitüdlerin mutlak değerlerini toplayın.
- Biriken değerlerin farkını 5 slotlu kuyruğa kaydedin.
- Kuyrukların toplamını son fark değeri olarak döndürün.
- Sesin nereden geldiğine karar vermek için son değeri eşiklerle karşılaştırın.
Soldan ve sağdan gelen ses de dahil olmak üzere çeşitli durumlarda nihai değeri çizerek eşiği bulduk. Nihai değer için eşiklerin üzerine, gürültüleri filtrelemek için 2. adımda birikmiş genliklerin ortalaması için başka bir eşik de belirledik.
6. Adım: Yazılım - Yüz ve Konuşma Algılama
Yüz tanıma için Google tarafından yayınlanan Firebase için ML Kit'i kullandık (https://firebase.google.com/docs/ml-kit). ML Kit, gözler, burun, kulaklar, yanaklar ve ağızdaki farklı noktalar dahil olmak üzere her yüzün sınırlayıcı kutusunu ve işaretlerini döndüren yüz algılama API'sini sağlar. Yüzler algılandığında, uygulama kişinin konuşup konuşmadığını belirlemek için ağız hareketini takip eder. Güvenilir performans sağlayan basit bir eşik tabanlı yaklaşım kullanıyoruz. Bir kişi konuşurken ağız hareketinin hem yatay hem de dikey olarak büyüdüğü gerçeğinden yararlandık. Ağzın dikey ve yatay mesafesini hesaplıyoruz ve her mesafe için standart sapmayı hesaplıyoruz. Mesafe yüzün boyutuna göre normalleştirilir. Daha büyük standart sapma konuşmayı gösterir. Bu yaklaşım, yeme, içme veya esneme dahil olmak üzere ağız hareketini içeren her aktivitenin konuşma olarak algılanabilmesi gibi bir sınırlamaya sahiptir. Ancak, düşük bir yanlış negatif oranına sahiptir.
Adım 7: Yazılım - Dönen Motor
Motor dönüşü, dönüş hızının kontrolü nedeniyle beklediğimiz kadar basit değildi. Hızı kontrol etmek için, motorun yalnızca değişken belirli bir değere ulaştığında dönmesine izin verecek şekilde global bir sayaç değişkeni bildiririz. Ayrıca, motorun dönmesinden gelen sesi önleyebilmesi için mikrofonların bilmesini sağlamak için motorun hareket edip etmediğini gösteren başka bir global değişken tanımladık.
8. Adım: Gelecekteki İyileştirmeler
Sınırlamalardan biri, motorun belirli açılarda yalpalamasıdır. Görünüşe göre motor, akıllı telefonu döndürerek üretilen torku yenecek kadar güçlü değil. Torku azaltmak için daha güçlü bir motor kullanarak veya akıllı telefonun konumunu dönme merkezine doğru ayarlayarak çözülebilir.
Ses tabanlı ses yönü tespiti, daha karmaşık bir yöntemle geliştirilebilir. Gelen sesin yönünü belirlemek için akustik hüzmeleme yaklaşımını denemek istiyoruz. Ses sinyallerinin varış zamanı ile denedik. Ancak, Feather'ın örnekleme hızı, mikrofonlar yalnızca yaklaşık 10 cm uzaktayken zaman farkını algılamak için sınırlıdır.
Bu prototipin son eksik parçası kullanılabilirlik değerlendirmesidir. Değerlendirmenin umut verici bir yolu, sistemi mevcut görüntülü arama platformuyla entegre etmek ve kullanıcıların yanıtlarını gözlemlemektir. Bu yanıtlar, sistemi geliştirmeye ve bu prototipin bir sonraki yinelemesini yapmaya yardımcı olacaktır.
Önerilen:
Kaiten Konuşmacı: 7 Adım (Resimlerle)
Kaiten Konuşmacı: Başlangıçta ailem için bir Noel hediyesi olarak tasarlanan bu konuşmacılar, bir yıl sonra nihayet onları çevrimiçi olarak yayınlamaya karar verene kadar birkaç kez tekrarlandı. Talep, televizyonumuzla surround ses sistemi görevi görebilecek hoparlörler içindi. Bu m
Piet Mondrian İlhamlı Konuşmacı: 6 Adım (Resimlerle)
Piet Mondrian İlhamlı Konuşmacı: Bu proje için 10cm x 10cm boyutlarında taşınabilir bir Bluetooth hoparlör yapıyorum. Bu hoparlörü farklı renklerde 3 mm akrilikten yapıyorum. Küp iki hoparlöre sahip olacak, kullanımı kolay Bluetooth işletim sistemine sahip olacak yani
Bill Cipher Piramit Konuşmacı: 9 Adım (Resimlerle)
Bill Cipher Pyramid Speaker: Bu proje, Gravity Falls programından Bill Cipher için piramit tasarımından esinlenmiştir ve Tasarım Teknolojisi Sınıfı için oluşturulmuştur. Şu anda ürün bitmemiş ve bu bir üretim planı olarak hizmet ediyor. Ürün geldiğinde sayfa güncellenecektir
Konuşmacı Sanatı: 5 Adım
Konuşmacı Sanatı: Bu, normal bir tuval resmini biraz daha etkileşimli hale getirmenin çok basit ve eğlenceli bir yoludur. Geçenlerde eğitim nedeniyle eşimle birlikte İskoçya'da küçük bir kasabaya taşındım ve akşamları biraz sıkılmaya başladım (her şey saat 5'te kapanıyor,
Öğle yemeği için ne var? Yemek Kutusunda Konuşmacı!: 3 Adım
Öğle yemeği için ne var? Bir Yemek Kutusunda Konuşmacı!: bu talimatta size gitar, mp3 çalar, VCD çalar vb. için ev yapımı hoparlörümü göstereceğim. "Quiapo" diyoruz. sen