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

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

ओईएम, नए ऑडियो पाइपलाइन आर्किटेक्चर और सेंसर फ़्रेमवर्क इंटिग्रेशन का इस्तेमाल करके, स्पेशल ऑडियो इफ़ेक्ट की सुविधा दे सकते हैं. साथ ही, हेड ट्रैकिंग की सुविधा के लिए ज़रूरी परफ़ॉर्मेंस और लेटेंसी भी दे सकते हैं. एचआईडी प्रोटोकॉल से यह तय होता है कि ब्लूटूथ के ज़रिए हेड-ट्रैकिंग डिवाइस को कैसे अटैच किया जाए. साथ ही, 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 मि॰से॰ से ज़्यादा नहीं होना चाहिए.

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

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

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

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

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

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

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

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

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

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

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

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

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

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