การเปิดตัว Android 10 มีข้อกำหนดต่อไปนี้
สำหรับการจับภาพด้วย VOICE_COMMUNICATION
- การติดตั้งใช้งานควรมีการตัดเสียงก้อง (AEC) ในเส้นทางการจับภาพเมื่อ
จับภาพด้วย
VOICE_COMMUNICATION - หากมีการระบุ AEC จะต้องค้นพบและควบคุมได้ผ่าน SDK API
AcousticEchoCanceler
แพลตฟอร์ม Android มีเอฟเฟ็กต์เสียงในอุปกรณ์ที่รองรับในแพ็กเกจ
audiofx ซึ่งนักพัฒนาแอปสามารถเข้าถึงได้
ตัวอย่างเช่น Nexus 10 รองรับเอฟเฟกต์การประมวลผลล่วงหน้าต่อไปนี้
จับคู่กับอินสแตนซ์ AudioSource
เอฟเฟกต์การประมวลผลล่วงหน้าจะจับคู่กับโหมด Use Case ที่มีการขอ
การประมวลผลล่วงหน้า ในการพัฒนาแอป Android กรณีการใช้งานจะเรียกว่าAudioSourceอินสแตนซ์ และนักพัฒนาแอปจะขอใช้AudioSourceการแยกส่วนแทนที่จะใช้อุปกรณ์ฮาร์ดแวร์เสียงจริง
Android Audio Policy Manager จะเชื่อมโยงอินสแตนซ์ AudioSource กับการกำหนดค่าเส้นทางการจับภาพที่ระบุ (รวมถึงอุปกรณ์ เกน และการประมวลผลล่วงหน้า) ตามกฎเฉพาะของผลิตภัณฑ์ แหล่งข้อมูลต่อไปนี้จะแสดงต่อผู้พัฒนา
android.media.MediaRecorder.AudioSource.CAMCORDERandroid.media.MediaRecorder.AudioSource.VOICE_COMMUNICATIONandroid.media.MediaRecorder.AudioSource.VOICE_CALLandroid.media.MediaRecorder.AudioSource.VOICE_DOWNLINKandroid.media.MediaRecorder.AudioSource.VOICE_UPLINKandroid.media.MediaRecorder.AudioSource.VOICE_RECOGNITIONandroid.media.MediaRecorder.AudioSource.MICandroid.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 อย่างใดอย่างหนึ่งหรือทั้ง 2 อย่างโดยไม่มีตัวกรองแบบแถบผ่านหรือ ตัวกรองป้องกันการเกิดรอยหยัก
- รองรับ
- ปิดใช้เอฟเฟกต์/การประมวลผลล่วงหน้าโดยค่าเริ่มต้น
ตัวอย่างการปรับแต่งเอฟเฟกต์ต่างๆ สำหรับแหล่งที่มาต่างๆ มีดังนี้
- การตัดเสียงรบกวน
- ปรับแต่งสำหรับตัวระงับเสียงลมสำหรับ
CAMCORDER - ปรับแต่งสำหรับตัวระงับเสียงรบกวนแบบคงที่สำหรับ
VOICE_COMMUNICATION
- ปรับแต่งสำหรับตัวระงับเสียงลมสำหรับ
- การควบคุมค่าเกนอัตโนมัติ
- ปรับแต่งสำหรับการพูดในระยะใกล้สำหรับ
VOICE_COMMUNICATIONและไมโครโฟนหลักของโทรศัพท์ - ปรับแต่งสำหรับการพูดจากระยะไกลสำหรับ
CAMCORDER
- ปรับแต่งสำหรับการพูดในระยะใกล้สำหรับ
แหล่งข้อมูล
ดูข้อมูลเพิ่มเติมได้ที่แหล่งข้อมูลต่อไปนี้
- เอกสารประกอบของ Android สำหรับ audiofx package
- เอกสารประกอบ Android สำหรับ เอฟเฟกต์เสียงการ ลดเสียงรบกวน
/device/google/crosshatch/audio_effects.xmlไฟล์สำหรับ Pixel 3