ऑडियो को सैंपल किया जा रहा है

Android 5.0 (Lollipop) के बाद से, ऑडियो रीसैंपलर अब पूरी तरह से का इस्तेमाल, काइज़र विंडो-सिंक फ़ंक्शन से मिले एफ़आईआर फ़िल्टर के हिसाब से किया जा सकता है. द कैसर विंडो-सिंक ये प्रॉपर्टी उपलब्ध कराता है:

  • अपने डिज़ाइन पैरामीटर (स्टॉपबैंड) के लिए इसकी गणना करना आसान है रिपल, ट्रांज़िशन बैंडविथ, कटऑफ़ फ़्रीक्वेंसी, फ़िल्टर की लंबाई).
  • यह स्टॉपबैंड ऊर्जा की कुल खपत की तुलना में, इसे कम करने के लिए करीब-करीब सही है ऊर्जा.

पी.पी. वैद्यनाथन, मल्टीरेट सिस्टम ऐंड फ़िल्टर बैंक, पेज 50, कैसर विंडो और प्रोलेट स्फ़ेरोइडल से इसकी अनुकूलता और संबंध Windows.

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

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

सैंपलिंग और रीसैंपलिंग के सबसे सही तरीके

इस सेक्शन में, सैंपलिंग रेट से जुड़ी समस्याओं से बचने के कुछ सबसे सही तरीकों के बारे में बताया गया है.

डिवाइस के हिसाब से सैंपलिंग रेट चुनें

आम तौर पर, डिवाइस के हिसाब से सैंपलिंग रेट चुनना सबसे सही होता है. आम तौर पर 44.1 किलोहर्ट्ज़ या 48 किलोहर्ट्ज़. सैंपल रेट का इस्तेमाल इससे ज़्यादा होना चाहिए आम तौर पर, 48 किलोहर्ट्ज़ (kHz) में क्वालिटी खराब हो जाती है, क्योंकि रीसैंपलर को का इस्तेमाल फ़ाइल को चलाने के लिए किया जाता है.

आसानी से रीसैंपलिंग करें अनुपात (फ़िक्स्ड बनाम इंटरपोलेट किए गए पॉलीफ़ेज़)

रीसैंपलर इनमें से किसी एक मोड में काम करता है:

  • ठीक किया गया पॉलीफ़ेज़ मोड. हर पॉलीफ़ेज़ के लिए फ़िल्टर गुणांक पहले से ही कैलकुलेट किया जाता है.
  • इंटरपोलेट किया गया पॉलीफ़ेज़ मोड. हर पॉलीफ़ेज़ के लिए फ़िल्टर गुणांक होना चाहिए दो प्रीकंप्यूट किए गए दो पॉलीफ़ेज़ से इंटरपोलेट किए जाने चाहिए.

इनपुट का अनुपात होने पर, फ़िक्स पॉलीफ़ेज़ मोड में रीसैंपलर सबसे तेज़ होता है आउटपुट दर पर दर L/M (सबसे बड़ा सामान्य भाजक निकाल कर) M का मान 256 से कम है. उदाहरण के लिए, 44,100 से 48,000 कन्वर्ज़न के लिए, L = 147. M = 160.

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

विज्ञापन देखते समय, सामान्य अनुपात वाले सैंपलिंग रेट चुनें. जैसे, 24 किलोहर्ट्ज़ (1:2) और 32 किलोहर्ट्ज़ (2:3) 48 किलोहर्ट्ज़ (kHz) वाले डिवाइस पर काम करता है. हालांकि, दरों और अनुपातों की अनुमति AudioTrack के ज़रिए दी जा सकती है.

इसके बजाय अपसैंपलिंग का इस्तेमाल करें डाउनसैंपलिंग की तुलना में

सैंपलिंग रेट को तुरंत बदला जा सकता है. जानकारी का लेवल ऐसे परिवर्तन आंतरिक बफ़रिंग पर आधारित होते हैं (आम तौर पर कुछ सौ सैंपल). इसका इस्तेमाल इफ़ेक्ट के लिए किया जा सकता है.

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

डाउनसैंपलिंग को 6:1 से ज़्यादा तक सीमित रखें

डाउनसैंपलिंग, आम तौर पर हार्डवेयर डिवाइस की ज़रूरी शर्तों के आधार पर ट्रिगर होती है. जब सैंपल रेट कन्वर्टर का इस्तेमाल डाउनसैंपलिंग के लिए किया जाता है. सही उपनामिंग के लिए डाउनसैंपलिंग अनुपात को 6:1 से ज़्यादा तक सीमित करने की कोशिश करें सप्रेशन (उदाहरण के लिए, 48,000 से 8,000 से ज़्यादा डाउनसैंपल नहीं). फ़िल्टर डाउनसैंपलिंग के अनुपात के हिसाब से लंबाई अडजस्ट हो जाती है, लेकिन इसमें ज़्यादा मेहनत नहीं करनी पड़ती उच्च डाउनसैंपलिंग अनुपात पर ट्रांज़िशन बैंडविड्थ फ़िल्टर की लंबाई बढ़ाना. इसके लिए, एलियासिंग से जुड़ी ऐसी कोई समस्या नहीं है सैंपल इकट्ठा करना. ध्यान दें कि ऑडियो पाइपलाइन के कुछ हिस्से 2:1 से ज़्यादा डाउनसैंपलिंग को रोक सकता है.

अगर आपको इंतज़ार के समय को लेकर चिंता है, तो रीसैंपल न करें

रीसैंपलिंग की मदद से, ट्रैक को FastMixer में रखने से रोका जा सकता है पाथ का मतलब है, इंतज़ार का समय ज़्यादा होने की वजह से, सामान्य मिक्सर पाथ में बड़ा बफ़र. इसके अलावा, रीसैंपलर की फ़िल्टर लंबाई के बीच एक इंप्लिसिट देरी है, हालांकि, यह आम तौर पर एक मिलीसेकंड या उससे कम के क्रम में होता है, जो सामान्य मिक्सर पाथ के लिए दी गई अतिरिक्त बफ़रिंग जितनी बड़ी नहीं है (आम तौर पर 20 मिलीसेकंड).

फ़्लोटिंग-पॉइंट ऑडियो का इस्तेमाल करना

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

  • ज़्यादा डाइनैमिक रेंज.
  • डाइनैमिक रेंज में एक जैसी सटीक जानकारी.
  • इंटरमीडिएट कैलकुलेशन और अस्थायी काल के दौरान क्लिपिंग से बचने के लिए ज़्यादा हेडरूम.

फ़्लोटिंग-पॉइंट से ऑडियो की क्वालिटी को बेहतर बनाया जा सकता है, लेकिन इसके कुछ नुकसान भी हैं:

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

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

फ़्लोटिंग-पॉइंट ऑडियो के लिए सबसे सही तरीके

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

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

फ़्लोटिंग-पॉइंट ऑडियो के लिए, ऑडियो फ़ॉर्मैट की एन्कोडिंग AudioFormat.ENCODING_PCM_FLOAT को इसके जैसे इस्तेमाल किया जाता है तय करने के लिए ENCODING_PCM_16_BIT या ENCODING_PCM_8_BIT AudioTrack का डेटा फ़ॉर्मैट के बारे में ज़्यादा जानें. ओवरलोडेड तरीका AudioTrack.write() डेटा डिलीवर करने के लिए फ़्लोट अरे को लेता है.

Kotlin

fun write(
        audioData: FloatArray,
        offsetInFloats: Int,
        sizeInFloats: Int,
        writeMode: Int
): Int

Java

public int write(float[] audioData,
        int offsetInFloats,
        int sizeInFloats,
        int writeMode)

अधिक जानकारी के लिए

इस सेक्शन में, सैंपलिंग और फ़्लोटिंग-पॉइंट के बारे में कुछ अन्य संसाधनों की सूची दी गई है.

नमूना लेना

सैंपल रेट

रीसैंपलिंग

उच्च बिट-डेप्थ और उच्च किलोहर्ट्ज़ विवाद

फ़्लोटिंग पॉइंट

नीचे दिए गए Wikipedia के पेजों की मदद से फ़्लोटिंग-पॉइंट ऑडियो को समझा जा सकता है:

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