Სარჩევი:

სპიკერი-მცოდნე Camara სისტემა (SPACS): 8 ნაბიჯი
სპიკერი-მცოდნე Camara სისტემა (SPACS): 8 ნაბიჯი

ვიდეო: სპიკერი-მცოდნე Camara სისტემა (SPACS): 8 ნაბიჯი

ვიდეო: სპიკერი-მცოდნე Camara სისტემა (SPACS): 8 ნაბიჯი
ვიდეო: Вместо Ауди А8/Audi A8? Самый мощный дизельный V10 Фольксваген Фаэтон / Фэатон / Volkswagen Phaeton 2024, ნოემბერი
Anonim
Image
Image
აპარატურა - 3D ბეჭდვა
აპარატურა - 3D ბეჭდვა

წარმოიდგინეთ საკონფერენციო ზარი, სადაც მრავალი სპიკერი გარს უვლის ერთ კამერას. ჩვენ ხშირად ვხვდებით იქ, სადაც კამერის შეზღუდული ხედვის კუთხე ხშირად ვერ ახერხებს შეხედოს მეტყველ ადამიანს. აპარატურის ეს შეზღუდვა მნიშვნელოვნად ამცირებს მომხმარებლის გამოცდილებას. თუ კამერას შეუძლია აქტიური დინამიკების მზერა, დისტანციური აუდიტორია უფრო მეტად ჩაერთვება საუბარში ზარის დროს. ამ პროექტში ჩვენ შემოგთავაზებთ კამერის (პროტოტიპს) სისტემას, რომელიც ამოიცნობს და მისდევს აქტიურ სპიკერს კამერის დინამიკისკენ შემობრუნებით. სისტემა იყენებს როგორც ვიზუალურ, ისე აუდიო დაფუძნებულ მიდგომას. როდესაც კამერებიდან ამოღებულია სახეები, ის განსაზღვრავს მეტყველ პირს და ითვლის ბრუნვის კუთხეს. როდესაც სახეები არ არის გამოვლენილი მიმდინარე კუთხით, სისტემა ეძებს დინამიკს ჩამოსვლის აუდიო სიგნალების მიმართულებით.

ნაბიჯი 1: მასალები

ადაფრუტის ბუმბული nRF52840 Express X 1

www.adafruit.com/product/4062

ელექტროეტის მიკროფონის გამაძლიერებელი - MAX4466 X 2

www.adafruit.com/product/1063

მიკრო სერვო ძრავა X 1

www.adafruit.com/product/169

Android სმარტფონი X 1

ნაბიჯი 2: აპარატურა - 3D ბეჭდვა

აპარატურა - 3D ბეჭდვა
აპარატურა - 3D ბეჭდვა
აპარატურა - 3D ბეჭდვა
აპარატურა - 3D ბეჭდვა

სწრაფი განხორციელებისათვის, ჩვენ გადავწყვიტეთ 3D ბეჭდვა ჩვენთვის საჭირო შიგთავსები. არსებობს ორი ძირითადი კომპონენტი შიგთავსებისთვის; ჭურჭელი და სმარტფონის სადგამი. ჩვენ გამოვიყენეთ ჭურვი ამ ბმულიდან (https://www.thingiverse.com/thing:141287), სადაც მოცემულია Arduino ჩანთა ბოლოში და მბრუნავი მაგიდა, რომელიც შეიძლება იყოს დაკავშირებული სერვო ძრავით. ჩვენ გამოვიყენეთ სმარტფონის სტენდი ამ ბმულიდან (https://www.thingiverse.com/thing:2673050), რომელიც დასაკეცი და კუთხის რეგულირებადია ისე, რომ გვაძლევს კუთხის მოხერხებულად დაკალიბრების საშუალებას. ქვემოთ მოყვანილ ფიგურაში ნაჩვენებია ერთად აწყობილი 3D ბეჭდვის ნაწილები.

ნაბიჯი 3: აპარატურა - ელექტრონული კომპონენტები

აპარატურა - ელექტრონული კომპონენტები
აპარატურა - ელექტრონული კომპონენტები
აპარატურა - ელექტრონული კომპონენტები
აპარატურა - ელექტრონული კომპონენტები

არსებობს ოთხი სადენიანი კომპონენტი; ადაფრუტის ბუმბული, ორი მიკროფონი და ძრავა. კომპაქტური შეფუთვისთვის, ჩვენ შევაერთეთ (ნაცრისფერი წრეები) მავთულები პურის დაფის გამოყენების გარეშე. ქვემოთ აღწერილია სქემის დიაგრამა და ფაქტობრივი არტეფაქტი.

ნაბიჯი 4: პროგრამული უზრუნველყოფა

ჩვენი სისტემა პირველ რიგში იყენებს სახის ამოცნობის ვიზუალურ ინფორმაციას, რათა დაიცვას სპიკერი, რადგან ის უფრო ზუსტია. იმისათვის, რომ ბუმბულმა ვიზუალური ინფორმაცია მიიღოს Android აპლიკაციიდან, ჩვენ ვიყენებთ Bluetooth Low Energy– ს, როგორც კომუნიკაციის მთავარ მეთოდს.

როდესაც რაიმე სახე გამოვლინდება, აპლიკაცია ითვლის იმ კუთხეს, რომელიც ძრავას სჭირდება ბრუნვისთვის, რათა სპიკერი ფოკუსირდეს ჩარჩოს ცენტრში. ჩვენ დავშალეთ შესაძლო სცენარები და ვიმუშავეთ შემდეგნაირად:

  1. თუ სახე (ები) გამოვლენილია და ლაპარაკობს, ის ითვლის დინამიკების შუა წერტილს და ბრუნავს ფარდობით კუთხეს.
  2. თუ სახე (ები) გამოვლენილია და არცერთი მათგანი არ საუბრობს, ის ასევე ითვლის სახეების შუა წერტილს და შესაბამისად აბრუნებს კუთხეს.
  3. თუ რაიმე სახე არ არის გამოვლენილი, სისტემა ცვლის დინამიკების თვალთვალის ლოგიკას ვიზუალიდან აუდიოზე.

SPACS პროგრამული უზრუნველყოფა მდებარეობს

ნაბიჯი 5: პროგრამული უზრუნველყოფა - ხმა

პროგრამული უზრუნველყოფა - ხმა
პროგრამული უზრუნველყოფა - ხმა

ხმა (YH)

შემომავალი ხმის წყაროს დასადგენად, ჩვენ პირველად შევეცადეთ გამოგვეყენებინა დროის სხვაობა ორ მიკროფონს შორის. მაგრამ ეს არ იყო ისეთი ზუსტი, როგორც ჩვენ ველოდით მას შემდეგ, რაც Arduino Leopard– ის შერჩევის სიჩქარე (~ 900 ჰც), სადაც ჩვენ ხმოვანი სიგნალები გამოვცადეთ, ისეთი ნელი იყო, რომ მას არ შეეძლო 10 სმ – ის დაშორებით მიკროფონებს შორის დროის სხვაობის აღება.

ჩვენ შევცვალეთ გეგმა, რომ გამოვიყენოთ ინტენსივობის სხვაობა ორ შეყვანის ხმოვან სიგნალს შორის. შედეგად, ბუმბული იღებს ორ ხმოვან სიგნალს და ამუშავებს მათ იმის დასადგენად, საიდან მოდის ხმა. დამუშავება შეიძლება აღწერილი იყოს შემდეგი ნაბიჯებით:

  1. აიღეთ ორი მიკროფონის შეყვანა და გამოაკელით ოფსეტი სიგნალების ამპლიტუდის მისაღებად.
  2. დააგროვეთ ამპლიტუდების აბსოლუტური მნიშვნელობები MIC– ზე 500 პიკაპისთვის.
  3. დაგროვილი ღირებულებების სხვაობა შეინახეთ რიგში 5 სლოტის მქონე.
  4. დააბრუნეთ რიგების ჯამი, როგორც საბოლოო სხვაობის მნიშვნელობა.
  5. შეადარეთ საბოლოო მნიშვნელობა ზღურბლებთან, რათა გადაწყვიტოთ საიდან გაჩნდა ხმა.

ჩვენ ვიპოვეთ ბარიერი სხვადასხვა მნიშვნელობებში საბოლოო მნიშვნელობის შედგენით, მათ შორის ბგერა მარცხნიდან და მარჯვნივ. ზღურბლთან ერთად, საბოლოო მნიშვნელობისთვის, ჩვენ ასევე დავაყენეთ კიდევ ერთი ბარიერი დაგროვილი ამპლიტუდების საშუალო საფეხურზე 2, ხმაურების გაფილტვრის მიზნით.

ნაბიჯი 6: პროგრამული უზრუნველყოფა - სახის და მეტყველების ამოცნობა

სახის ამოცნობისთვის ჩვენ გამოვიყენეთ Google– ის მიერ გამოშვებული ML Kit Firebase– ისთვის (https://firebase.google.com/docs/ml-kit). ML Kit უზრუნველყოფს სახის გამოვლენის API, რომელიც აბრუნებს თითოეული სახის შემოსაზღვრულ ყუთს და მის ღირსშესანიშნაობებს, მათ შორის თვალებს, ცხვირს, ყურებს, ლოყებს და პირის ღრუს სხვადასხვა წერტილებს. როდესაც სახეები გამოვლენილია, აპლიკაცია თვალყურს ადევნებს პირის მოძრაობას იმის დასადგენად, საუბრობს თუ არა ადამიანი. ჩვენ ვიყენებთ ბარიერზე დაფუძნებულ მარტივ მიდგომას, რომელიც იძლევა საიმედო შესრულებას. ჩვენ გამოვიყენეთ ის ფაქტი, რომ პირის მოძრაობა იზრდება ჰორიზონტალურად და ვერტიკალურად, როდესაც ადამიანი ლაპარაკობს. ჩვენ ვიანგარიშებთ პირის ღრუს ვერტიკალურ და ჰორიზონტალურ მანძილს და გამოვთვლით სტანდარტულ გადახრას თითოეული მანძილისთვის. მანძილი ნორმალიზდება სახის ზომაზე. უფრო დიდი სტანდარტული გადახრა მიუთითებს მეტყველებაზე. ამ მიდგომას აქვს შეზღუდვა, რომ ყველა აქტივობა მოიცავს პირის მოძრაობას, მათ შორის ჭამას, დალევას ან ყეფას, შეიძლება აღიარებული იყოს როგორც მეტყველება. მაგრამ, მას აქვს დაბალი ცრუ უარყოფითი მაჩვენებელი.

ნაბიჯი 7: პროგრამული უზრუნველყოფა - მბრუნავი ძრავა

პროგრამული უზრუნველყოფა - მბრუნავი ძრავა
პროგრამული უზრუნველყოფა - მბრუნავი ძრავა

ძრავის ბრუნვა არ იყო ისეთი მარტივი, როგორც ველოდით ბრუნვის სიჩქარის კონტროლის გამო. სიჩქარის გასაკონტროლებლად, ჩვენ ვაცხადებთ გლობალურ მრიცხველ ცვლადს, რომელიც საშუალებას აძლევს ძრავას გადატრიალდეს მხოლოდ მაშინ, როდესაც ცვლადი მიაღწევს გარკვეულ მნიშვნელობას. ჩვენ ასევე გამოვაცხადეთ კიდევ ერთი გლობალური ცვლადი, რომელიც მიუთითებს იმაზე, მოძრაობს თუ არა ძრავა მიკროფონებისათვის, რათა თავიდან აიცილოს ძრავის ბრუნვიდან მომდინარე ხმა.

ნაბიჯი 8: მომავალი გაუმჯობესება

ერთ -ერთი შეზღუდვა ის არის, რომ ძრავა მოძრაობს გარკვეულ კუთხეებში. როგორც ჩანს, ძრავა არ არის საკმარისად ძლიერი იმისათვის, რომ გადალახოს სმარტფონის ბრუნვით წარმოქმნილი ბრუნვა. მისი მოგვარება შესაძლებელია უფრო მძლავრი ძრავის გამოყენებით ან სმარტფონის პოზიციის მორგებით ბრუნვის ცენტრისკენ ბრუნვის შესამცირებლად.

აუდიოზე დაფუძნებული ხმის მიმართულების ამოცნობა შეიძლება გაუმჯობესდეს უფრო დახვეწილი მეთოდით. ჩვენ გვსურს შევეცადოთ აკუსტიკური სხივების ფორმირების მიდგომას შემომავალი ბგერის მიმართულების დასადგენად. ჩვენ ვცადეთ აუდიო სიგნალების ჩამოსვლის დრო. ბუმბულის შერჩევის მაჩვენებელი შეზღუდულია დროის სხვაობის დასადგენად, როდესაც მიკროფონები მხოლოდ 10 სმ მანძილზეა.

ამ პროტოტიპის ბოლო დაკარგული ნაწილი არის გამოყენებადობის შეფასება. შეფასების ერთ – ერთი პერსპექტიული მეთოდია სისტემის ინტეგრაცია არსებულ ვიდეო ზარების პლატფორმასთან და მომხმარებელთა პასუხების დაკვირვება. ეს პასუხები ხელს შეუწყობს სისტემის გაუმჯობესებას და ამ პროტოტიპის მომდევნო გამეორებას.

გირჩევთ: