প্রিপ্রসেসিং এফেক্ট কনফিগার করা

Android 10 রিলিজের মধ্যে VOICE_COMMUNICATION-এর মাধ্যমে ক্যাপচার করার জন্য নিম্নলিখিত প্রয়োজনীয় বিষয়গুলি অন্তর্ভুক্ত রয়েছে।

  • VOICE_COMMUNICATION-এর মাধ্যমে ক্যাপচার করার সময়, ইমপ্লিমেন্টেশনকে ক্যাপচার পাথে অ্যাকোস্টিক ইকো ক্যানসেলার (AEC) প্রদান করতে হবে।
  • AEC প্রদান করলে, SDK API-এর মাধ্যমে এটি খুঁজে পাওয়া ও নিয়ন্ত্রণ করা যেতে হবে AcousticEchoCanceler।

Android প্ল্যাটফর্ম, কাজ করে এমন ডিভাইসে অডিও এফেক্ট প্রদান করে, যা audiofx প্যাকেজে উপলভ্য এবং ডেভেলপাররা এটি অ্যাক্সেস করতে পারবেন। যেমন, Nexus 10-এ নিম্নলিখিত প্রসেসিং এফেক্ট কাজ করে:

AudioSource ইনস্ট্যান্সের সাথে পেয়ার করুন

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

  • android.media.MediaRecorder.AudioSource.CAMCORDER
  • android.media.MediaRecorder.AudioSource.VOICE_COMMUNICATION
  • android.media.MediaRecorder.AudioSource.VOICE_CALL
  • android.media.MediaRecorder.AudioSource.VOICE_DOWNLINK
  • android.media.MediaRecorder.AudioSource.VOICE_UPLINK
  • android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION
  • android.media.MediaRecorder.AudioSource.MIC
  • android.media.MediaRecorder.AudioSource.DEFAULT

AudioSource প্রতিটি ইনস্ট্যান্সের জন্য প্রয়োগ করা ডিফল্ট প্রিপ্ৰসেসিং এফেক্ট /vendor/etc/audio_effects.xml ফাইলে উল্লেখ করা আছে। প্রতিটি AudioSource ইনস্ট্যান্সের জন্য আপনার নিজস্ব ডিফল্ট এফেক্ট নির্দিষ্ট করতে, একটি /vendor/etc/audio_effects.xml ফাইল তৈরি করুন এবং চালু করার জন্য প্রিপ্রসেসিং এফেক্ট নির্দিষ্ট করুন। যেমন, device/samsung/manta/audio_effects.xml-এ Nexus 10-এর জন্য প্রয়োগ দেখুন। AudioEffect তৈরি ও ধ্বংস করার সময় ইনস্ট্যান্স সেশন গ্রহণ ও রিলিজ করে, সেশন জুড়ে এফেক্ট (যেমন, লাউডনেস এনহ্যান্সার) বজায় রাখতে সাহায্য করে।

নিচের উদাহরণে VoIP AudioSource এবং ক্যামকর্ডার AudioSource ইনস্ট্যান্সের জন্য প্রিপ্রসেসিং চালু করা হয়েছে। এইভাবে AudioSource কনফিগারেশন ঘোষণা করার মাধ্যমে, ফ্রেমওয়ার্ক HAL থেকে সেইসব এফেক্ট ব্যবহার করার জন্য অটোমেটিক অনুরোধ করে।

<preprocess>
        <stream type="voice_communication">
            <apply effect="aec"/>
            <apply effect="ns"/>
        </stream>
        <stream type="camcorder">
            <apply effect="agc"/>
        </stream>
    </preprocess>

সোর্স টিউনিং

AudioSource টিউনিংয়ে অডিও গেন বা ভয়েস রিকগনিশন ব্যতীত অডিও প্রসেসিং সংক্রান্ত কোনও নির্দিষ্ট প্রয়োজনীয়তা নেই (VOICE_RECOGNITION)। ভয়েস রিকগনিশনের প্রয়োজনীয়তার মধ্যে এগুলি অন্তর্ভুক্ত:

  • ১০০ Hz থেকে ৪ kHz পর্যন্ত ফ্ল্যাট ফ্রিকোয়েন্সি রেসপন্স (+/- ৩ dB)
  • ক্লোজ-টক কনফিগারেশন: ৯০ dB SPL ২৫০০-এর RMS রিড করে (১৬ বিট স্যাম্পেল)
  • 90 dB SPL-এর সাপেক্ষে -18 dB থেকে +12 dB পর্যন্ত ট্র্যাকের লেভেল লিনিয়ারলি সেট করুন
  • THD < ১% (১০০ থেকে ৪০০০ Hz রেঞ্জে ৯০ dB SPL)
  • প্রায়-আলট্রাসাউন্ড সংক্রান্ত প্রয়োজনীয়তা (পরীক্ষার জন্য, দেখুন প্রায়-আলট্রাসাউন্ড পরীক্ষা):
    • CDD-এর ৭.৮.৩ ধারায় বর্ণিত SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND-এর জন্য সহায়তা।
    • ব্যান্ড-পাস বা অ্যান্টি-এলাইজিং ফিল্টার ছাড়া ৪৪১০০ বা ৪৮০০০ স্যাম্পেলিং রেটের মধ্যে একটি বা দু'টিই কাজ করে।
  • ডিফল্ট হিসেবে এফেক্ট/প্রিপ্রসেসিং বন্ধ থাকে

বিভিন্ন সোর্সের জন্য আলাদা আলাদা এফেক্ট টিউনিং করার উদাহরণ:

  • নয়েজ সাপ্রেসর
    • CAMCORDER-এর জন্য উইন্ড নয়েজ সাপ্রেসর টিউন করা হয়েছে
    • VOICE_COMMUNICATION-এর জন্য স্টেশনারি নয়েজ সাপ্রেসর
  • অটোমেটিক গেন কন্ট্রোল
    • VOICE_COMMUNICATION ও মূল ফোনের মাইকের জন্য ক্লোজ-টক টিউন করা হয়েছে
    • CAMCORDER-এর জন্য ফার-টক টিউন করা হয়েছে

রিসোর্স

আরও তথ্যের জন্য, নিম্নলিখিত রিসোর্স দেখুন: