डेटा को प्रोसेस करने से पहले लागू होने वाले इफ़ेक्ट कॉन्फ़िगर करना

Android 10 के लिए, VOICE_COMMUNICATION की मदद से कैप्चर करने से जुड़ी ये ज़रूरी शर्तें हैं.

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

Android प्लैटफ़ॉर्म, audiofx पैकेज में, ऑडियो इफ़ेक्ट की सुविधा देता है. यह सुविधा, डेवलपर के लिए उपलब्ध है. उदाहरण के लिए, Nexus 10 में ये प्रीप्रोसेसिंग इफ़ेक्ट काम करते हैं:

AudioSource इंस्टेंस के साथ जोड़ना

प्रीप्रोसेसिंग इफ़ेक्ट को, इस्तेमाल के उस उदाहरण के मोड के साथ जोड़ा जाता है जिसमें प्रीप्रोसेसिंग का अनुरोध किया गया है. Android ऐप्लिकेशन डेवलपमेंट में, इस्तेमाल के उदाहरण को AudioSource इंस्टेंस कहा जाता है. साथ ही, ऐप्लिकेशन डेवलपर, ऑडियो हार्डवेयर डिवाइस के बजाय AudioSource ऐब्स्ट्रैक्शन का इस्तेमाल करने का अनुरोध करते हैं. Android Audio Policy Manager, प्रॉडक्ट के हिसाब से तय किए गए नियमों के मुताबिक, AudioSource इंस्टेंस को कैप्चर पाथ के दिए गए कॉन्फ़िगरेशन (इसमें डिवाइस, गेन, और प्री-प्रोसेसिंग शामिल है) पर मैप करता है. डेवलपर के लिए, ये सोर्स उपलब्ध हैं:

  • android.media.MediaRecorder.AudioSource.CAMCORDER
  • android.media.MediaRecorder.AudioSource.VOICE_COMMUNICATION
  • android.media.MediaRecorder.AudioSource.VOICE_CALL
  • android.media.MediaRecorder.AudioSource.VOICE_DOWNLINK
  • android.media.MediaRecorder.AudioSource.VOICE_UPLINK
  • android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION
  • android.media.MediaRecorder.AudioSource.MIC
  • android.media.MediaRecorder.AudioSource.DEFAULT

हर AudioSource इंस्टेंस के लिए, डिफ़ॉल्ट रूप से लागू होने वाले प्रीप्रोसेसिंग इफ़ेक्ट, /vendor/etc/audio_effects.xml फ़ाइल में दिए गए होते हैं. हर AudioSource इंस्टेंस के लिए, अपने डिफ़ॉल्ट इफ़ेक्ट तय करने के लिए, /vendor/etc/audio_effects.xml फ़ाइल बनाएं. इसके बाद, प्रीप्रोसेसिंग के उन इफ़ेक्ट के बारे में बताएं जिन्हें चालू करना है. उदाहरण के लिए, device/samsung/manta/audio_effects.xml में Nexus 10 के लिए लागू करने का तरीका देखें. AudioEffect इंस्टेंस, बनाए जाने और मिटाए जाने पर सेशन को हासिल और रिलीज़ करते हैं. इससे, इफ़ेक्ट (जैसे कि Loudness Enhancer) पूरे सेशन में बने रहते हैं.

यहां दिए गए उदाहरण में, VoIP AudioSource और Camcorder AudioSource इंस्टेंस के लिए प्रीप्रोसेसिंग की सुविधा चालू करने का तरीका बताया गया है. इस तरह से AudioSource कॉन्फ़िगरेशन का एलान करने पर, फ़्रेमवर्क HAL से उन इफ़ेक्ट का इस्तेमाल करने का अनुरोध अपने-आप करता है.

<preprocess>
        <stream type="voice_communication">
            <apply effect="aec"/>
            <apply effect="ns"/>
        </stream>
        <stream type="camcorder">
            <apply effect="agc"/>
        </stream>
    </preprocess>

सोर्स ट्यूनिंग

AudioSource को ट्यून करने के लिए, ऑडियो गेन या ऑडियो प्रोसेसिंग से जुड़ी कोई खास शर्त नहीं है. हालांकि, आवाज़ पहचानने की सुविधा (VOICE_RECOGNITION) के लिए कुछ शर्तें हैं. आवाज़ पहचानने की सुविधा के लिए ये शर्तें ज़रूरी हैं:

  • 100 हर्ट्ज़ से 4 किलोहर्ट्ज़ तक, फ़्लैट फ़्रीक्वेंसी रिस्पॉन्स (+/- 3 dB)
  • माइक्रोफ़ोन के पास से बोलने पर कॉन्फ़िगरेशन: 90 डीबी एसपीएल, 2500 का आरएमएस (16 बिट सैंपल) पढ़ता है
  • लेवल, 90 डीबी एसपीएल के हिसाब से -18 डीबी से +12 डीबी तक रैखिक रूप से ट्रैक करता है
  • टीएचडी < 1% (100 से 4000 हर्ट्ज़ की फ़्रीक्वेंसी रेंज में 90 dB एसपीएल)
  • निकट-अल्ट्रासाउंड की ज़रूरी शर्तें (टेस्टिंग के लिए, निकट-अल्ट्रासाउंड टेस्ट देखें):
    • सीडीडी के सेक्शन 7.8.3 में बताए गए SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND के साथ काम करता हो.
    • 44100 या 48000 सैंपलिंग रेट में से किसी एक या दोनों के साथ काम करता हो. साथ ही, इसमें बैंड-पास या ऐंटीएलियासिंग फ़िल्टर न हों.
  • इफ़ेक्ट/प्रीप्रोसेसिंग डिफ़ॉल्ट रूप से बंद होती है

अलग-अलग सोर्स के लिए, अलग-अलग इफ़ेक्ट को ट्यून करने के उदाहरण यहां दिए गए हैं:

  • नॉइज़ सप्रेसर
    • CAMCORDER के लिए, हवा के शोर को कम करने की सुविधा को बेहतर बनाया गया है
    • VOICE_COMMUNICATION के लिए, एक जगह पर मौजूद आवाज़ों को दबाने की सुविधा को बेहतर बनाया गया है
  • ऑटोमैटिक गेन कंट्रोल
    • VOICE_COMMUNICATION और फ़ोन के मुख्य माइक के लिए, कम दूरी से की जाने वाली बातचीत के हिसाब से ट्यून किया गया
    • CAMCORDER के लिए, दूर से की गई बातचीत को समझने की सुविधा चालू है

संसाधन

ज़्यादा जानकारी के लिए, यहां दिए गए संसाधन देखें: