เวอร์ชัน Android 10 มีข้อกำหนดต่อไปนี้สำหรับการจับภาพด้วย VOICE_COMMUNICATION
- การติดตั้งใช้งานควรมีการตัดเสียงก้อง (AEC) ทางเสียงในเส้นทางการบันทึกเมื่อบันทึกด้วย
VOICE_COMMUNICATION
- หากระบุ AEC ไว้ AEC นั้นจะต้องค้นพบได้และควบคุมได้ผ่าน
AcousticEchoCanceler
ของ SDK API
แพลตฟอร์ม 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
จะรับและปล่อยเซสชันเมื่อสร้างและทำลาย ทำให้เอฟเฟกต์ (เช่น การเพิ่มระดับเสียง) ทำงานตลอดเซสชัน
ตัวอย่างต่อไปนี้เปิดใช้การประมวลผลก่อนการแปลงสําหรับอินสแตนซ์ VoIPAudioSource
และกล้องวิดีโอ 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
- การกำหนดค่าการพูดในระยะใกล้: SPL 90 dB อ่าน 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
- ปรับแต่งสำหรับการพูดใกล้ๆ สำหรับไมโครโฟน
แหล่งข้อมูล
ดูข้อมูลเพิ่มเติมได้ที่แหล่งข้อมูลต่อไปนี้
- เอกสารประกอบของ Android สำหรับแพ็กเกจ audiofx
- เอกสารประกอบของ Android สำหรับเอฟเฟกต์เสียงที่ช่วยลดเสียงรบกวน
- ไฟล์
/device/google/crosshatch/audio_effects.xml
สำหรับ Pixel 3