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

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

  • การติดตั้งใช้งานควรมีการตัดเสียงก้อง (AEC) ในเส้นทางการจับภาพเมื่อจับภาพด้วย VOICE_COMMUNICATION
  • หากระบุ AEC จะต้องค้นพบและควบคุมได้ผ่าน SDK API AcousticEchoCanceler

แพลตฟอร์ม Android มีเอฟเฟ็กต์เสียงในอุปกรณ์ที่รองรับในแพ็กเกจ audiofx ซึ่งนักพัฒนาซอฟต์แวร์สามารถเข้าถึงได้ ตัวอย่างเช่น Nexus 10 รองรับเอฟเฟกต์การประมวลผลล่วงหน้าต่อไปนี้

จับคู่กับอินสแตนซ์ AudioSource

เอฟเฟกต์การประมวลผลล่วงหน้าจะจับคู่กับโหมด Use Case ที่มีการขอการประมวลผลล่วงหน้า ในการพัฒนาแอป Android กรณีการใช้งานจะเรียกว่าอินสแตนซ์ AudioSource และนักพัฒนาแอปจะขอใช้การแยก AudioSource แทนที่จะใช้อุปกรณ์ฮาร์ดแวร์เสียงจริง ตัวจัดการนโยบายเสียงของ Android จะเชื่อมโยงอินสแตนซ์ 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 จะรับและปล่อยเซสชันเมื่อสร้างและทำลาย ซึ่งจะช่วยให้เอฟเฟกต์ (เช่น ตัวเพิ่มความดัง) ยังคงอยู่ตลอด เซสชัน

ลักษณะการทำงานเริ่มต้นของการติดตั้งใช้งาน HAL ของเสียง ก็ตาม

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

  • การตอบสนองต่อความถี่คงที่ (+/- 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 อย่างใดอย่างหนึ่งหรือทั้ง 2 อย่างโดยไม่มีตัวกรองแบนด์พาสหรือ ตัวกรองป้องกันการเกิดรอยหยัก
  • ปิดใช้เอฟเฟกต์/การประมวลผลล่วงหน้าโดยค่าเริ่มต้น

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

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

แหล่งข้อมูล

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