খুব ভাল কোয়ালিটির স্পেশিয়াল অডিও ও হেড ট্র্যাকিংয়ের প্রয়োগ

Android 13-এ স্পেশিয়াল অডিওর জন্য সহায়তা প্রদান করা হয়েছে। এর জন্য API প্রদান করা হয়েছে যা অ্যাপ ডেভেলপারদের এটি খুঁজে পেতে সাহায্য করে যে ফোন ইমপ্লিমেন্টেশন, কানেক্ট করা হেডসেট ও ব্যবহারকারীর সেটিংসের বর্তমান কম্বিনেশন ইমারসিভ উপায়ে মাল্টিচ্যানেল অডিও কন্টেন্ট প্লেব্যাক করার অনুমতি দেয় কিনা।

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

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

ডায়নামিক ও স্ট্যাটিক স্পেশিয়াল অডিও মোড প্রয়োগ করার নির্দেশিকা

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

API প্রয়োগ করা

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

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

ইউজার ইন্টারফেস

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

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

    spatial-audio-ui

    ছবি ১. স্পেশিয়ল অডিও সেটিং।

  • হেডসেট ডিসকানেক্ট করা থাকলে সেটিংস উপলভ্য থাকে।

  • হেডসেট প্রাথমিকভাবে পেয়ার করার পরে স্পেশিয়াল অডিওর ডিফল্ট স্ট্যাটাস চালু করা আছে হিসেবে সেট করা থাকে।

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

ফাংশনাল আচরণ

অডিও ফর্ম্যাট

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

  • AAC, ৫.১ চ্যানেল
  • Raw PCM, ৫.১ চ্যানেল

ব্যবহারকারীর আরও ভাল অভিজ্ঞতার জন্য, আমরা নিম্নলিখিত ফর্ম্যাট/চ্যানেল কনফিগারেশন ব্যবহার করার জন্য অত্যন্ত সাজেস্ট করি:

  • Dolby Digital Plus
  • ৫.১.২, ৭.১, ৭.১.২, ৭.১.৪ চ্যানেল

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

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

ব্যবহারের ক্ষেত্রে ট্রানজিশন ও কনকারেন্সি

বিশেষ ব্যবহারের ক্ষেত্রে এগুলি অনুসরণ করুন:

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

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

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

হেড ট্র্যাকিং প্রয়োগ করার নির্দেশিকা

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

ইউজার ইন্টারফেস

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

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

    ht-ui

    ছবি ২. স্পেশিয়ল অডিও ও হেড-ট্র্যাকিং সেটিংস।

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

  • হেডসেট প্রাথমিকভাবে পেয়ার করার পরে হেড ট্র্যাকিংয়ের ডিফল্ট স্টেট হল চালু করা।

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

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

হেড পোজ রিপোর্টিং

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

পারফর্ম্যান্স

লেটেন্সি

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

হেড পোজ রিপোর্টিং রেট

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

পাওয়ার অপ্টিমাইজেশন

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

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

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

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

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

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

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

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

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

লেটেন্সি মোড অ্যাডজাস্টমেন্ট

লো-লেটেন্সি কোডেক বেছে নিলে লেটেন্সি মোড অ্যাডজাস্টমেন্ট হয়।

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

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