Bản phát hành Android 10 bao gồm các yêu cầu sau đây để chụp bằng VOICE_COMMUNICATION
.
- Quá trình triển khai phải cung cấp bộ loại bỏ 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, bạn phải có thể khám phá và kiểm soát AEC đó thông qua
AcousticEchoCanceler
của API SDK.
Nền tảng Android cung cấp hiệu ứng âm thanh trên các thiết bị được hỗ trợ trong gói
audiofx
mà nhà phát triển có thể truy cập.
Ví dụ: Nexus 10 hỗ trợ các hiệu ứng xử lý trước sau:
Ghép nối với các thực thể AudioSource
Hiệu ứng xử lý trước được ghép nối với chế độ trường hợp sử dụng mà trong đó yêu cầu xử lý trước. Trong quá trình phát triển ứng dụng Android, một trường hợp sử dụng được gọi là thực thể AudioSource
; và nhà phát triển ứng dụng yêu cầu sử dụng tính năng 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 của Android liên kết một thực thể AudioSource
với một cấu hình đường dẫn thu thập nhất định (bao gồm cả thiết bị, mức tăng và 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 hiển thị 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 xử lý trước mặc định được áp dụng cho mỗi thực thể 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 hiệu ứng xử lý trước để bật. Để biết ví dụ, hãy xem cách triển khai Nexus 10 trong device/samsung/manta/audio_effects.xml
.
Các thực thể AudioEffect
thu nạp và phát hành một phiên khi được tạo và huỷ, cho phép các hiệu ứng (chẳng hạn như Tăng độ to) tồn tại trong suốt phiên.
Ví dụ sau đây bật tính năng xử lý trước cho các thực thể AudioSource
VoIP và AudioSource
Máy quay video. 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
Tính năng điều chỉnh AudioSource
không có yêu cầu rõ ràng về việc tăng âm thanh hoặc 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 cần đáp ứng để có thể 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 gần gũi: 90 dB SPL đọc RMS là 2500 (mẫu 16 bit)
- Mức âm thanh theo tuyến tính từ -18 dB đến +12 dB so với 90 dB SPL
- THD < 1% (90 dB SPL trong phạm vi 100 đến 4000 Hz)
- Yêu cầu về siêu âm gần (để kiểm thử, hãy xem phần Kiểm thử siêu âm gần):
- Hỗ trợ
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
như được xác định trong mục 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 băng hoặc bộ lọc khử răng cưa.
- Hỗ trợ
- Hiệu ứng/xử lý trước bị tắt theo mặc định
Sau đây là ví dụ về cách điều chỉnh các hiệu ứng khác nhau cho nhiều nguồn:
- Trình khử tiếng ồn
- Đã điều chỉnh trình khử tiếng ồn gió cho
CAMCORDER
- Điều chỉnh cho bộ khử tiếng ồn cố định cho
VOICE_COMMUNICATION
- Đã điều chỉnh trình khử tiếng ồn gió cho
- Điều chỉnh khuếch đại tự động
- Đã điều chỉnh để trò chuyện cận cảnh cho
VOICE_COMMUNICATION
và micrô chính trên điện thoại - Điều chỉnh để nói từ xa cho
CAMCORDER
- Đã điều chỉnh để trò chuyện cận cảnh 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 về gói audiofx
- Tài liệu Android về Hiệu ứng âm thanh Giảm tiếng ồn
- Tệp
/device/google/crosshatch/audio_effects.xml
cho Pixel 3