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

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.
  • 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 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

Tài nguyên

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