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

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

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

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

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

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

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

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

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

यूज़र इंटरफ़ेस

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

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

    spatial-audio-ui

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

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

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

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

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

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

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

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

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

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

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

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

अलग-अलग इस्तेमाल के बीच ट्रांज़िशन और कई कामों को एक साथ संभालना

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

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

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

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

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

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

ओईएम, ब्लूटूथ पर काम करने के लिए तय किए गए प्रोटोकॉल का इस्तेमाल कर सकते हैं. इससे, यूएसबी हेडसेट में मौजूद हेड-ट्रैकिंग सेंसर को एचआईडी के ज़रिए Android फ़ोन से कनेक्ट किया जा सकता है.

यूज़र इंटरफ़ेस

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

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

    ht-ui

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

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

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

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

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

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

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

परफ़ॉर्मेंस

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

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

सिर की पोज़िशन की जानकारी देने की दर

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

पावर ऑप्टिमाइज़ेशन

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

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

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

डाइनैमिक स्पेशल ऑडियो और हेड ट्रैकिंग की सुविधा चालू होने पर, कम लेटेंसी वाले कोडेक का इस्तेमाल करें. जैसे, Opus. नॉनस्पेशल ऑडियो कॉन्टेंट चलाने के लिए, कम बैटरी खर्च करने वाले कोडेक का इस्तेमाल करें. जैसे, ऐडवांस ऑडियो कोडिंग (एएसी).

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

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

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

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

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

लेटेंसी मोड को अडजस्ट करना

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

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

LE Audio के लिए, हेड ट्रैकिंग की सुविधा के साथ काम करने वाले हेडफ़ोन में लेटेन्सी मोड को अडजस्ट करने के बारे में जानने के लिए, LE Audio के साथ हेड ट्रैकिंग की सुविधा लेख पढ़ें.