กำหนดค่าเอฟเฟกต์การประมวลผลข้อมูลล่วงหน้า

การเปิดตัว Android 10 มีข้อกำหนดต่อไปนี้สำหรับการบันทึกด้วย VOICE_COMMUNICATION

  • การใช้งานควรมีระบบตัดเสียงสะท้อน (AEC) ในเส้นทางการบันทึกเมื่อ บันทึกด้วย VOICE_COMMUNICATION
  • หากมี AEC ระบบจะต้องค้นพบและควบคุมได้ผ่าน SDK API's 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 แล้วระบุเอฟเฟกต์การประมวลผลล่วงหน้าที่จะเปิด ดูตัวอย่างการใช้งานสำหรับ Nexus 10 ใน device/samsung/manta/audio_effects.xml อินสแตนซ์ AudioEffect จะรับและปล่อยเซสชันเมื่อสร้างและทำลาย ซึ่งจะทำให้เอฟเฟกต์ (เช่น ตัวเพิ่มระดับเสียง) ยังคงอยู่ตลอดเซสชัน

ตัวอย่างต่อไปนี้จะเปิดใช้การประมวลผลล่วงหน้าสำหรับอินสแตนซ์ AudioSource ของ VoIP และอินสแตนซ์ 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) ข้อกำหนดสำหรับการจดจำเสียงมีดังนี้

  • การตอบสนองความถี่คงที่ (+/- 3 dB) จาก 100 Hz ถึง 4 kHz
  • การกำหนดค่าการพูดระยะใกล้: 90 dB SPL อ่านค่า RMS ที่ 2500 (ตัวอย่าง 16 บิต)
  • ระดับจะเพิ่มขึ้นแบบเชิงเส้นจาก -18 dB เป็น +12 dB เทียบกับ 90 dB SPL
  • THD < 1% (90 dB SPL ในช่วง 100 ถึง 4000 Hz)
  • ข้อกำหนดเกี่ยวกับเสียงความถี่สูงที่เกือบเป็นอัลตราซาวนด์ (สำหรับการทดสอบ โปรดดู การทดสอบเสียงความถี่สูงที่เกือบเป็นอัลตราซาวนด์):
    • การรองรับ SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND ตามที่กำหนดไว้ในส่วนที่ 7.8.3 ของ CDD
    • การรองรับอัตราการสุ่มตัวอย่าง 44100 หรือ 48000 อย่างใดอย่างหนึ่งหรือทั้งสองอย่างโดยไม่มีตัวกรองแบบแบนด์พาสหรือตัวกรองป้องกันการเกิดรอยหยัก
  • เอฟเฟกต์/การประมวลผลล่วงหน้าปิดใช้โดยค่าเริ่มต้น

ตัวอย่างการปรับเอฟเฟกต์ต่างๆ สำหรับแหล่งที่มาต่างๆ มีดังนี้

  • ตัวตัดเสียงรบกวน
    • ปรับแต่งสำหรับตัวตัดเสียงรบกวนจากลมสำหรับ CAMCORDER
    • ปรับแต่งสำหรับตัวตัดเสียงรบกวนคงที่สำหรับ VOICE_COMMUNICATION
  • การควบคุมระดับเสียงอัตโนมัติ
    • ปรับแต่งสำหรับการพูดระยะใกล้สำหรับ VOICE_COMMUNICATION และไมโครโฟนหลักของโทรศัพท์
    • ปรับแต่งสำหรับการพูดระยะไกลสำหรับ CAMCORDER

แหล่งข้อมูล

ดูข้อมูลเพิ่มเติมได้จากแหล่งข้อมูลต่อไปนี้