উচ্চ-মানের স্থানিক অডিও এবং হেড ট্র্যাকিং বাস্তবায়ন

অ্যান্ড্রয়েড ১৩-এ স্পেশিয়াল অডিওর জন্য সমর্থন যুক্ত করা হয়েছে। এর জন্য এমন এপিআই (API) দেওয়া হয়েছে, যা অ্যাপ ডেভেলপারদেরকে জানতে সাহায্য করে যে, ফোনের ইমপ্লিমেন্টেশন, সংযুক্ত হেডসেট এবং ইউজার সেটিংসের বর্তমান সমন্বয় ইমারসিভ (immersive) পদ্ধতিতে মাল্টিচ্যানেল অডিও কনটেন্ট প্লেব্যাকের জন্য উপযুক্ত কি না।

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

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

ডাইনামিক এবং স্ট্যাটিক স্পেশিয়াল অডিও মোড বাস্তবায়নের নির্দেশিকা

স্ট্যাটিক স্পেশিয়াল অডিওর জন্য হেড ট্র্যাকিংয়ের প্রয়োজন হয় না, তাই হেডসেটে কোনো নির্দিষ্ট কার্যকারিতার দরকার পড়ে না। সব ধরনের তারযুক্ত ও তারবিহীন হেডসেট স্ট্যাটিক স্পেশিয়াল অডিও সমর্থন করতে পারে।

এপিআই বাস্তবায়ন

OEM-দের অবশ্যই Android 12-এ প্রবর্তিত Spatializer ক্লাসটি ইমপ্লিমেন্ট করতে হবে। এই ইমপ্লিমেন্টেশনকে অবশ্যই Spatializer ক্লাসের জন্য প্রবর্তিত CTS টেস্টগুলো পাস করতে হবে।

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

ব্যবহারকারী ইন্টারফেস

Spatializer ক্লাসটি ইমপ্লিমেন্ট করার পর, যাচাই করুন যে আপনার UI-এর নিম্নলিখিত আচরণ রয়েছে:

  • যখন স্পেশিয়াল অডিও সক্ষম হেডসেটটি পেয়ার করা হয়, তখন এই হেডসেটের ব্লুটুথ ডিভাইস সেটিংসে একটি স্পেশিয়াল অডিও টগল প্রদর্শিত হয়:

    spatial-audio-ui

    চিত্র ১. স্থানিক অডিও সেটিং।

  • হেডসেট সংযোগ বিচ্ছিন্ন থাকলেও সেটিংসগুলো পাওয়া যায়।

  • হেডসেটটি প্রাথমিকভাবে পেয়ার করার পর স্পেশিয়াল অডিও-র ডিফল্ট অবস্থা ' এনাবলড' থাকে।

  • ব্যবহারকারীর নির্বাচিত অবস্থা, তা চালু বা বন্ধ যাই হোক না কেন, ফোন রিবুট করা বা হেডসেট আনপেয়ার ও পেয়ার করার পরেও অপরিবর্তিত থাকে।

কার্যকরী আচরণ

অডিও ফরম্যাট

যখন স্পেশিয়াল অডিও সক্রিয় থাকে এবং রেন্ডারিং ডিভাইসটি একটি তারযুক্ত বা ব্লুটুথ হেডসেট হয়, তখন স্পেশিয়ালাইজার ইফেক্ট দ্বারা নিম্নলিখিত অডিও ফরম্যাটগুলি অবশ্যই রেন্ডার করতে হবে:

  • এএসি, ৫.১ চ্যানেল
  • র PCM, 5.1 চ্যানেল

উন্নততর ব্যবহারকারী অভিজ্ঞতার জন্য, আমরা নিম্নলিখিত ফরম্যাট/চ্যানেল কনফিগারেশনগুলো সমর্থন করার জন্য দৃঢ়ভাবে সুপারিশ করছি:

  • ডলবি ডিজিটাল প্লাস
  • ৫.১.২, ৭.১, ৭.১.২, ৭.১.৪ চ্যানেল

স্টেরিও কন্টেন্ট প্লেব্যাক

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

ইউজ কেস ট্রানজিশন এবং কনকারেন্সি

বিশেষ ব্যবহারের ক্ষেত্রগুলি নিম্নরূপভাবে পরিচালনা করুন:

  • নোটিফিকেশনগুলোকে অবশ্যই স্পেশিয়াল অডিও কন্টেন্টের সাথে ঠিক সেভাবেই মিশ্রিত করতে হবে, যেভাবে সেগুলোকে নন-স্পেশিয়াল অডিও কন্টেন্টের সাথে করা হয়।
  • স্পেশিয়াল অডিও কন্টেন্টের সাথে রিংটোন মিশ্রিত করার অনুমতি থাকতে হবে। তবে, ডিফল্টরূপে, রিংটোন বাজলে অডিও ফোকাস মেকানিজম স্পেশিয়াল অডিও কন্টেন্টটি থামিয়ে দেয়।
  • ফোন কল বা ভিডিও কনফারেন্সের উত্তর দেওয়ার বা করার সময়, স্পেশিয়াল অডিও প্লেব্যাক অবশ্যই থামবে। কল শেষ হলে, স্পেশিয়াল অডিও প্লেব্যাক অবশ্যই একই স্পেশিয়াল অডিও সেটিংসে পুনরায় শুরু হবে। স্পেশিয়াল অডিও মোড থেকে কনভারসেশনাল মোডে পরিবর্তন করার জন্য অডিও পাথের পুনর্গঠন অবশ্যই যথেষ্ট দ্রুত এবং নির্বিঘ্নে সম্পন্ন হতে হবে, যাতে এটি কলের অভিজ্ঞতাকে প্রভাবিত না করে।

স্পিকারের মাধ্যমে রেন্ডারিং

স্পিকারের মাধ্যমে অডিও স্পেশালাইজেশন বা ট্রান্সঅরাল মোডের সমর্থনের প্রয়োজন নেই।

হেড ট্র্যাকিং বাস্তবায়নের নির্দেশিকা

এই বিভাগে ডাইনামিক স্পেশিয়াল অডিও নিয়ে আলোচনা করা হয়েছে, যার জন্য নির্দিষ্ট হেডসেটের প্রয়োজন হয়।

ব্যবহারকারী ইন্টারফেস

স্পেশিয়াল অডিও সক্ষম হেডসেটটি ইনস্টল ও পেয়ার করার পর, যাচাই করুন যে আপনার UI-তে নিম্নলিখিত আচরণটি দেখা যাচ্ছে:

  • ব্লুটুথ ডিভাইস সেটিংসে, হেডসেটের জন্য স্পেশিয়াল অডিও সেটিংটি চালু করা হলে, স্পেশিয়াল অডিও-এর অধীনে একটি হেড ট্র্যাকিং সেটিং দেখা যায়:

    ht-ui

    চিত্র ২. স্থানিক অডিও ও হেড-ট্র্যাকিং সেটিং।

  • স্পেশিয়াল অডিও নিষ্ক্রিয় থাকলে হেড-ট্র্যাকিং সেটিংটি দেখা যায় না।

  • হেডসেটটি প্রাথমিকভাবে পেয়ার করার পর হেড ট্র্যাকিংয়ের ডিফল্ট অবস্থা ' এনাবলড' থাকে।

  • ব্যবহারকারীর নির্বাচিত অবস্থা, তা চালু বা বন্ধ যাই হোক না কেন, ফোন রিবুট করা বা হেডসেট আনপেয়ার ও পেয়ার করার পরেও তা অপরিবর্তিত থাকতে হবে।

কার্যকরী আচরণ

মাথার ভঙ্গি প্রতিবেদন

  • হেডসেট থেকে অ্যান্ড্রয়েড ডিভাইসে পাঠানো এক্স, ওয়াই এবং জেড স্থানাঙ্কে থাকা মাথার ভঙ্গির তথ্যে অবশ্যই ব্যবহারকারীর মাথার নড়াচড়া দ্রুত এবং নির্ভুলভাবে প্রতিফলিত হতে হবে।
  • ব্লুটুথ লিঙ্কের মাধ্যমে মাথার ভঙ্গি জানানোর ক্ষেত্রে অবশ্যই HID- তে সংজ্ঞায়িত প্রোটোকল অনুসরণ করতে হবে।
  • হেডসেটটি শুধুমাত্র তখনই অ্যান্ড্রয়েড ফোনে হেড-ট্র্যাকিং তথ্য পাঠাবে, যখন ব্যবহারকারী ব্লুটুথ ডিভাইস সেটিং UI-তে হেড ট্র্যাকিং চালু করবেন।

কর্মক্ষমতা

লেটেন্সি

ইনার্শিয়াল মেজারমেন্ট ইউনিট (IMU) দ্বারা মাথার নড়াচড়া শনাক্ত হওয়ার পর থেকে সেই নড়াচড়ার কারণে সৃষ্ট শব্দের পরিবর্তন হেডফোন ট্রান্সডিউসার দ্বারা শনাক্ত হওয়া পর্যন্ত যে সময় লাগে, তাকেই হেড-ট্র্যাকিং ল্যাটেন্সি হিসেবে সংজ্ঞায়িত করা হয়। হেড-ট্র্যাকিং ল্যাটেন্সি অবশ্যই ১৫০ মিলিসেকেন্ডের বেশি হবে না।

মাথা নাড়ানোর ভঙ্গি রিপোর্টিং হার

যখন হেড ট্র্যাকিং সক্রিয় থাকে, তখন হেডসেটটিকে অবশ্যই আনুমানিক ২০ মিলিসেকেন্ডের একটি প্রস্তাবিত বিরতিতে মাথার অবস্থান জানাতে হবে। ব্লুটুথের ট্রান্সমিশন জিটারের সময় ফোনে স্টেল ইনপুট ডিটেকশন লজিক চালু হওয়া এড়াতে, দুটি আপডেটের মধ্যে সর্বোচ্চ সময় অবশ্যই ৪০ মিলিসেকেন্ডের বেশি হবে না।

শক্তি অপ্টিমাইজেশন

শক্তি সাশ্রয়ের জন্য, আমরা সুপারিশ করি যে বাস্তবায়নে অডিও HAL এবং ব্লুটুথ অডিও HAL ইন্টারফেস দ্বারা প্রদত্ত ব্লুটুথ কোডেক স্যুইচিং এবং ল্যাটেন্সি মোড নির্বাচন পদ্ধতি ব্যবহার করা হোক।

অডিও ফ্রেমওয়ার্ক এবং ব্লুটুথ স্ট্যাকের AOSP ইমপ্লিমেন্টেশনগুলো কোডেক স্যুইচিং নিয়ন্ত্রণের জন্য প্রয়োজনীয় সিগন্যালগুলো ইতিমধ্যেই সাপোর্ট করে। যদি OEM-এর ইমপ্লিমেন্টেশন ব্লুটুথ অডিওর জন্য প্রাইমারি অডিও HAL ব্যবহার করে, যা কোডেক অফলোড মোড নামে পরিচিত, তবে OEM-কে অবশ্যই নিশ্চিত করতে হবে যে অডিও HAL, অডিও HAL এবং ব্লুটুথ স্ট্যাকের মধ্যে সেই সিগন্যালগুলো রিলে করে।

কোডেক পরিবর্তন

যখন ডাইনামিক স্পেশিয়াল অডিও এবং হেড ট্র্যাকিং চালু থাকে, তখন ওপাস (Opus)-এর মতো একটি লো-ল্যাটেন্সি কোডেক ব্যবহার করুন। নন-স্পেশিয়াল অডিও কন্টেন্ট চালানোর সময়, অ্যাডভান্সড অডিও কোডিং (AAC)- এর মতো একটি লো-পাওয়ার কোডেক ব্যবহার করুন।

কোডেক পরিবর্তনের সময় এই নিয়মগুলো অনুসরণ করুন:

  • শুধুমাত্র নিম্নলিখিত অডিও HAL আউটপুট স্ট্রিমগুলির কার্যকলাপ ট্র্যাক করুন:
    • ডেডিকেটেড স্পেশালাইজার আউটপুট
    • মিডিয়া-নির্দিষ্ট স্ট্রিম, যেমন ডিপ বাফার বা কম্প্রেসড অফলোড প্লেব্যাক
  • যখন সমস্ত প্রাসঙ্গিক স্ট্রিম নিষ্ক্রিয় থাকে এবং স্পেশিয়ালাইজার স্ট্রিমটি চালু হয়, তখন একটি লো-ল্যাটেন্সি কোডেক নির্দিষ্ট করার জন্য isLowLatency true সেট করে ব্লুটুথ স্ট্রিমটি শুরু করুন।

  • যখন সমস্ত প্রাসঙ্গিক স্ট্রিম নিষ্ক্রিয় থাকে এবং একটি মিডিয়া স্ট্রিম চালু হয়, তখন একটি লো-পাওয়ার কোডেক নির্দিষ্ট করার জন্য isLowLatency কে false সেট করে ব্লুটুথ স্ট্রিমটি শুরু করুন।

  • যদি কোনো মিডিয়া স্ট্রিম সক্রিয় থাকে এবং স্পেশিয়ালাইজার স্ট্রিম চালু হয়, তাহলে isLowLatency কে true সেট করে ব্লুটুথ স্ট্রিমটি পুনরায় চালু করুন।

হেডসেটের ক্ষেত্রে, এটিকে অবশ্যই লো-ল্যাটেন্সি ও লো-পাওয়ার উভয় ডিকোডার সমর্থন করতে হবে এবং স্ট্যান্ডার্ড কোডেক সিলেকশন প্রোটোকল বাস্তবায়ন করতে হবে।

লেটেন্সি মোড সমন্বয়

লো-ল্যাটেন্সি কোডেক নির্বাচন করা হলে ল্যাটেন্সি মোড সমন্বয় ঘটে।

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

LE অডিওর ল্যাটেন্সি মোড সমন্বয়ের জন্য 'হেড ট্র্যাকিং ওভার LE অডিও' দেখুন।