स्पेशल ऑडियो और हेड ट्रैकिंग

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

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

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

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

भवन निर्माण

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

नीचे दिए गए डायग्राम में, स्पेशल ऑडियो से जुड़े वे बदलाव दिखाए गए हैं जो Android 13 में ऑडियो पाइपलाइन का आर्किटेक्चर:

स्पेशल ऑडियो

पहला डायग्राम. स्पेशलाइज़र के साथ ऑडियो पाइपलाइन आर्किटेक्चर

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

नीचे दिए गए डायग्राम में, ऑडियो फ़्रेमवर्क का सिस्टम आर्किटेक्चर दिखाया गया है स्पेशलाइज़र और हेड ट्रैकिंग इफ़ेक्ट के लिए:

स्पेशल-सिस-आर्क

दूसरा डायग्राम. स्पेशलाइज़र और हेड ट्रैकिंग की सुविधा वाला सिस्टम आर्किटेक्चर

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

Android 13 की ऑडियो पाइपलाइन के आर्किटेक्चर में बदलाव इन्हें बेहतर बनाएं:

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

पक्षपातपूर्ण मुआवज़ा, स्थिरता का पता लगाने, और रेट लिमिटेशन जैसे फ़ंक्शन हेड ट्रैकिंग यूटिलिटी लाइब्रेरी का इस्तेमाल करके लागू किया जाएगा.

स्पेशल ऑडियो एपीआई

Android 13 में स्पेशल ऑडियो सिस्टम और डेवलपर सुविधाएं मिलती हैं एपीआई.

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

डेवलपर को इस्तेमाल करने वाले एपीआई के लिए, Spatializer देखें.

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

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

स्पेशल ऑडियो की डिफ़ॉल्ट सेटिंग हमेशा चालू रहती है. ऐसा तब होता है, जब समर्थित हैं. Spatializer.java देखें देखें.

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

स्पेशल ऑडियो इंटिग्रेट करें

स्पेशलाइज़र इफ़ेक्ट इंजन को लागू करने के साथ-साथ, OEM को अपने स्पेशल ऑडियो की सुविधा के लिए प्लैटफ़ॉर्म.

ज़रूरी शर्तें

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

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

स्पेशल ऑडियो इंटिग्रेट करने के लिए यह तरीका अपनाएं:

  1. स्पेशल ऑडियो की सुविधा के बारे में अपनी device.mk फ़ाइल में बताएं:

    PRODUCT_PROPERTY_OVERRIDES += \
         ro.audio.spatializer_enabled=true
    

    इस वजह से AudioService, स्पेशलाइज़र की सुविधा शुरू कर देता है.

  2. स्पेशल ऑडियो के मिक्स के लिए, खास तौर पर बनाए गए आउटपुट का एलान करें audio_policy_configuration.xml, इसके बारे में नीचे बताया गया है:

    <audioPolicyConfiguration>
      <modules>
       <module>
         <mixPorts>
         <mixPort name="spatializer" role="source"   flags="AUDIO_OUTPUT_FLAG_SPATIALIZER">
           <profile name="sa" format="AUDIO_FORMAT_PCM_FLOAT"
             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
    
  3. audio_effects.xml में स्पेशलाइज़र इफ़ेक्ट लाइब्रेरी का एलान इस तरह करें:

    <audio_effects_conf>
          <libraries>
             <library name="spatializer_lib" path="libMySpatializer.so"/>
              …
             </libraries>
          <effects>
           <effect name="spatializer" library="spatializer_lib" uuid="myunique-uuid-formy-spatializereffect"/>
    
  4. स्पेशलाइज़र इफ़ेक्ट का इस्तेमाल करने वाले वेंडर को इन शर्तों का पालन करना होगा:

    • इस इफ़ेक्ट में दूसरे इफ़ेक्ट के जैसा बेसिक कॉन्फ़िगरेशन और कंट्रोल हैल.
    • फ़्रेमवर्क का इस्तेमाल करने के लिए, कुछ खास पैरामीटर ज़रूरी हैं और कॉन्फ़िगरेशन, जैसे कि:

      • SPATIALIZER_PARAM_SUPPORTED_LEVELS
      • SPATIALIZER_PARAM_LEVEL
      • SPATIALIZER_PARAM_HEADTRACKING_SUPPORTED
      • SPATIALIZER_PARAM_HEADTRACKING_MODE
      • SPATIALIZER_PARAM_SUPPORTED_CHANNEL_MASKS
      • SPATIALIZER_PARAM_SUPPORTED_SPATIALIZATION_MODES
      • SPATIALIZER_PARAM_HEAD_TO_STAGE

    ज़्यादा जानकारी के लिए, effect_spatializer.h पर जाएं.

सुझाव

हमारा सुझाव है कि लागू करने के दौरान, OEM इन दिशा-निर्देशों का इस्तेमाल करें:

  • इंटरऑपरेबिलिटी को आसान बनाने और इंतज़ार का समय तय करने के लिए, LE Audio का इस्तेमाल करें लक्ष्य.
  • दोतरफ़ा यात्रा का इंतज़ार का समय, सेंसर की हलचल का पता लगाने से लेकर अच्छे उपयोगकर्ता अनुभव के लिए, हेडफ़ोन का साइज़ 150 मि॰से॰ से कम होना चाहिए.
  • ऐडवांस ऑडियो डिस्ट्रिब्यूशन प्रोफ़ाइल (A2DP) वाले ब्लूटूथ (बीटी) क्लासिक के लिए:
    • इंतज़ार का समय कम करने वाले कोडेक, जैसे कि ओपस का इस्तेमाल करें.
    • ऑडियो एचएएल में इंतज़ार का समय तय करने वाले फ़ंक्शन लागू करें. हेड ट्रैकिंग की सुविधा चालू होने पर, यह पावर और परफ़ॉर्मेंस ऑप्टिमाइज़ेशन को चालू करता है बंद कर देना और सबसे खराब स्थितियों के दौरान हेड ट्रैकिंग को बंद करना.

पुष्टि करें

स्पेशल ऑडियो की सुविधा के काम करने की पुष्टि करने के लिए, सीटीएस टेस्ट का इस्तेमाल करें SpatializerTest.java में उपलब्ध है.

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