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