কোন অডিও সিস্টেম থেকে প্রতিধ্বনি সনাক্ত করতে এবং মুছে ফেলার জন্য কোন পদ্ধতি ব্যবহার করা যেতে পারে?


14

পটভূমি

আমি এমন একটি সিস্টেম ডিজাইন করছি যা ফোনের টাইপ সেটিংয়ে ব্যবহারের জন্য একটি একক ছোট মাইক্রোফোন এবং স্পিকার থাকবে। আমি দিতে সবচেয়ে সহজ উদাহরণ হ'ল স্কাইপ কথোপকথন যেখানে আপনি নিজের কম্পিউটার স্পিকার এবং একটি ডেস্কটপ মাইক্রোফোন ব্যবহার করছেন।

আমি স্পিকারের অডিওটি সম্পর্কে মাইক্রোফোনটি তুলে এবং মূল ব্যক্তির কাছে ফিরে পাঠানো সম্পর্কে উদ্বিগ্ন। ভিওআইপি কথোপকথনের প্রথম দিনগুলিতে আমি এই ঘটনাটি সর্বদা শুনতে পেতাম, তবে আর কখনও শুনতে পেলাম না।

আমার ধারণা এই যে গ্রুপগুলি প্রতিধ্বনি বাতিল করার উপায় নিয়ে এসেছে তবে তারা কীভাবে তা করবে?

পন্থা

আমার প্রথম চিন্তাটি কেবল মাইক্রোফোন সংকেত থেকে স্পিকারগুলিতে প্রেরণ করা সংকেতটি কেবল বিয়োগ করা ছিল, এই পদ্ধতিটি বাদ দিয়ে আপনি বিলম্বের সাথে উদ্বিগ্ন হতে হবে। আমি নিশ্চিত হতে পারি না যে কীভাবে বিলম্বটি নির্ধারণ করতে হবে কোনও প্রকার পূর্ব-ক্রমাঙ্কন যা আমি এড়াতে চাই। সিগন্যালটি বিয়োগ করার আগে কতটা স্কেল করতে হবে তাও রয়েছে।

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

আমার পরবর্তী ধারণা ছিল যে ইন্টারনেটে অবশ্যই এমন কেউ না কেউ আছেন যা সফলতার সাথে আগে এই কাজটি করেছেন তবে এর থেকে দুর্দান্ত কোনও উদাহরণ খুঁজে পেলেন না। সুতরাং আমি এখানে এসেছি কী ধরণের সমস্যাটি সমাধান করতে ব্যবহার করা যেতে পারে তা দেখতে।


1
অ্যাকোস্টিক ইকো বাতিলকরণ একটি বৃহত বিষয় ক্ষেত্র যা বহু বই এবং এই বিষয় নিয়ে কয়েক দশক গবেষণাপত্র রয়েছে। এই
বিষয়টিতে

1
@ হটপাউ 2 জাভা লিঙ্কে আপনার অ্যাকোস্টিক প্রতিধ্বনি বাতিল হওয়ার কারণে কেন ক্লিকযোগ্য নয় তা নিশ্চিত নয়।
মার্ক বুথ

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

উত্তর:


15

আপনি সঠিক. প্রতিধ্বনি বাতিলের অনেকগুলি পদ্ধতি বিদ্যমান তবে এগুলির কোনওটিই একেবারে তুচ্ছ নয়। সর্বাধিক জেনেরিক এবং জনপ্রিয় পদ্ধতিটি একটি অভিযোজক ফিল্টারের মাধ্যমে প্রতিধ্বনিরোধ বাতিল is একটি বাক্যে, অভিযোজক ফিল্টারটির কাজটি ইনপুট থেকে আগত তথ্যের পরিমাণকে হ্রাস করে এটি যে সিগন্যালটি ফিরে চলছে তা পরিবর্তন করা।

অভিযোজক ফিল্টার

একটি অভিযোজিত (ডিজিটাল) ফিল্টার একটি ফিল্টার যা এর সহগ পরিবর্তন করে এবং শেষ পর্যন্ত কিছু অনুকূল কনফিগারেশনে রূপান্তর করে। ফিল্টারটির আউটপুটকে কিছু পছন্দসই আউটপুটের সাথে তুলনা করে এই অভিযোজনের জন্য প্রক্রিয়াটি কাজ করে। নীচে জেনেরিক অভিযোজক ফিল্টারটির একটি চিত্র রয়েছে:

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

আপনি ডায়াগ্রাম থেকে দেখতে পারেন, সিগন্যাল দ্বারা ফিল্টার করা হয় (সঙ্গে convolved) W এন উত্পাদন আউটপুট সংকেত [ এন ] । আমরা তখন বিয়োগ [ এন ] থেকে কাঙ্খিত সংকেত [ এন ] উত্পাদন করতে ত্রুটি সংকেত [ এন ] । দ্রষ্টব্য যে w n )। যেহেতু এটি প্রতিটি পুনরাবৃত্তি (প্রতিটি নমুনা) পরিবর্তন করে, আমরা এই সহগের সাথে বর্তমান সহ সংগ্রহটি সাবস্ক্রিপ্ট করিx[n]wnd^[n]d^[n]d[n]e[n]wn একটি গুণফলের ভেক্টর, একটি সংখ্যা নয় (তাই আমরা ডব্লু [ এন ] লিখি নাw[n] । একদাn প্রাপ্তআমরা এটিপছন্দ an এর আপডেট অ্যালগরিদম দ্বারাw n আপডেট করার জন্য ব্যবহার করি(এরপরে আরও)। ইনপুট এবং আউটপুট একটি রৈখিক সম্পর্ক যে সময়ের সাথে পরিবর্তন হবে না এবং একটি সুন্দরভাবে-ডিজাইন আপডেট অ্যালগরিদম দেওয়া সন্তুষ্ট পারেন,W এন অবশেষে অনুকূল ফিল্টার করুন এবং একই বিন্দুতে মিলিত হবে [ এন ] নিম্নলিখিত ঘনিষ্ঠভাবে হতে হবে[ এন ]e[n]wnwnd^[n]d[n]

প্রতিধ্বনি বাতিল

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

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

এই চিত্রটিতে আপনার "হ্যালো" সিগন্যালটি । একটি লাউড্স্পীকার থেকে বের খেলা হচ্ছে, দেয়াল বন্ধ প্রাণচঞ্চল এবং এটি একটি প্রতিধ্বনিত সংকেত হয়ে ডিভাইসের মাইক্রোফোন দ্বারা কুড়ান পাওয়ার পর [ এন ]x[n]d[n]wnx[n]y[n]d[n]e[n]=d[n]y[n]

wn

xn=(x[n],x[n1],,x[nN+1])T

Nwnx

wn=(w[0],w[1],,x[N1])T

তারপরে আমরা গণনা করিy[n]=xn=wn :

y[n]=xnTwn=xnwn

w

wn+1=wn+μxne[n]xnTxn=wn+μxnxnTwnd[n]xnTxn

μ0μ2

বাস্তব জীবনের অ্যাপ্লিকেশন এবং চ্যালেঞ্জ

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

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

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

অভিযোজিত ফিল্টার এবং প্রতিধ্বনিরোধক উভয় ক্ষেত্রে প্রচুর সাহিত্য রয়েছে, পাশাপাশি আপনি যে কয়েকটি ওপেন সোর্স লাইব্রেরিতে ট্যাপ করতে পারেন সেগুলি রয়েছে।


2
"অভিযোজক ফিল্টার এর কাজ সিগন্যাল হয়"? আপনি দুর্ঘটনাক্রমে একটি শব্দ।
এন্ডোলিথ

ধন্যবাদ আমি এটি ঠিক করার কোনও দুর্দান্ত উপায় সম্পর্কে ভাবতে পারি না, তাই আমি পরিবর্তনটি ব্যবহার করেছি । আপনি আরও আকর্ষণীয় কিছু সঙ্গে এটি সম্পাদনা স্বাগত জানাই। =)
ফোনন

3

আমি নিশ্চিত না যে কীভাবে বিলম্বটি নির্ধারণ করতে হবে কোনও প্রকার পূর্বে ক্রমাঙ্কনের সাথে

আমি যেমন হিসাবে একটি শাব্দ আঙ্গুলের ছাপ অ্যালগরিদম পরিবর্তন করে শুরু করবেন Shazam জন্য ব্যবহৃত এক

আপনার প্রয়োজনীয়তাগুলি বিভিন্নভাবে শাজমের অনুরূপ (বৈশিষ্ট্যগুলি টেলিফোনের জন্য নকশাকৃত একটি সংক্ষেপণ অ্যালগরিদম থেকে বেঁচে থাকতে পারে, সেগুলি নিম্ন মানের মাইক্রোফোনের মধ্য দিয়েও যায়) যাতে আপনি সম্ভবত একই বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন (সময় / ফ্রিকোয়েন্সি স্পেসে স্থানীয় ম্যাক্সিমার পাওয়ার) যদিও আপনি ফ্রিকোয়েন্সি রেজোলিউশন ব্যয় করে সময় রেজোলিউশন বাড়িয়ে দিতে চান।

সিগন্যালটি বিয়োগ করার আগে কতটা স্কেল করতে হবে তাও রয়েছে।

ইউনিফর্ম স্কেলিং প্রায় অবশ্যই যথেষ্ট সঠিক হবে না। আপনাকে কোনও এফআইআর ফিল্টার দিয়ে ফ্রিকোয়েন্সি প্রতিক্রিয়া অনুমান করার মতো কিছু করা উচিত তারপর প্রাপ্ত সংকেত থেকে বিয়োগের আগে উল্টানো ফিল্টারের মাধ্যমে আপনার (বিলম্বিত) মাইক সিগন্যালটি পাস করার মতো।


শাজাম ফিঙ্গারপ্রিন্টিং সঠিক বিলম্বের অনুমান করতে পারে না। এটি অডিও নমুনাগুলির তুলনা করার জন্য অনেকগুলি জটিল বৈশিষ্ট্য নিষ্কাশন প্রক্রিয়া ব্যবহার করে, এর সবগুলিই সময় ভিত্তিক নয়।
ফোনন

ফনন, শাজম হয়ত এখন অতিরিক্ত অ্যালগরিদম ব্যবহার করছেন তবে লিঙ্কযুক্ত কাগজের একটিটি সময়ভিত্তিক এবং বিলম্বের একটি ভাল অনুমান দেয়।
ফিনউউ

হতে পারে প্রেরিত এবং প্রাপ্ত স্পেকট্রামগ্রামের ক্রস-পারস্পরিক সম্পর্কের মতো কিছু আপনাকে বিলম্ব জানাবে। ফিল্টারিং এবং
জোড়
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.