अच्छी क्वालिटी वाले स्पेशल ऑडियो और हेड ट्रैकिंग को लागू करना

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

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

इस पेज पर दिए गए दिशा-निर्देश, स्पेशल ऑडियो के ऐसे समाधान पर लागू होते हैं जो स्पेशल ऑडियो के नए एपीआई और ऑडियो आर्किटेक्चर का इस्तेमाल करता है. साथ ही, यह समाधान Android 13 और उसके बाद के वर्शन वाले Android फ़ोन और हेड ट्रैकिंग सेंसर वाले काम करने वाले हेडसेट के साथ काम करता है.

डाइनैमिक और स्टैटिक स्पेशल ऑडियो मोड लागू करने के लिए दिशा-निर्देश

स्टैटिक स्पेस ऑडियो के लिए हेड ट्रैकिंग की ज़रूरत नहीं होती. इसलिए, हेडसेट में किसी खास सुविधा की ज़रूरत नहीं होती. सभी वायरलेस और तार वाले हेडसेट में, स्टैटिक स्पेशल ऑडियो की सुविधा काम करती है.

एपीआई लागू करना

OEM को Android 12 में पेश की गई Spatializer क्लास को लागू करना होगा. लागू करने के लिए, Spatializer क्लास के लिए शुरू किए गए सीटीएस टेस्ट को पास करना ज़रूरी है.

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

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

Spatializer क्लास लागू करने के बाद, पुष्टि करें कि आपके यूज़र इंटरफ़ेस (यूआई) का व्यवहार इस तरह का है:

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

    spatial-audio-ui

    पहली इमेज. स्पेशल ऑडियो की सेटिंग.

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

  • हेडसेट को पहली बार जोड़ने के बाद, स्पेशल ऑडियो की डिफ़ॉल्ट स्थिति चालू है पर सेट होती है.

  • उपयोगकर्ता की चुनी गई स्थिति, चाहे वह चालू हो या बंद, फ़ोन को रीबूट करने या हेडसेट को अनपेयर करने और फिर से जोड़ने के बाद भी बनी रहती है.

फ़ंक्शनल व्यवहार

ऑडियो फ़ॉर्मैट

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

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

बेहतर उपयोगकर्ता अनुभव के लिए, हमारा सुझाव है कि आप इन फ़ॉर्मैट/चैनल कॉन्फ़िगरेशन का इस्तेमाल करें:

  • Dolby Digital Plus
  • 5.1.2, 7.1, 7.1.2, 7.1.4 चैनल

स्टीरियो कॉन्टेंट चलाना

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

इस्तेमाल के उदाहरण के ट्रांज़िशन और एक साथ कई टास्क करने की सुविधा

इस्तेमाल के खास उदाहरणों को इस तरह मैनेज करें:

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

स्पीकर पर रेंडर करना

स्पीकर पर ऑडियो स्पेसलाइज़ेशन या ट्रांसऑरल मोड की सुविधा का होना ज़रूरी नहीं है.

हेड ट्रैकिंग की सुविधा लागू करने के लिए दिशा-निर्देश

इस सेक्शन में डाइनैमिक स्पेस ऑडियो पर फ़ोकस किया गया है. इसके लिए, हेडसेट की कुछ खास ज़रूरी शर्तें होती हैं.

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

स्पेशल ऑडियो की सुविधा वाले हेडसेट को लागू करने और उससे जोड़ने के बाद, पुष्टि करें कि आपके यूज़र इंटरफ़ेस (यूआई) में ये काम होते हैं:

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

    ht-ui

    दूसरी इमेज. स्पेशल ऑडियो और हेड-ट्रैकिंग की सेटिंग.

  • स्पेस ऑडियो की सुविधा बंद होने पर, हेड-ट्रैकिंग की सेटिंग नहीं दिखती.

  • हेडसेट को पहली बार जोड़ने के बाद, हेड ट्रैकिंग की डिफ़ॉल्ट स्थिति चालू है पर सेट होती है.

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

फ़ंक्शनल व्यवहार

सिर के पोज़ की रिपोर्टिंग

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

परफ़ॉर्मेंस

इंतज़ार का समय

हेड-ट्रैकिंग में लगने वाला समय, इनर्शियल मेज़रमेंट यूनिट (आईएमयू) से कैप्चर किए गए सिर की हरकत से लेकर, हेडफ़ोन ट्रांसड्यूसर के इस हरकत की वजह से आवाज़ में हुए बदलाव का पता लगाने में लगने वाले समय को कहते हैं. हेड ट्रैकिंग में लगने वाला समय 150 मि॰से॰ से ज़्यादा नहीं होना चाहिए.

सिर के पोज़ की रिपोर्टिंग रेट

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

बैटरी ऑप्टिमाइज़ेशन

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

ऑडियो फ़्रेमवर्क और ब्लूटूथ स्टैक के AOSP वर्शन में, कोडेक स्विच करने की सुविधा को कंट्रोल करने के लिए सिग्नल पहले से ही काम करते हैं. अगर OEM, ब्लूटूथ ऑडियो के लिए मुख्य ऑडियो एचएएल का इस्तेमाल करता है, जिसे कोडेक ऑफ़लोड मोड कहा जाता है, तो OEM को यह पक्का करना होगा कि ऑडियो एचएएल, उन सिग्नल को ऑडियो एचएएल और ब्लूटूथ स्टैक के बीच रिले करे.

कोडेक स्विच करना

डाइनैमिक स्पेशल ऑडियो और हेड ट्रैकिंग चालू होने पर, कम इंतज़ार वाले कोडेक का इस्तेमाल करें. जैसे, Opus. नॉन-स्पेशल ऑडियो कॉन्टेंट चलाते समय, कम पावर वाले कोडेक का इस्तेमाल करें. जैसे, ऐडवांस ऑडियो कोडिंग (AAC).

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

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

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

  • अगर कोई मीडिया स्ट्रीम चालू है और स्पेसलाइज़र स्ट्रीम शुरू हो जाती है, तो isLowLatency को true पर सेट करके, ब्लूटूथ स्ट्रीम को फिर से शुरू करें.

हेडसेट की ओर से, हेडसेट को कम इंतज़ार और कम बिजली वाले डिकोडर, दोनों के साथ काम करना चाहिए. साथ ही, हेडसेट को स्टैंडर्ड कोडेक चुनने का प्रोटोकॉल लागू करना चाहिए.

इंतज़ार के समय में बदलाव करना

लो-लेटेंसी कोडेक चुनने पर, लेटेंसी मोड में बदलाव होता है.

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

LE Audio के लिए, इंतज़ार का समय मोड में बदलाव करने के लिए, LE Audio पर हेड ट्रैकिंग देखें.