Định cấu hình hiệu ứng xử lý trước

Bản phát hành Android 10 bao gồm những tính năng sau các yêu cầu để chụp bằng VOICE_COMMUNICATION.

  • Các hoạt động triển khai phải cung cấp trình huỷ tiếng vọng âm thanh (AEC) trên đường dẫn thu thập khi chụp ảnh bằng VOICE_COMMUNICATION.
  • Nếu cung cấp AEC, thì người dùng phải tìm thấy và kiểm soát được AEC đó thông qua SDK API AcousticEchoCanceler.

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 đây:

Ghép nối với các thực thể AudioSource

Hiệu ứng tiền xử lý được ghép nối với chế độ trường hợp sử dụng mà trong đó được 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 dưới dạng một thực thể AudioSource; và nhà phát triển ứng dụng yêu cầu sử dụng Mô hình trừu tượng AudioSource thay vì phần cứng âm thanh thực tế thiết bị. 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 thiết bị, mức tăng và xử lý trước) theo cho các quy tắc riêng của 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

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. Người nhận chỉ định các 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 /vendor/etc/audio_effects.xml và chỉ định bật các hiệu ứng xử lý trước. Để biết 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 sẽ thu nạp và huỷ bỏ một phiên hoạt động khi được tạo và huỷ bỏ, cho phép các hiệu ứng (chẳng hạn như Trình tăng cường âm lượng) duy trì trong suốt phiên hoạt động.

Ví dụ sau đây bật tính năng xử lý trước cho giao thức VoIP Các phiên bản AudioSource và Máy quay phim AudioSource. Bằng cách khai báo cấu hình AudioSource theo cách này, khung này 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ề âm thanh xử lý âm thanh hoặc tăng âm lượng, ngoại trừ tính năng nhận dạng giọng nói (VOICE_RECOGNITION). Các yêu cầu cho tính năng nhận dạng giọng nói bao gồm:

  • Đáp ứng tần số cố định (+/- 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 từ 100 đến 4000 Hz)
  • Yêu cầu về độ gần siêu âm (để kiểm tra, hãy xem Siêu âm gần Kiểm thử):
    • Hỗ trợ SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND theo định nghĩa 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ăng tần hoặc bộ lọc khử răng cưa.
  • Tắt hiệu ứng/xử lý trước theo mặc định

Ví dụ về cách đ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
    • Đã điều chỉnh trình khử tiếng ồn gió cho CAMCORDER
    • Đã điều chỉnh cho trình khử tiếng ồn tại chỗ cho VOICE_COMMUNICATION
  • Điều chỉnh khuếch đại tự động
    • Đã điều chỉnh để trò chuyện gần giữa VOICE_COMMUNICATION và điện thoại chính micrô
    • Đã điều chỉnh chế độ trò chuyện xa cho CAMCORDER

Tài nguyên

Để biết thêm thông tin, hãy tham khảo các tài nguyên sau: