কেউ আমাকে চিত্কার করার আগে আমি পুরোপুরি বুঝতে পারি যে এই প্রশ্নটি বহুবার জিজ্ঞাসা করা হয়েছে। আমি আপনাকে আশ্বস্ত করি যে আমি বিদ্যমান প্রশ্নোত্তরগুলি পড়েছি তবে সমস্যার একটি অংশ সম্পর্কে আমি এখনও বিভ্রান্ত।
আমার কাছে একটি শব্দ উত্স আছে যা বন্ধ পরিবেশে সংগীত (এ) বাজায়। আমার কাছে একটি মাইক রয়েছে যা আমি এ রেকর্ড করতে ব্যবহার করছি আমার কাছে দুটি ওয়াভ ফাইল রয়েছে যা একই বৈশিষ্ট্য এবং দৈর্ঘ্য (নমুনার সংখ্যা) ভাগ করে নিয়েছে।
আমার লক্ষ্যটি হ'ল এটিকে মাইকে পৌঁছাতে যে সময় লেগেছে তা গণনা করা।
আমি ক্রস-পারস্পরিক সম্পর্ক (নমপি) ব্যবহার করে গণনা সম্পাদনের চেষ্টা করছি:
# Delay estimation
corr = numpy.convolve(original_audio, recorded_audio, 'full')
delay = int(len(corr)/2) - numpy.argmax(corr)
distance = delay / sample_rate * 343 # sample_rate == 22050, m/s = speed of sound
print("Distance full: %.2f cm" % (distance * 100))
আমি ধারাবাহিকভাবে 300,000 সেমি পরিসীমা মান পেতে। স্পিকার এবং মাইকের মধ্যে দূরত্ব প্রায় 2 ফুট।
এটি আমার কাছে সব থেকে নতুন নতুন তাই আমি নিশ্চিত যে আমি স্পষ্ট কিছু মিস করছি।
আগাম ধন্যবাদ.
numpy.correlate
তার পরিবর্তে ব্যবহার করা উচিত না তা নিশ্চিতnumpy.convolve
? বিলম্ব অনুমান করার জন্য, আপনি নিজের সংকেতগুলি সংযুক্ত না করে আন্তঃসম্পর্কিত করতে চান। কনভলভ করে আপনি সম্ভবত আরও বড় বিলম্বের সাথে শেষ করবেন।