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

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

  • VOICE_COMMUNICATION का इस्तेमाल करके ऑडियो कैप्चर करते समय, कैप्चर पाथ पर ध्वनिक गूंज रद्द करने वाला (एईसी) सिस्टम लागू किया जाना चाहिए.
  • अगर एईसी की सुविधा दी जा रही है, तो यह SDK API के 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 इंस्टेंस, बनाए जाने और मिटाए जाने पर सेशन को हासिल करते हैं और रिलीज़ करते हैं. इससे, सेशन के दौरान इफ़ेक्ट (जैसे कि आवाज़ बढ़ाने वाला इफ़ेक्ट) बने रहते हैं.

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

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

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

संसाधन

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