বেশ কয়েকটি মাইক্রোফোন ব্যবহার করে শব্দের দিক সনাক্তকরণ


9

প্রথমত, আমি একটি অনুরূপ থ্রেড দেখেছি, তবে আমি যা অর্জন করতে চাইছি তার থেকে এটি কিছুটা আলাদা। আমি এমন একটি রোবট তৈরি করছি যা এটির কলকারীটিকে অনুসরণ করবে। আমার ধারণাটি 3 বা 4 মাইক্রোফোন ব্যবহার করা - যেমন রোবটটি কোন দিক থেকে ডাকা হয়েছিল তা নির্ধারণ করার জন্য নিম্নলিখিত ব্যবস্থাতে:

এখানে চিত্র বর্ণনা লিখুন

যেখানে এস উত্স, এ, বি এবং সি মাইক্রোফোন। ধারণাটি হ'ল জোড়া AB, AC, BC থেকে রেকর্ড করা সংকেতের পর্যায় সম্পর্কিত গণনা করা এবং তার ভিত্তিতে একটি ভেক্টর তৈরি করুন যা উত্সকে এক ধরণের ত্রিভুজ ব্যবহার করে নির্দেশ করবে। সিস্টেমটিকে এমনকি রিয়েল টাইমে কাজ করতে হবে না কারণ এটি ভয়েস অ্যাক্টিভেট হবে - সমস্ত মাইক্রোফোন থেকে সিগন্যালগুলি একই সাথে রেকর্ড করা হবে, কেবলমাত্র একটি মাইক্রোফোন থেকে ভয়েস নমুনা দেওয়া হবে এবং যদি এটি ভয়েস স্বাক্ষরের সাথে খাপ খায়, তবে পর্যায় সম্পর্কিত সম্পর্কটি গণনা করা হবে দিকটি গণনা করতে সেকেন্ডের শেষ ভগ্নাংশ। আমি সচেতন যে এটি খুব ভাল কাজ করতে পারে না, যখন অন্য ঘর থেকে রোবট কল করা হয় বা একাধিক প্রতিচ্ছবি হয় যখন।

এটি আমার কাছে কেবল একটি ধারণা ছিল, তবে আমি কখনই এর মতো কিছু চেষ্টা করিনি এবং কাজটি করার জন্য আসল হার্ডওয়্যারটি নির্মাণের আগে আমার বেশ কয়েকটি প্রশ্ন রয়েছে:

  1. এটি কি এটি করার একটি সাধারণ উপায়? (অর্থাত্ শব্দটি বাতিল করার জন্য ফোনে ব্যবহৃত?) অন্যান্য সম্ভাব্য পন্থাগুলি কী কী?
  2. একসাথে একসাথে 3 উত্সের মধ্যে ফেজ পারস্পরিক সম্পর্ক গণনা করা যেতে পারে? (অর্থাত গণনার গতি বাড়ানোর জন্য)
  3. 22khz নমুনা হার এবং 12 বিট গভীরতা কি এই সিস্টেমের জন্য যথেষ্ট? আমি বিট গভীরতা সম্পর্কে বিশেষত উদ্বিগ্ন।
  4. মাইক্রোফোনগুলি আলাদা করার জন্য আলাদা টিউবে রাখা উচিত?

1
এখানে একটি আকর্ষণীয় নিবন্ধ , সম্ভবত আপনি এটি দেখেছেন। দেখে মনে হচ্ছে লেখক সাউন্ড সোর্সটি অ্যারের উপরে চলে যাওয়ার সাথে মোকাবিলা করার জন্য অন্য 3 এর উপরে একটি চতুর্থ মাইক স্থাপন করেছিলেন। এটি ছাড়াও এটি আপনার পরিকল্পনার সাথে বেশ মিল বলে মনে হচ্ছে (আমার প্রশিক্ষণপ্রাপ্ত চোখের সাথে অন্তত)।
অতিথি

ফেজ পারস্পরিক সম্পর্ক অংশের জন্য সাধারণ শব্দটি বিমফর্মিং। একটি সাধারণ বিমফর্মিং সিস্টেম মাইক্রোফোনের একটি রৈখিক অ্যারে ব্যবহার করে, এবং আমি নিশ্চিত নই যে আপনার মাইক্রোফোনের জন্য "দৃষ্টি" ক্ষেত্রটি সত্যই অনেক ত্রিকোণকে মঞ্জুর করবে।
pscheidler

ত্রিভঙ্গীকরণ সম্পর্কিত, আমি অনুমান করি আপনি কিছুটা দূরে অ্যারে দুটি বা তিনটি সেট আপ করতে পারেন এবং মরীচিগুলির ছেদটি খুঁজে পেতে পারেন। "আরে রোবট ..." (রোবট আপনার মুখ ফিরবে) দিয়ে 2-মরীচি ডিজেনরেটেড কেস সমাধান করতে পারে ... "এখানে এস!"
অতিথি

আসলে, এটি আরও একটি মাইক যুক্ত করে কাজ করতে পারে। এটি দেখুন , এটি হ্যারি এর সমাধানের বিভিন্নতা ation সমতুল্য ত্রিভুজ একটি ডান ত্রিভুজ হয়ে যায় এবং আরও একটি মাইক যুক্ত হয়ে অন্য ত্রিভুজটি তৈরি করে। প্রতিটি ত্রিভুজ থেকে আমরা একটি মরীচি নিক্ষেপ করি এবং সঠিক দিকনির্দেশক ভেক্টরটি পেতে সেই দুটি বিমের গড় ধরুন। ডেমোতে দুটি "চোখ" লক্ষ্য করুন। এগুলি স্থাপন করা হয়েছে যাতে উত্সটি সরাসরি রোবটের সামনে বা পিছনে থাকে তখন তাদের মধ্য দিয়ে চলমান বিমগুলি অবস্থানটি ত্রিভুজ করে। যেকোন y = 0 এ উত্স দিয়ে চেষ্টা করে দেখুন।
অতিথি

1
@ ফিলিপপিন্টো আপনি সমস্যার উত্তর এবং বর্ণনা পুরোপুরি পড়েছেন? এটি সত্যিকারের মতো কাজ করতে পারে না যেহেতু আপনি জানতে পারবেন না যে প্রতিটি মাইক্রোফোন থেকে প্রতিটি শক্তি শিখর কীভাবে অন্য মাইক্রোফোনের সাথে সম্পর্কিত হয় - এজন্য আপনার প্রয়োজন পর্যায়ে সম্পর্কিত, পুনরাবৃত্তির নিকটতম বিন্দু বা অন্য কোনও রেজিস্ট্রেশন অ্যালগরিদম (নিবন্ধকরণ রেকর্ডিংকে উল্লেখ করে না এখানে, তবে একটির সাথে অন্য সংকেতের সাথে মিলে যাওয়া) রেকর্ড করা তরঙ্গকারীর সাথে মেলে এবং কিছু সময়ের উইন্ডোর মধ্যে তাদের পারস্পরিক শিফট সনাক্ত করতে
ম্যাক্স ওয়ালকাজাক

উত্তর:


7

মুলারের উত্তর প্রসারিত করতে,

  1. মাইক্রোফোনগুলি আলাদা করার জন্য আলাদা টিউবে রাখা উচিত?
  1. না, আপনি উত্সের দিকটি সনাক্ত করার চেষ্টা করছেন, টিউব যুক্ত করা কেবলমাত্র টিউবের অভ্যন্তরে শব্দটি বাউন্স করবে যা অবশ্যই স্পষ্ট নয়।

    ক্রিয়াকলাপের সর্বোত্তম উপায়টি হ'ল তাদের সরাসরি মুখোমুখি করা, এইভাবে তারা সকলেই অনুরূপ শব্দ গ্রহণ করবে এবং তাদের সম্পর্কে অনন্য একমাত্র জিনিসটি তাদের শারীরিক স্থাপনা যা সরাসরি পর্বে প্রভাবিত করবে। একটি 6 কেএজেডজ সাইন ওয়েভের তরঙ্গদৈর্ঘ্য রয়েছেশব্দের গতিশব্দ ফ্রিকোয়েন্সি=343 মাইক্রোসফট6 ২ kHz=5.71 মিমি। সুতরাং যদি আপনি 6 কিলাহার্টজ অবধি সাইন ওয়েভগুলির পর্যায়গুলি অনন্যভাবে সনাক্ত করতে চান যা মানুষের কথা বলার জন্য সাধারণ ফ্রিকোয়েন্সি হয় তবে আপনার মাইক্রোফোনগুলি প্রায় 5.71 মিমি দূরে রাখা উচিত। এখানে এমন একটি আইটেম রয়েছে যার ব্যাস 5..71১ মিমি থেকে কম। প্রায় 6-10 কেএইচজেডে কাট-অফ ফ্রিকোয়েন্সি সহ লো পাস ফিল্টার যুক্ত করতে ভুলবেন না।

সম্পাদন করা

আমি অনুভব করেছি যে এই # 2 প্রশ্নটি মজাদার দেখাচ্ছে তাই আমি নিজে থেকে এটি সমাধান করার চেষ্টা করার সিদ্ধান্ত নিয়েছি।

  1. একসাথে একসাথে 3 উত্সের মধ্যে ফেজ পারস্পরিক সম্পর্ক গণনা করা যেতে পারে? (অর্থাত গণনার গতি বাড়ানোর জন্য)

যদি আপনি নিজের লিনিয়ার বীজগণিত জানেন, তবে আপনি কল্পনা করতে পারেন যে আপনি মাইক্রোফোনগুলি একটি ত্রিভুজটিতে রেখেছেন যেখানে প্রতিটি মাইক্রোফোন একে অপরের থেকে 4 মিমি দূরে প্রতিটি অভ্যন্তরের কোণ তৈরি করে থাকে 60°

সুতরাং আসুন ধরে নেওয়া যাক তারা এই কনফিগারেশনে রয়েছে:

       C
      / \
     /   \
    /     \
   /       \
  /         \
 A - - - - - B

আমি করব...

  • নাম ব্যবহার করুন একজনবি¯ যা ভেক্টর থেকে নির্দেশ করছে একজন প্রতি বি
  • কল একজন আমার উত্স
  • মিমি সব নম্বর লিখুন
  • 3 ডি গণিত ব্যবহার করুন তবে 2D দিক দিয়ে শেষ করুন
  • মাইক্রোফোনের উল্লম্ব অবস্থানটি তাদের আসল তরঙ্গ আকারে সেট করুন। এই সমীকরণ একটি শব্দ উপর ভিত্তি করে তাই তরঙ্গ মতো সৌন্দর্য কিছু এই
  • এই মাইক্রোফোনের তাদের অবস্থান এবং তরঙ্গরূপের উপর ভিত্তি করে ক্রস পণ্য গণনা করুন, তারপরে এই ক্রস পণ্য থেকে উচ্চতার তথ্য উপেক্ষা করুন এবং উত্সের আসল দিকটি নিয়ে আসতে আর্টিকান ব্যবহার করুন।
  • কল একটি অবস্থান মাইক্রোফোনের আউটপুট একজন, কল অবস্থান মাইক্রোফোনের আউটপুট বি, কল অবস্থান মাইক্রোফোনের আউটপুট সি

সুতরাং নিম্নলিখিত বিষয়গুলি সত্য:

  • একজন=(0,0,একটি)
  • বি=(4,0,)
  • সি=(2,42-22=23,)

এটি আমাদের দেয়:

  • একজনবি¯=(4,0,একটি-)
  • একজনসি¯=(2,23,একটি-)

এবং ক্রস পণ্য সহজভাবে একজনবি¯×একজনসি¯

একজনবি¯×একজনসি¯=(40একটি-)×(223একটি-)=(0(একটি-)-(একটি-)23(একটি-)2-4(একটি-)423-02)=(23(-একটি)-2একটি-2-483)

জেড তথ্য, 83শুধু জাঙ্ক, আমাদের কাছে শূন্য। ইনপুট সিগন্যালগুলি পরিবর্তিত হওয়ার সাথে সাথে ক্রস ভেক্টর উত্সের দিকে পিছনে পিছনে দুলবে। সুতরাং অর্ধেক সময় এটি সরাসরি উত্সের দিকে নির্দেশ করবে (প্রতিচ্ছবি এবং অন্যান্য পরজীবী উপেক্ষা করে)। এবং সময়ের অর্ধেক সময়টি উত্স থেকে 180 ডিগ্রি দূরে অবস্থান করবে।

আমি যা বলছি তা হ'ল arctan(-2একটি-2-423(-একটি)) যা সহজ করা যেতে পারে arctan(একটি+ ++ +23(একটি-)), এবং তারপরে রেডিয়ানগুলিকে ডিগ্রীতে পরিণত করুন।

সুতরাং আপনি যা শেষ করেন তা হল নীচের সমীকরণ:

arctan(একটি+ ++ +23(একটি-))180π


তবে অর্ধেক সময় তথ্যটি আক্ষরিকভাবে 100% ভুল, সুতরাং কীভাবে .. একজনকে .... সময়টি 100% সঠিক করা উচিত?

তাহোলে একটি নেতৃত্ব দিচ্ছে , তবে উত্সটি বিয়ের কাছাকাছি হতে পারে না

অন্য কথায়, এই জাতীয় কিছু সহজ করুন:

source_direction=atan2(a+b+2c,\sqrt{3}*(a-b))*180/pi;
if(a>b){
   if(b>c){//a>b>c
     possible_center_direction=240; //A is closest, then B, last C
   }else if(a>c){//a>c>b
     possible_center_direction=180; //A is closest, then C last B
   }else{//c>a>b
     possible_center_direction=120; //C is closest, then A last B
   }
}else{
   if(c>b){//c>b>a
     possible_center_direction=60; //C is closest, then B, last A
   }else if(a>c){//b>a>c
     possible_center_direction=300; //B is closest, then A, last C
   }else{//b>c>a
     possible_center_direction=0; //B is closest, then C, last A
   }
}

//if the source is out of bounds, then rotate it by 180 degrees.
if((possible_center_direction+60)<source_direction){
  if(source_direction<(possible_center_direction-60)){
    source_direction=(source_direction+180)%360;
  }
}

এবং সম্ভবত আপনি কেবল প্রতিক্রিয়া জানাতে চাইছেন যদি শব্দ উত্সটি একটি নির্দিষ্ট উল্লম্ব কোণ থেকে আসে, যদি লোকেরা মাইক্রোফোনের উপরে => 0 পর্যায়ের পরিবর্তন => কিছু না করে। লোকেরা এর পাশে অনুভূমিকভাবে কথা বলবে => কিছু ধাপের পরিবর্তন => প্রতিক্রিয়া।

|পি|=পিএক্স2+ +পিY2=3(একটি-)2+ +(একটি+ ++ +2)2

সুতরাং আপনি যে প্রান্তিকতা 0.1 বা 0.01 এর মতো কম কিছুতে সেট করতে চাইতে পারেন। আমি পুরোপুরি নিশ্চিত নই, ভলিউম এবং ফ্রিকোয়েন্সি এবং প্যারাসিটিকের উপর নির্ভর করে, নিজে এটি পরীক্ষা করুন।

পরম মানের সমীকরণ কখন ব্যবহার করবেন তার আর একটি কারণ হ'ল শূন্য ক্রসিংয়ের জন্য, দিকটি কখন ভুল দিকে নির্দেশ করবে তার জন্য সামান্য মুহূর্ত থাকতে পারে। যদিও এটি শুধুমাত্র 1% সময়ের জন্য থাকবে, এমনকি যদি। সুতরাং আপনি দিকের সাথে একটি প্রথম অর্ডার এলপি ফিল্টার সংযুক্ত করতে চাইতে পারেন।

true_true_direction = true_true_direction*0.9+source_direction*0.1;

এবং যদি আপনি একটি নির্দিষ্ট ভলিউমের প্রতিক্রিয়া জানাতে চান তবে কেবল তিনটি মাইক্রোফোন একসাথে যোগ করুন এবং এটিকে কিছু ট্রিগার মানের সাথে তুলনা করুন। মাইক্রোফোনের গড় মানটি তাদের যোগফলকে 3 দিয়ে বিভক্ত করে তোলে, তবে আপনি যদি 3 টি গুণক দ্বারা ট্রিগার মান বৃদ্ধি করেন তবে আপনাকে 3 দ্বারা বিভাজন করতে হবে না।


কোডটি সি / সি # / সি ++ বা জেএস বা অন্য কোনও হিসাবে চিহ্নিত করার সাথে আমার সমস্যা রয়েছে, তাই দুঃখের বিষয় আমার কোডের বিপরীতে কোডটি সাদা রঙের হবে। ওহ ভাল, আপনার উদ্যোগের জন্য শুভকামনা। মজা শব্দসমূহ.

এছাড়াও একটি 50/50 সম্ভাবনা রয়েছে যে সময়টির 99% সময় থেকে দিকটি 180 দূরে থাকবে। আমি এই ধরনের ভুল করতে একটি মাস্টার। যদিও এর জন্য একটি সংশোধন হ'ল 180 ডিগ্রি যুক্ত করা উচিত তখনই যদি বিবৃতিগুলি উল্টে দেওয়া হয়।


আমি অবাক হই যে এই পর্যায়ে জিনিসটি সত্যিই প্রয়োজনীয় কিনা, বা প্রতিটি মাইক যদি কিছু শনাক্তযোগ্য বৈশিষ্ট্য সন্ধান করতে পারে। যদি সমস্ত মিক্স "আরে রোবট" শুনতে পান তবে তারা কি সেই "বাহ" শব্দটি শুরু করতে এবং পর্যায়টি উপেক্ষা করতে পারবেন না? তারপরে আপনার মিক্সটিকে এত কাছাকাছি রাখার দরকার নেই ...
অতিথি

1
@ হ্যারিসভেনসন, আমি কী বলতে চাইছি তা দেখছি। আমি ভাবছিলাম আপনি বাদে আপনার পদ্ধতির মতো কিছু ব্যবহার করতে পারেনএকটি, এবং প্রথম মাইকের শব্দটি শোনার পর থেকে এটি বেশিরভাগ মিলিসেকেন্ড হবে। আমি এখানে এটির সাথে চারপাশে খেলেছি , তবে উত্স, একটি মাইক এবং রোবোটের কেন্দ্র সমস্ত এক লাইনে না থাকলে এটি পুরোপুরি আস্তরণে আসে না। আমি মনে করি এটি "ঠিক আছে" তবে এটি পরীক্ষা করে দেখুন। উত্স মিক্স থেকে দূরে থাকলে ত্রুটি ততটা খারাপ নয়। আমি নিশ্চিত যে এটি সংশোধন করা যেতে পারে, তবে গণিতটি আমাকে ছেড়ে যায়।
অতিথি

1
নিশ্চিত না যে আমি কখনই এসইডিডিএসপিতে কোড হাইলাইট করে দেখেছি। আমি শিক্ষকের লাউঞ্জটি পরীক্ষা করে দেখি এবং তারা কী বলে। : কেউ দেখে মনে হচ্ছে মেটা জানতে চাইলে কিছু সময় আগে, কিন্তু কোনো পদক্ষেপ না নেওয়া হয় dsp.meta.stackexchange.com/questions/133/...
পিটার কে

1
দয়া করে মেটা.ডিএসপিতে সেই পোস্টটি উপস্থাপন করুন। আমি <kbd> বৈশিষ্ট্য-অনুরোধ </ কেবিডি> ট্যাগটি যুক্ত করেছি যাতে কমপক্ষে কিছুটা ব্যস্ততা দেখা উচিত, তবে আমাদের ভোটের প্রয়োজন। যদি কেমিস্ট্রি.এসই সাইট এটি সক্ষম করে থাকে, আমাদের অবশ্যই উচিত! :-) dsp.meta.stackexchange.com/questions/133/…
পিটার কে

1
@endolith আপনি সঠিক, আমি এখন সেই অংশটি সরিয়েছি। ধন্যবাদ.
হ্যারি সোভেনসন

4
  1. হ্যাঁ, এটি যুক্তিসঙ্গত এবং সাধারণ বোধ করে।
  2. আপনি একইসাথে তিনটি মাইক্রোফোন সংকেত ব্যবহার করতে পারেন (আপনার তিনটি জুটির পারস্পরিক সম্পর্কের মধ্য দিয়ে "প্রদক্ষিণ" না করে)। দিকনির্দেশের অ্যাপ্লিকেশনগুলিতে "মিউজিক" এবং "ইএসপিআরআইটি" সন্ধান করুন।
  3. খুব সম্ভবত এটি। আপনি উচ্চ অডিও মানের জন্য লক্ষ্য রাখছেন না, আপনি ভাল কর্স-পারস্পরিক সম্পর্কের বৈশিষ্ট্য এবং এখানে কয়েকটি বিট খুঁজছেন এবং সম্ভবত সিস্টেমটি তৈরি বা ভঙ্গ করবে না। অন্যদিকে খুব সাধারণ ৪৪.১ কাহাহার্টজ বা ৪৮ কেজি হার্জের মতো উচ্চতর নমুনার হার, তত্ক্ষণাত একই পর্যবেক্ষণ দৈর্ঘ্যে কৌণিক নির্ভুলতা তত্ক্ষণাত দ্বিগুণ করে দেবে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.