Bản phát hành Android 10 bao gồm các yêu cầu sau đây đối với việc ghi lại bằng VOICE_COMMUNICATION.
- Các cách triển khai phải cung cấp một bộ khử tiếng vọng âm thanh (AEC) trên đường dẫn ghi lại khi
ghi lại 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
của API SDK
AcousticEchoCanceler.
Nền tảng Android cung cấp các hiệu ứng âm thanh trên các thiết bị được hỗ trợ trong gói
audiofx. Gói này có sẵn để nhà phát triển truy cập.
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à 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 của Android ánh xạ thực thể AudioSource với một cấu hình đường dẫn ghi lại nhất định (bao gồm thiết bị, độ lợi và tiền xử lý) 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.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
Các hiệu ứng tiền xử lý mặc định được áp dụng cho từng thực thể AudioSource được chỉ định trong tệp /vendor/etc/audio_effects.xml. Để chỉ định các hiệu ứng mặc định của riêng bạn cho từng thực thể AudioSource, hãy tạo tệp /vendor/etc/audio_effects.xml và chỉ định các hiệu ứng tiền xử lý cần bật. Để xem ví dụ, hãy xem cách triển khai cho Nexus 10 trong device/samsung/manta/audio_effects.xml.
Các thực thể AudioEffect thu nhận 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ư Bộ tăng cường âm lượng) tồn tại trong suốt phiên.
Ví dụ sau đây bật tính năng tiền xử lý 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ó các yêu cầu rõ ràng về độ lợi â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 đối với tính năng nhận dạng giọng nói bao gồm:
- Độ nhạy 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)
- Theo dõi 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)
- Các yêu cầu về âm thanh gần siêu âm (để kiểm thử, hãy xem phần
Kiểm thử âm thanh gần siêu âm):
- Hỗ trợ
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUNDnhư đượ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ợ
- Các hiệu ứng/tiền xử lý bị tắt theo mặc định
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 là:
- Bộ khử tiếng ồn
- Được điều chỉnh cho bộ khử tiếng ồn gió cho
CAMCORDER - Được điều chỉnh cho bộ khử tiếng ồn tĩnh cho
VOICE_COMMUNICATION
- Được điều chỉnh cho bộ khử tiếng ồn gió cho
- Tự động điều chỉnh độ lợi
- Được điều chỉnh cho chế độ nói gần cho
VOICE_COMMUNICATIONvà micrô chính của điện thoại - Được điều chỉnh cho chế độ nói xa cho
CAMCORDER
- Được điều chỉnh cho chế độ 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 cho hiệu ứng âm thanh Khử tiếng ồn
- Tệp
/device/google/crosshatch/audio_effects.xmlcho Pixel 3