ज़्यादा नेटिव इको रद्द करने की सुविधा

हम पिछले एक्सपेरिमेंट से आगे के वर्शन पर काम कर रहे हैं. Chrome M68 में, एक्सपेरिमेंट के तौर पर MediaStreamTrack कंस्ट्रेंट जोड़ा गया है. इससे यह कंट्रोल किया जा सकेगा कि इको रद्द करने वाले किस टूल का इस्तेमाल किया जा रहा है. साथ ही, Windows पर नेटिव इको रद्द करने वाले टूल के लिए सहायता जोड़ी गई है. साथ ही, macOS पर नेटिव इको रद्द करने वाले टूल की सुविधा को बेहतर बनाया गया है. पहले की तरह ही, इन सभी सुविधाओं को ऑरिजिन ट्रायल पर लागू किया गया है. इसलिए, अगर इस सुविधा को आज़माना है, तो आपको साइन अप करना होगा या कमांड लाइन फ़्लैग के साथ Chrome को शुरू करना होगा. ज़्यादा जानकारी के लिए, नीचे देखें.

नया क्या है?

पहली और सबसे अहम बात यह है कि अब आपके getUserMedia कॉल में एक नया कंस्ट्रेंट शामिल करके, यह कंट्रोल किया जा सकता है कि इको रद्द करने वाले किस टूल का इस्तेमाल किया जा रहा है.उदाहरण के लिए:

echoCancellationType: type

जहां type में से एक हो सकता है:

  • ब्राउज़र से मिले सॉफ़्टवेयर का इस्तेमाल करने के लिए browser; या
  • system में, पहले से मौजूद सिस्टम से मिले इंटिग्रेशन का इस्तेमाल करना होगा. फ़िलहाल, यह macOS और Windows पर लागू किया जाता है.

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

echoCancellationType किसी दूसरे कंस्ट्रेंट की तरह ही काम करता है, इसलिए system को सही वैल्यू के तौर पर बताया जा सकता है. साथ ही, उपलब्ध होने पर Chrome को इसका इस्तेमाल करने के लिए कहा जा सकता है. अगर ऐसा नहीं है, तो यह browser पर ही वापस चला जाता है. browser EcoCancellationType हमेशा Chrome में उपलब्ध रहता है. यह जानने के लिए कि कौनसा इको रद्द करने वाला टूल चुना गया है, GetUserMedia ऑडियो ट्रैक पर getSettings() को कॉल करके echoCancellationType फ़ील्ड की वैल्यू देखें.

आखिर में, getCapabilities() को कॉल करके यह देखा जा सकता है कि MediaStreamTrack के लिए कौनसे इको रद्द करने वाले टूल उपलब्ध हैं. हालांकि, InputDeviceInfo के लिए echoCancellationType अभी तक लागू नहीं किया गया है.

Windows इको रद्द करने की सुविधा

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

macOS में इको रद्द करने की बेहतर सुविधा

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

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

एक्सपेरिमेंट को चालू करने का तरीका

अपनी साइट पर इस नई सुविधा को पाने के लिए, आपको "नेटिव एईसी के लिए प्रयोग के तौर पर सहायता" ऑरिजिन ट्रायल के लिए साइन अप करना होगा. अगर आपको इसे सिर्फ़ स्थानीय तौर पर आज़माना है, तो कमांड लाइन पर इस प्रयोग को चालू किया जा सकता है:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

इस फ़्लैग को कमांड लाइन पर पास करने से, मौजूदा सेशन के लिए Chrome में echoCancellationType की नई कंस्ट्रेंट दुनिया भर में उपलब्ध हो जाएगी. इस कंस्ट्रेंट का इस्तेमाल करके, ऐप्लिकेशन में नेटिव इको रद्द करने वाले टूल की जांच की जा सकती है. इसके बारे में ऊपर बताया गया है. यह पिछले परीक्षण की तरह ही कमांड लाइन फ़्लैग है; Chrome M68 पर यह नई सुविधा को चालू करेगा. नए ऑरिजिन ट्रायल को चालू करने से सिर्फ़ नई सुविधा चालू होगी – इससे Chrome के पुराने वर्शन में, पुराना ट्रायल ट्रिगर नहीं होगा.

सुझाव/राय दें या शिकायत करें

पिछले एक्सपेरिमेंट की तरह ही, हमारी कोशिश है कि macOS और Windows इको रद्द करने वाले टूल की क्वालिटी अच्छी हो. यह परफ़ॉर्मेंस, मुख्य तौर पर पहले थी. हमें इस बारे में भी सुझाव चाहिए कि नया echoCancellationType कंस्ट्रेंट कितने अच्छे तरीके से काम करता है और इसे इस्तेमाल करना कितना आसान है वगैरह. इसमें getSettings और getCapabilities में शामिल किया गया डेटा भी शामिल है.

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

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