उच्च गुणवत्ता वाले स्थानिक ऑडियो और हेड ट्रैकिंग का कार्यान्वयन

एंड्रॉइड 13 एपीआई प्रदान करके स्थानिक ऑडियो के लिए समर्थन पेश करता है जो ऐप डेवलपर्स को यह पता लगाने देता है कि क्या फोन कार्यान्वयन, कनेक्टेड हेडसेट और उपयोगकर्ता सेटिंग्स का वर्तमान संयोजन मल्टीचैनल ऑडियो सामग्री को इमर्सिव तरीके से प्लेबैक की अनुमति देता है।

ओईएम नए ऑडियो पाइपलाइन आर्किटेक्चर और सेंसर फ्रेमवर्क एकीकरण का उपयोग करके आवश्यक प्रदर्शन और विलंबता के स्तर के साथ हेड ट्रैकिंग के समर्थन के साथ एक स्थानिक ऑडियो प्रभाव प्रदान कर सकते हैं। HID प्रोटोकॉल निर्दिष्ट करता है कि ब्लूटूथ पर हेड-ट्रैकिंग डिवाइस को कैसे संलग्न किया जाए और इसे एंड्रॉइड सेंसर फ्रेमवर्क के माध्यम से HID डिवाइस के रूप में कैसे उपलब्ध कराया जाए। अधिक आवश्यकताओं और सत्यापन के लिए स्थानिक ऑडियो और हेड ट्रैकिंग देखें।

इस पृष्ठ पर दिशानिर्देश एक स्थानिक ऑडियो समाधान पर लागू होते हैं जो एंड्रॉइड 13 और उच्चतर चलाने वाले एंड्रॉइड फोन और हेड-ट्रैकिंग सेंसर के साथ संगत हेडसेट के साथ नए स्थानिक ऑडियो एपीआई और ऑडियो आर्किटेक्चर को अपनाता है।

गतिशील और स्थैतिक स्थानिक ऑडियो मोड के कार्यान्वयन के लिए दिशानिर्देश

स्थैतिक स्थानिक ऑडियो को हेड ट्रैकिंग की आवश्यकता नहीं होती है, इसलिए हेडसेट में विशिष्ट कार्यक्षमता की आवश्यकता नहीं होती है। सभी वायर्ड और वायरलेस हेडसेट स्थिर स्थानिक ऑडियो का समर्थन कर सकते हैं।

एपीआई कार्यान्वयन

ओईएम को एंड्रॉइड 12 में पेश किए गए Spatializer क्लास को लागू करना होगा। कार्यान्वयन को Spatializer क्लास के लिए शुरू किए गए सीटीएस परीक्षणों को पास करना होगा।

एक मजबूत एपीआई कार्यान्वयन यह सुनिश्चित करता है कि ऐप डेवलपर्स, विशेष रूप से मीडिया स्ट्रीमिंग सेवाओं में, पारिस्थितिकी तंत्र में लगातार व्यवहार पर भरोसा कर सकते हैं और डिवाइस क्षमताओं, वर्तमान रेंडरिंग संदर्भ और उपयोगकर्ता विकल्पों के अनुसार सर्वोत्तम सामग्री चुन सकते हैं।

प्रयोक्ता इंटरफ़ेस

Spatializer वर्ग को लागू करने के बाद, सत्यापित करें कि आपके यूआई में निम्नलिखित व्यवहार है:

  • जब स्थानिक ऑडियो सक्षम हेडसेट को जोड़ा जाता है, तो इस हेडसेट के लिए ब्लूटूथ डिवाइस सेटिंग्स एक स्थानिक ऑडियो टॉगल प्रदर्शित करती है:

    spatial-audio-ui

    चित्र 1. स्थानिक ऑडियो सेटिंग.

  • हेडसेट डिस्कनेक्ट होने पर सेटिंग्स उपलब्ध होती हैं।

  • प्रारंभ में हेडसेट को जोड़ने के बाद स्थानिक ऑडियो के लिए डिफ़ॉल्ट स्थिति सक्षम पर सेट है।

  • उपयोगकर्ता द्वारा चयनित स्थिति, चाहे सक्षम हो या अक्षम, फ़ोन रीबूट या हेडसेट को अनपेयर और पेयर करती रहती है।

कार्यात्मक व्यवहार

ऑडियो प्रारूप

जब स्थानिक ऑडियो सक्षम होता है और रेंडरिंग डिवाइस एक वायर्ड या ब्लूटूथ हेडसेट होता है, तो निम्नलिखित ऑडियो प्रारूपों को स्थानिक प्रभाव द्वारा प्रस्तुत किया जाना चाहिए:

  • एएसी, 5.1 चैनल
  • रॉ पीसीएम, 5.1 चैनल

बेहतर उपयोगकर्ता अनुभव के लिए, हम निम्नलिखित प्रारूपों/चैनल कॉन्फ़िगरेशन का समर्थन करने की दृढ़ता से अनुशंसा करते हैं:

  • डॉल्बी डिजिटल प्लस
  • 5.1.2, 7.1, 7.1.2, 7.1.4 चैनल

स्टीरियो सामग्री प्लेबैक

स्टीरियो सामग्री को स्थानिक प्रभाव इंजन के माध्यम से प्रस्तुत नहीं किया जाना चाहिए, भले ही स्थानिक ऑडियो सक्षम हो। यदि कोई कार्यान्वयन स्टीरियो सामग्री स्थानिकीकरण की अनुमति देता है, तो उसे एक कस्टम यूआई प्रस्तुत करना होगा जो उपयोगकर्ता को इस सुविधा को आसानी से चालू या बंद करने देता है। जब स्थानिक ऑडियो सक्षम किया जाता है, तो उपयोगकर्ता सेटिंग्स या हेडसेट पुन: कनेक्शन या पुन: कॉन्फ़िगरेशन में किसी भी बदलाव की आवश्यकता के बिना स्थानिक मल्टीचैनल सामग्री के प्लेबैक से गैर-स्थानिक स्टीरियो सामग्री के बीच संक्रमण करना संभव होना चाहिए। स्थानिक ऑडियो सामग्री और स्टीरियो सामग्री के बीच संक्रमण न्यूनतम ऑडियो व्यवधान के साथ होना चाहिए।

केस ट्रांज़िशन और समवर्तीता का उपयोग करें

विशेष उपयोग के मामलों को इस प्रकार संभालें:

  • सूचनाओं को स्थानिक ऑडियो सामग्री के साथ उसी तरह मिश्रित किया जाना चाहिए जैसे वे गैर-स्थानिक ऑडियो सामग्री के साथ होती हैं।
  • रिंगटोन को स्थानिक ऑडियो सामग्री के साथ मिश्रित करने की अनुमति दी जानी चाहिए। हालाँकि, डिफ़ॉल्ट रूप से, रिंगटोन होने पर ऑडियो फोकस तंत्र स्थानिक ऑडियो सामग्री को रोक देता है।
  • फ़ोन कॉल या वीडियो कॉन्फ़्रेंस का उत्तर देते या रखते समय, स्थानिक ऑडियो प्लेबैक रुकना चाहिए। कॉल समाप्त होने पर स्थानिक ऑडियो प्लेबैक उसी स्थानिक ऑडियो सेटिंग्स के साथ फिर से शुरू होना चाहिए। स्थानिक ऑडियो मोड से वार्तालाप मोड में स्विच करने के लिए ऑडियो पथ का पुन: कॉन्फ़िगरेशन जल्दी और निर्बाध रूप से होना चाहिए ताकि यह कॉल अनुभव को प्रभावित न करे।

वक्ताओं पर प्रतिपादन

स्पीकर या ट्रांसऑरल मोड पर ऑडियो स्थानीकरण के लिए समर्थन की आवश्यकता नहीं है।

हेड ट्रैकिंग के कार्यान्वयन के लिए दिशानिर्देश

यह अनुभाग गतिशील स्थानिक ऑडियो पर केंद्रित है, जिसमें विशिष्ट हेडसेट आवश्यकताएँ हैं।

प्रयोक्ता इंटरफ़ेस

स्थानिक ऑडियो सक्षम हेडसेट के कार्यान्वयन और युग्मन पर, सत्यापित करें कि आपके यूआई में निम्नलिखित व्यवहार है:

  • ब्लूटूथ डिवाइस सेटिंग्स में, जब हेडसेट के लिए स्थानिक ऑडियो सेटिंग सक्षम होती है, तो स्थानिक ऑडियो के अंतर्गत एक हेड ट्रैकिंग सेटिंग दिखाई देती है:

    ht-ui

    चित्र 2. स्थानिक ऑडियो और हेड-ट्रैकिंग सेटिंग।

  • स्थानिक ऑडियो अक्षम होने पर हेड-ट्रैकिंग सेटिंग दिखाई नहीं देती है।

  • प्रारंभ में हेडसेट को जोड़ने के बाद हेड ट्रैकिंग के लिए डिफ़ॉल्ट स्थिति सक्षम पर सेट है।

  • उपयोगकर्ता द्वारा चयनित स्थिति, चाहे सक्षम हो या अक्षम, फ़ोन रीबूट या हेडसेट को अनपेयर और पेयर करने के बाद भी बनी रहनी चाहिए।

कार्यात्मक व्यवहार

हेड पोज़ रिपोर्टिंग

  • हेडसेट से एंड्रॉइड डिवाइस पर भेजी गई x, y और z निर्देशांक में हेड पोज़ की जानकारी, उपयोगकर्ता के सिर की गतिविधियों को जल्दी और सटीक रूप से प्रतिबिंबित करनी चाहिए।
  • ब्लूटूथ लिंक पर हेड पोज़ रिपोर्टिंग को HID पर परिभाषित प्रोटोकॉल का पालन करना चाहिए।
  • हेडसेट को हेड-ट्रैकिंग जानकारी एंड्रॉइड फोन पर तभी भेजनी चाहिए जब उपयोगकर्ता ब्लूटूथ डिवाइस सेटिंग यूआई में हेड ट्रैकिंग सक्षम करता है।

प्रदर्शन

विलंब

हेड-ट्रैकिंग विलंबता को जड़त्व माप इकाई (आईएमयू) द्वारा कैप्चर की गई हेड गति से हेडफोन ट्रांसड्यूसर द्वारा इस गति के कारण ध्वनि में परिवर्तन का पता लगाने में लगने वाले समय के रूप में परिभाषित किया गया है। हेड-ट्रैकिंग विलंबता 150 एमएस से अधिक नहीं होनी चाहिए।

हेड पोज़ रिपोर्टिंग दर

जब हेड ट्रैकिंग सक्रिय होती है, तो हेडसेट को लगभग 20 एमएस के अनुशंसित आवधिक आधार पर हेड पोज़ की रिपोर्ट देनी होगी। ब्लूटूथ के ट्रांसमिशन जिटर के दौरान फोन पर पुराने इनपुट डिटेक्शन लॉजिक को ट्रिगर करने से बचने के लिए, दो अपडेट के बीच अधिकतम समय 40 एमएस से अधिक नहीं होना चाहिए।

शक्ति अनुकूलन

पावर को अनुकूलित करने के लिए, हम अनुशंसा करते हैं कि कार्यान्वयन ऑडियो एचएएल और ब्लूटूथ ऑडियो एचएएल इंटरफेस द्वारा प्रदान किए गए ब्लूटूथ कोडेक स्विचिंग और विलंबता मोड चयन तंत्र का उपयोग करता है।

ऑडियो फ्रेमवर्क और ब्लूटूथ स्टैक का AOSP कार्यान्वयन पहले से ही कोडेक स्विचिंग को नियंत्रित करने के लिए सिग्नल का समर्थन करता है। यदि ओईएम का कार्यान्वयन ब्लूटूथ ऑडियो के लिए प्राथमिक ऑडियो एचएएल का उपयोग करता है, जिसे कोडेक ऑफलोड मोड के रूप में जाना जाता है, तो ओईएम को यह सुनिश्चित करना होगा कि ऑडियो एचएएल उन संकेतों को ऑडियो एचएएल और ब्लूटूथ स्टैक के बीच रिले करता है।

कोडेक स्विचिंग

जब गतिशील स्थानिक ऑडियो और हेड ट्रैकिंग चालू हो, तो ओपस जैसे कम-विलंबता कोडेक का उपयोग करें। गैर-स्थानिक ऑडियो सामग्री चलाते समय, उन्नत ऑडियो कोडिंग (एएसी) जैसे कम-शक्ति वाले कोडेक का उपयोग करें।

कोडेक स्विचिंग के दौरान इन नियमों का पालन करें:

  • केवल निम्नलिखित ऑडियो एचएएल आउटपुट स्ट्रीम पर गतिविधि को ट्रैक करें:
    • समर्पित स्थानिक आउटपुट
    • मीडिया विशिष्ट धाराएँ, जैसे डीप बफ़र या संपीड़ित ऑफ़लोड प्लेबैक
  • जब सभी प्रासंगिक धाराएँ निष्क्रिय हो जाती हैं और स्पैटियलाइज़र स्ट्रीम शुरू हो जाती है, तो कम-विलंबता कोडेक निर्दिष्ट करने के लिए ब्लूटूथ स्ट्रीम को isLowLatency के साथ true पर सेट करके प्रारंभ करें।

  • जब सभी प्रासंगिक स्ट्रीम निष्क्रिय हों और एक मीडिया स्ट्रीम शुरू हो, तो कम-पावर कोडेक निर्दिष्ट करने के लिए ब्लूटूथ स्ट्रीम को isLowLatency के साथ false पर सेट करें।

  • यदि कोई मीडिया स्ट्रीम सक्रिय है और स्पैटियलाइज़र स्ट्रीम प्रारंभ हो जाती है, तो ब्लूटूथ स्ट्रीम को isLowLatency true पर सेट करके पुनरारंभ करें।

हेडसेट की ओर, हेडसेट को कम-विलंबता और कम-शक्ति डिकोडर दोनों का समर्थन करना चाहिए और मानक कोडेक चयन प्रोटोकॉल को लागू करना चाहिए।

विलंबता मोड समायोजन

विलंबता मोड समायोजन तब होता है जब निम्न-विलंबता कोडेक का चयन किया जाता है।

हेड ट्रैकिंग चालू या बंद है या नहीं, इसके आधार पर विलंबता मोड समायोजन विलंबता, शक्ति और ऑडियो गुणवत्ता के बीच सर्वोत्तम समझौते तक पहुंचने के लिए विलंबता को कम करने या बढ़ाने के लिए उपलब्ध तंत्र का उपयोग करता है। जब स्थानिक ऑडियो सक्षम होता है और हेड ट्रैकिंग सक्षम होती है, तो कम-विलंबता मोड चुना जाता है। जब स्थानिक ऑडियो सक्षम होता है और हेड ट्रैकिंग अक्षम होती है, तो फ्री-विलंबता मोड का चयन किया जाता है। जब केवल स्थिर स्थानिक ऑडियो का अनुरोध किया जाता है तो विलंबता समायोजन महत्वपूर्ण बिजली बचत और ब्लूटूथ ऑडियो लिंक की बढ़ी हुई मजबूती प्रदान करता है। सबसे आम विलंबता समायोजन तंत्र ब्लूटूथ हेडसेट में जिटर बफर आकार में कमी या विस्तार है।