ब्लूटूथ स्मार्ट ऑडियो

Bluetooth Low Energy Audio (LEA) की मदद से, उपयोगकर्ता बैटरी लाइफ़ को कम किए बिना, हाई फ़िडेलिटी ऑडियो सुन सकते हैं. साथ ही, वे अलग-अलग डिवाइसों के बीच आसानी से स्विच कर सकते हैं. Android 13 (एपीआई लेवल 33) में, LEA के लिए पहले से मौजूद सहायता शामिल है.

LEA सोर्स डिवाइस का बाज़ार में हिस्सेदारी बढ़ने तक, ज़्यादातर LEA हेडसेट डुअल मोड में काम करेंगे. उपयोगकर्ताओं को अपने ड्यूअल मोड हेडसेट पर, दोनों ट्रांसपोर्ट को पेयर और सेट अप करने की सुविधा मिलनी चाहिए.

इस्तेमाल के उदाहरण

इन मामलों में, LEA को इंटिग्रेट किया जा सकता है:

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

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

  • LC3 ऑडियो कोडेक का इस्तेमाल किया जा सकता है: यह डिफ़ॉल्ट ऑडियो कोडेक है. यह A2DP (मीडिया) के लिए इस्तेमाल किए जाने वाले SBC कोडेक और HFP (आवाज़) में mSBC कोडेक की जगह लेता है. LC3, ज़्यादा असरदार, फिर से कॉन्फ़िगर किया जा सकने वाला, और बेहतर क्वालिटी वाला है.

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

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

  • Hearing Aid Profile (HAP) की सुविधा: HAP, उपयोगकर्ताओं को ASHA प्रोटोकॉल की तुलना में ज़्यादा ऐक्सेसिबिलिटी और इस्तेमाल की सुविधा देता है. उपयोगकर्ता, फ़ोन कॉल और वीओआईपी ऐप्लिकेशन के लिए, अपने हियरिंग ऐड का इस्तेमाल कर सकते हैं.

  • बेहतर एट्रिब्यूट प्रोटोकॉल (ईएटीटी) के लिए सहायता: ईएटीटी की मदद से डेवलपर, पेयर किए गए सुनने वाले डिवाइसों को एक साथ कई कमांड भेज सकते हैं.

मुख्य स्थितियां

इस्तेमाल के उदाहरणों की चार मुख्य कैटगरी हैं:

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

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

  3. मीडिया: मीडिया ऐप्लिकेशन को ऑडियो मैनेजर के पसंदीदा डिवाइस को सेट करने की अनुमति है. उपयोगकर्ता, सिस्टम की सेटिंग में जाकर अपना पसंदीदा डिवाइस चुनकर इस सेटिंग को बदल सकता है.

  4. सुलभता: बीएलई ऑडियो के साथ काम करने वाली कान की मशीनें अब माइक्रोफ़ोन का इस्तेमाल कर सकती हैं. इससे उपयोगकर्ता, कॉल के दौरान लगातार कान की मशीनों का इस्तेमाल कर पाएंगे.

BLE ऑडियो एपीआई और तरीके

BLE Audio hearables के साथ काम करने के लिए, इन एपीआई और तरीकों की ज़रूरत होती है:

AudioManager

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

BluetoothProfile

  • BluetoothLeAudio प्रॉक्सी ऑब्जेक्ट के ज़रिए ब्लूटूथ सेवा को कंट्रोल करता है.

Telecom InCallService

  • InCallService#requestCallEndpointChange(), बंद किए गए InCallService.setAudioRoute() और InCallService.requestBluetoothAudio() एपीआई की जगह लेता है. इससे ऐप्लिकेशन, ऑडियो को किसी खास CallEndpoint पर रूट करने का अनुरोध कर सकते हैं. बदलाव का अनुरोध करते समय, क्लाइंट को अपना CallEndpoint तय नहीं करना चाहिए. इसके बजाय, नया एंडपॉइंट InCallService.onAvailableCallEndpointsChanged(java.util.List) की ओर से दिए गए मान्य एंडपॉइंट में से एक होना चाहिए.
  • CallEndpoint.TYPE_BLUETOOTH ऑडियो स्ट्रीम को ब्लूटूथ के ज़रिए डायरेक्ट करता है.
  • ऊपर बताए गए InCallService एपीआई, Android फ़ोन पर मौजूद डिफ़ॉल्ट फ़ोन ऐप्लिकेशन के साथ-साथ कॉल करने के लिए इस्तेमाल किए जाने वाले अन्य डिवाइसों के लिए डिज़ाइन किए गए हैं. जैसे, पहनने योग्य डिवाइस, कार या अन्य ब्लूटूथ डिवाइस. ये डिवाइस, ऑडियो रूटिंग को प्रभावित कर सकते हैं.

Telecom CallControl

  • नई CallControl क्लास को एपीआई लेवल 34 में पेश किया गया है. यह Connection और ConnectionService की जगह लेगी. हालांकि, यह सिर्फ़ वीओआईपी ऐप्लिकेशन के लिए है.
  • CallControl.requestCallEndpointChange() भी CallEndpoint बदलाव का अनुरोध करता है. यह एपीआई, अब काम न करने वाले Connection.requestBluetoothAudio() और Connection.setAudioRoute() एपीआई की जगह लेगा.
  • अपडेट किए गए Telecom प्लैटफ़ॉर्म एपीआई के अलावा, वॉइस और/या वीडियो कॉलिंग ऐप्लिकेशन बनाने के लिए, Telecom Jetpack लाइब्रेरी का इस्तेमाल करने का सुझाव दिया जाता है. इस लाइब्रेरी से, इंटिग्रेशन की प्रोसेस को काफ़ी आसान बनाया जा सकता है. साथ ही, Android के सभी प्लैटफ़ॉर्म पर वीओआईपी कॉलिंग की सुविधा को बेहतर बनाया जा सकता है.

ऑडियो डिवाइस की जानकारी

  • AudioDeviceInfo.TYPE_BLE_HEADSET ऑडियो डिवाइस के टाइप को एलईए डिवाइस के तौर पर दिखाता है. इस कुकी का इस्तेमाल यह पता लगाने के लिए किया जाता है कि सुनने में मदद करने वाला डिवाइस, एलईए डिवाइस है या नहीं.

ऑडियो रिकॉर्डर

  • setPreferredDevice() ऑडियो रूटिंग के लिए, इस्तेमाल किए जाने वाले पसंदीदा डिवाइस को सेट करता है. उपयोगकर्ता, सिस्टम की सेटिंग में जाकर इसे बदल सकता है.

ब्लूटूथ अडैप्टर

  • isLeAudioSupported(): यह @BluetoothStatusCodes कॉन्सटेंट (FEATURE_SUPPORTED, FEATURE_NOT_SUPPORTED या गड़बड़ी कोड) दिखाता है. इससे पता चलता है कि डिवाइस का हार्डवेयर, LE Audio के साथ काम करता है या नहीं.
  • isLeAudioBroadcastSourceSupported(): यह @BluetoothStatusCodes कॉन्सटेंट (FEATURE_SUPPORTED, FEATURE_NOT_SUPPORTED या गड़बड़ी कोड) दिखाता है. इससे पता चलता है कि डिवाइस का हार्डवेयर, LE Audio ब्रॉडकास्ट सोर्स के साथ काम करता है या नहीं.

इस्तेमाल के उदाहरण के आधार पर गाइड

यहां इस्तेमाल के कुछ उदाहरणों के आधार पर, एलईए को लागू करने के दिशा-निर्देश दिए गए हैं.

वॉइस कम्यूनिकेशन ऐप्लिकेशन

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

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

ऑडियो रिकॉर्डिंग वाले ऐप्लिकेशन

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

LE Audio (LEA) हेडसेट के लिए सुझाव

ज़्यादा LEA हेडसेट रिलीज़ होने के बाद, हमें असल दुनिया में टेस्टिंग के दौरान ऐसी समस्याएं मिली हैं जिनकी वजह से उपयोगकर्ता का अनुभव खराब होता है. इन सभी समस्याओं के बारे में, खास जानकारी में नहीं बताया गया है. यहां दी गई टेबल में, कुछ सुझाव दिए गए हैं. एलईए हेडसेट बनाने वाली कंपनियों को इन सुझावों का पालन करना चाहिए, ताकि Android का इस्तेमाल करने वाले लोगों को बेहतर अनुभव मिल सके.

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

अगर आपको LEA हेडसेट को सोर्स डिवाइसों से फिर से कनेक्ट करना है, तो टारगेट की गई सूचनाएं (टीए) पाने की सुविधा चालू करें.

LE ऑडियो ईयरबड को टीए का इस्तेमाल करना चाहिए, ताकि वे सेंट्रल डिवाइसों से इनकमिंग कनेक्शन का अनुरोध कर सकें.

इसे आने वाले बीटी एसआईजी में जोड़ा जाएगा.

BR/EDR के पेजिंग मॉडल में, फ़ोन या हेडसेट में से कोई भी डिवाइस कनेक्शन शुरू कर सकता है. हालांकि, LEA में कनेक्शन शुरू करने का काम सिर्फ़ सेंट्रल डिवाइस कर सकता है. फ़िलहाल, कई हेडसेट टीए का इस्तेमाल नहीं करते हैं. इसका मतलब है कि केंद्रीय डिवाइस, अनुमति वाली सूची में शामिल किए बिना, पेरिफ़ेरल से फिर से कनेक्ट नहीं हो पाएगा. हालांकि, अनुमति वाली सूची में शामिल करने से हेडसेट, किसी दूसरे सेंट्रल डिवाइस से कनेक्ट नहीं हो पाएगा. इसलिए, यह ज़रूरी है कि एलईए हेडसेट, टीए की सुविधा के साथ ठीक से काम करें. इससे सेंट्रल डिवाइस, मल्टी-पॉइंट कनेक्शन को तोड़ने वाले वर्कअराउंड के बिना, भरोसेमंद तरीके से फिर से कनेक्ट हो सकता है.
ड्यूअल मोड वाले ईयरबड के लिए, खोज करने की बेहतर सुविधा
  • प्राइमरी ईयरबड - बीआर/ईडीआर कॉम्पोनेंट को अपने सार्वजनिक पते का इस्तेमाल करके विज्ञापन दिखाना चाहिए. साथ ही, उसे ईआईआर के ज़रिए उपलब्ध अपने नाम के साथ, पूछताछ और पेज स्कैन करने की सुविधा चालू करनी चाहिए. इसके अलावा, उसे डिवाइस क्लास (सीओडी) की मुख्य सेवा क्लास में एलई ऑडियो बिट 14 को 1 पर सेट करना चाहिए.
  • प्राइमरी ईयरबड - एलई कॉम्पोनेंट: प्राइमरी ईयरबड को कनेक्ट किया जा सकता है और इसे खोजे जाने लायक बनाया जा सकता है (सीमित या सामान्य). इसके लिए, इसे बीआर/ईडीआर कॉम्पोनेंट के तौर पर एक ही सार्वजनिक पते का इस्तेमाल करके विज्ञापन दिखाना चाहिए. साथ ही, बीआर/ईडीआर कॉम्पोनेंट के तौर पर एक ही स्थानीय नाम का इस्तेमाल करके विज्ञापन दिखाना चाहिए. इसकी अपीयरेंस कैटगरी को एक सही अपीयरेंस कैटगरी के तौर पर सेट किया जाना चाहिए, जो रिमोट डिवाइस के टाइप से मेल खाती हो. उम्मीद है कि सेंट्रल डिवाइस इस जानकारी का इस्तेमाल करके अपने यूज़र इंटरफ़ेस (यूआई) और ऑडियो रूटिंग नीतियों को अडजस्ट करेगा.
  • सेकंडरी ईयरबड - सिर्फ़ LE: सेकंडरी ईयरबड को कनेक्ट किया जा सकता है. हालांकि, इसे खोजा नहीं जा सकता. साथ ही, इसे विज्ञापन दिखाना चाहिए. इसके लिए, इसकी Appearance Category को रिमोट डिवाइस के टाइप से मेल खाने वाली सही Appearance Category के तौर पर सेट किया जाना चाहिए. इससे सेंट्रल डिवाइस, इस जानकारी का इस्तेमाल करके अपने यूज़र इंटरफ़ेस (यूआई) और ऑडियो राउटिंग की नीतियों में बदलाव कर पाएगा

    ईयरबड को सीएसआईपी ग्रुप में से किसी एक को मुख्य डिवाइस के तौर पर चुनना चाहिए. अगर ईयरबड डुअल मोड वाला है, तो प्राइमरी डिवाइस भी डुअल मोड वाला होना चाहिए. इससे यह पक्का किया जा सकेगा कि पेयर करने के बाद, LE और Classic, दोनों सुविधाएं सही तरीके से काम करें.

इससे, डुअल-मोड वाले LEA ईयरबड, ब्लूटूथ सेटिंग में डुप्लीकेट एंट्री के तौर पर नहीं दिखते. इससे, उपयोगकर्ता भ्रमित हो सकते हैं और LEA पेयरिंग का अनुभव खराब हो सकता है.

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

पेयरिंग के दौरान, आइडेंटिटी पते का इस्तेमाल करने का सुझाव दिया जाता है. ऐसा इसलिए, क्योंकि बीआर/ईडीआर कॉम्पोनेंट, डिवाइस के सार्वजनिक पते को आस-पास के डिवाइसों के साथ पहले से ही शेयर करता है.

बेहतर एट्रिब्यूट प्रोटोकॉल (ईएटीटी) के साथ काम करता है. इससे डिवाइसों को पेयर करने और कनेक्ट करने में लगने वाला समय कम हो जाता है.
GATT कैश मेमोरी को बेहतर तरीके से मैनेज करने की सुविधा. इससे कनेक्शन में लगने वाला समय कम हो जाता है. खास तौर पर, TWS ईयरबड के लिए.
कनेक्शन की सबरेटिंग की सुविधा उपलब्ध है. इससे पैकेट को शेड्यूल करने में ज़्यादा आसानी होती है और बैटरी की बचत भी हो सकती है.
यह पक्का करें कि चलाने और कैप्चर करने, दोनों के लिए प्री-प्रोसेसिंग और पोस्ट-प्रोसेसिंग के दौरान, सिग्नल प्रोसेसिंग पाइपलाइन 16, 24, 32, और 48 किलोहर्ट्ज़ पर काम कर सकती हो. साथ ही, यह ज़्यादा फ़्रीक्वेंसी के साथ काम कर सकती हो. यह LEA कॉल या VoIP कैप्चर पाथ और मीडिया चलाने के लिए, ज़्यादा सैंपलिंग रेट का फ़ायदा उठाता है.
LE Power Control की सुविधा काम करती है पावर मैनेजमेंट को बेहतर बनाया गया है

कॉन्टेक्स्ट टाइप की सुविधा

ब्यौरा कॉन्टेक्स्ट
असाइन किए गए नंबर 6.12.3 में बताए गए सभी कॉन्टेक्स्ट टाइप का इस्तेमाल करें. हालांकि, अगर हेडसेट किसी कॉन्टेक्स्ट टाइप के साथ काम नहीं करता है, तो उसका इस्तेमाल न करें. उदाहरण के लिए, अगर कॉन्टेक्स्ट टाइप "Game" मौजूद नहीं है, तो Android गेम की आवाज़ें भेजेगा. खास तौर पर, ध्यान दें कि "Unspecified" कॉन्टेक्स्ट टाइप का मतलब "कोई भी कॉन्टेक्स्ट टाइप" नहीं है. साथ ही, इसमें ऐसे कॉन्टेक्स्ट टाइप शामिल नहीं होते हैं जिनका इस्तेमाल नहीं किया जा सकता.

जब सेंट्रल डिवाइस, पेरीफ़ेरल डिवाइस के ASCS से इंटरैक्ट करता है, तो पेरीफ़ेरल डिवाइस को सेंट्रल डिवाइस के MCS और TBS से कनेक्ट होना चाहिए.

ऐसा हो सकता है कि सेंट्रल डिवाइस, स्ट्रीमिंग के लिए हमेशा LE ऑडियो का इस्तेमाल न करे. ऐसा इसलिए, क्योंकि यह A2DP या HFP का इस्तेमाल कर सकता है. पेरिफ़रल डिवाइस, ASCS इंटरैक्शन का इस्तेमाल करके यह पता लगा सकता है कि सेंट्रल डिवाइस, स्ट्रीमिंग के लिए LE Audio का इस्तेमाल करेगा या नहीं.

एएससीएस के साथ इंटरैक्शन के कुछ उदाहरण यहां दिए गए हैं: पढ़ना, लिखना, और सूचना पाने के लिए रजिस्टर करना.