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

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

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

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

গতিশীল এবং স্ট্যাটিক স্থানিক অডিও মোড বাস্তবায়নের জন্য নির্দেশিকা

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

API বাস্তবায়ন

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

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

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

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

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

    spatial-audio-ui

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

  • হেডসেট সংযোগ বিচ্ছিন্ন হলে সেটিংস উপলব্ধ।

  • প্রাথমিকভাবে হেডসেট জোড়া দেওয়ার পরে স্থানিক অডিওর জন্য ডিফল্ট অবস্থা সক্ষম করা সেট করা আছে৷

  • ব্যবহারকারী-নির্বাচিত অবস্থা, সক্ষম বা অক্ষম করা হোক না কেন, একটি ফোন রিবুট বা হেডসেটটিকে আনপেয়ার এবং পেয়ার করা অব্যাহত থাকে।

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

অডিও ফরম্যাট

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

  • AAC, 5.1 চ্যানেল
  • কাঁচা পিসিএম, 5.1 চ্যানেল

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

  • ডলবি ডিজিটাল প্লাস
  • 5.1.2, 7.1, 7.1.2, 7.1.4 চ্যানেল

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

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

কেস ট্রানজিশন এবং কনকারেন্সি ব্যবহার করুন

নিম্নলিখিত হিসাবে বিশেষ ব্যবহারের ক্ষেত্রে পরিচালনা করুন:

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

স্পিকার উপর রেন্ডারিং

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

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

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

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

স্থানিক অডিও সক্ষম হেডসেট বাস্তবায়ন এবং জোড়া করার পরে, যাচাই করুন যে আপনার UI এর নিম্নলিখিত আচরণ রয়েছে:

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

    ht-ui

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

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

  • প্রাথমিকভাবে হেডসেট জোড়া লাগানোর পর হেড ট্র্যাকিংয়ের জন্য ডিফল্ট অবস্থা সক্ষম করা সেট করা আছে।

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

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

মাথা পোজ রিপোর্টিং

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

কর্মক্ষমতা

লেটেন্সি

হেড-ট্র্যাকিং লেটেন্সি সংজ্ঞায়িত করা হয় জড়তা পরিমাপ ইউনিট (IMU) দ্বারা ক্যাপচার করা হেড মোশন থেকে হেডফোন ট্রান্সডুসারের এই গতির কারণে শব্দের পরিবর্তন সনাক্তকরণ পর্যন্ত সময় হিসাবে। হেড-ট্র্যাকিং লেটেন্সি 150 ms এর বেশি হওয়া উচিত নয়৷

মাথা পোজ রিপোর্টিং হার

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

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

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

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

কোডেক স্যুইচিং

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

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

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

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

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

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

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

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

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

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