Bản phát hành Android 10 có các yêu cầu sau đây đối với hoạt động ghi hình bằng VOICE_COMMUNICATION
.
- Các hoạt động triển khai phải cung cấp một bộ khử tiếng vọng âm thanh (AEC) trên đường dẫn chụp khi chụp bằng
VOICE_COMMUNICATION
. - Nếu cung cấp AEC, thì AEC đó phải có thể phát hiện và kiểm soát thông qua
AcousticEchoCanceler
của API SDK.
Nền tảng Android cung cấp các hiệu ứng âm thanh trên những thiết bị được hỗ trợ trong gói
audiofx
. Nhà phát triển có thể truy cập vào gói này.
Ví dụ: Nexus 10 hỗ trợ các hiệu ứng tiền xử lý sau:
Ghép nối với các thực thể AudioSource
Các hiệu ứng tiền xử lý được ghép nối với chế độ trường hợp sử dụng mà trong đó yêu cầu tiền xử lý. Trong quá trình phát triển ứng dụng Android, trường hợp sử dụng được gọi là một thực thể AudioSource
; và nhà phát triển ứng dụng yêu cầu sử dụng lớp trừu tượng AudioSource
thay vì thiết bị phần cứng âm thanh thực tế. Trình quản lý chính sách âm thanh Android liên kết một thực thể AudioSource
với một cấu hình đường dẫn ghi hình nhất định (bao gồm thiết bị, mức tăng và quá trình xử lý trước) theo các quy tắc dành riêng cho sản phẩm. Các nguồn sau đây được cung cấp cho nhà phát triển:
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
Các hiệu ứng tiền xử lý mặc định được áp dụng cho mỗi phiên bản AudioSource
được chỉ định trong tệp /vendor/etc/audio_effects.xml
. Để chỉ định hiệu ứng mặc định của riêng bạn cho mọi thực thể AudioSource
, hãy tạo một tệp /vendor/etc/audio_effects.xml
và chỉ định các hiệu ứng tiền xử lý cần bật. Ví dụ: hãy xem cách triển khai cho Nexus 10 trong device/samsung/manta/audio_effects.xml
.
Các phiên bản AudioEffect
sẽ thu nhận và giải phóng một phiên khi được tạo và huỷ, cho phép các hiệu ứng (chẳng hạn như Loudness Enhancer) duy trì trong suốt phiên.
Ví dụ sau đây cho phép xử lý trước cho các thực thể VoIP AudioSource
và Camcorder AudioSource
. Bằng cách khai báo cấu hình AudioSource
theo cách này, khung sẽ tự động yêu cầu sử dụng các hiệu ứng đó từ HAL.
<preprocess> <stream type="voice_communication"> <apply effect="aec"/> <apply effect="ns"/> </stream> <stream type="camcorder"> <apply effect="agc"/> </stream> </preprocess>
Điều chỉnh nguồn
Việc điều chỉnh AudioSource
không có yêu cầu cụ thể về mức tăng âm thanh hoặc quá trình xử lý âm thanh, ngoại trừ tính năng nhận dạng giọng nói (VOICE_RECOGNITION
). Các yêu cầu đối với tính năng nhận dạng giọng nói bao gồm:
- Độ đáp ứng tần số phẳng (+/- 3 dB) từ 100 Hz đến 4 kHz
- Cấu hình nói gần: 90 dB SPL đọc RMS là 2500 (mẫu 16 bit)
- Mức độ tăng tuyến tính từ -18 dB đến +12 dB so với 90 dB SPL
- THD < 1% (90 dB SPL trong dải tần từ 100 đến 4000 Hz)
- Yêu cầu về sóng gần siêu âm (để kiểm thử, hãy xem Kiểm thử sóng gần siêu âm):
- Hỗ trợ
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
như được xác định trong phần 7.8.3 của CDD. - Hỗ trợ một hoặc cả hai tốc độ lấy mẫu 44100 hoặc 48000 mà không có bộ lọc thông dải hoặc bộ lọc khử răng cưa.
- Hỗ trợ
- Theo mặc định, hiệu ứng/quá trình xử lý trước sẽ bị tắt
Ví dụ về việc điều chỉnh các hiệu ứng khác nhau cho các nguồn khác nhau:
- Tính năng khử tiếng ồn
- Đã điều chỉnh để có bộ triệt tiếng ồn của gió cho
CAMCORDER
- Được điều chỉnh cho bộ triệt tiếng ồn tĩnh cho
VOICE_COMMUNICATION
- Đã điều chỉnh để có bộ triệt tiếng ồn của gió cho
- Điều khiển khuếch đại tự động
- Được điều chỉnh để nói gần cho
VOICE_COMMUNICATION
và micrô chính của điện thoại - Được điều chỉnh để nghe giọng nói ở xa cho
CAMCORDER
- Được điều chỉnh để nói gần cho
Tài nguyên
Để biết thêm thông tin, hãy tham khảo các tài nguyên sau:
- Tài liệu Android cho gói audiofx
- Tài liệu Android về hiệu ứng âm thanh Giảm tiếng ồn
/device/google/crosshatch/audio_effects.xml
cho Pixel 3