Версия Android 10 включает следующие требования для захвата с помощью VOICE_COMMUNICATION
.
- Реализации должны обеспечивать подавитель акустического эха (AEC) на пути захвата при захвате с помощью
VOICE_COMMUNICATION
. - При предоставлении AEC его необходимо обнаруживать и контролировать с помощью
AcousticEchoCanceler
API SDK.
Платформа Android предоставляет звуковые эффекты на поддерживаемых устройствах в пакете audiofx
, доступ к которому доступен разработчикам. Например, Nexus 10 поддерживает следующие эффекты предварительной обработки:
Сопряжение с экземплярами AudioSource
Эффекты предварительной обработки связаны с режимом варианта использования, в котором запрашивается предварительная обработка. При разработке приложений для Android вариант использования называется экземпляром AudioSource
; и разработчики приложений просят использовать абстракцию AudioSource
вместо реального аудиоустройства. Диспетчер политик аудио Android сопоставляет экземпляр AudioSource
с заданной конфигурацией пути захвата (включая устройство, усиление и предварительную обработку) в соответствии с правилами, специфичными для конкретного продукта. Разработчикам доступны следующие источники:
-
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
Эффекты предварительной обработки по умолчанию, применяемые для каждого экземпляра AudioSource
, указаны в файле /vendor/etc/audio_effects.xml
. Чтобы указать собственные эффекты по умолчанию для каждого экземпляра AudioSource
, создайте файл /vendor/etc/audio_effects.xml
и укажите эффекты предварительной обработки, которые нужно включить. Пример см. в реализации для Nexus 10 в device/samsung/manta/audio_effects.xml
. Экземпляры AudioEffect
приобретают и освобождают сеанс при создании и уничтожении, позволяя эффектам (например, усилителю громкости) сохраняться на протяжении всего сеанса.
В следующем примере включается предварительная обработка для экземпляров VoIP AudioSource
и Camcorder AudioSource
. Объявляя конфигурацию AudioSource
таким образом, платформа автоматически запрашивает использование этих эффектов из HAL.
<preprocess> <stream type="voice_communication"> <apply effect="aec"/> <apply effect="ns"/> </stream> <stream type="camcorder"> <apply effect="agc"/> </stream> </preprocess>
Настройка источника
Настройка AudioSource
не имеет явных требований к усилению звука или обработке звука, за исключением распознавания голоса ( VOICE_RECOGNITION
). Требования к распознаванию голоса включают в себя:
- Ровная частотная характеристика (+/- 3 дБ) от 100 Гц до 4 кГц
- Конфигурация для близкого разговора: уровень звукового давления 90 дБ считывает среднеквадратичное значение 2500 (16-битные выборки)
- Уровень отслеживается линейно от -18 дБ до +12 дБ относительно уровня звукового давления 90 дБ.
- THD < 1% (УЗД 90 дБ в диапазоне от 100 до 4000 Гц)
- Требования к ближнему ультразвуку (информацию о тестировании см. в разделе «Испытания на ближнем ультразвуке» ):
- Поддержка
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
, как определено в разделе 7.8.3 CDD. - Поддержка одной или обеих частот дискретизации 44100 или 48000 без полосовых фильтров или фильтров сглаживания.
- Поддержка
- Эффекты/предварительная обработка отключены по умолчанию
Примеры настройки различных эффектов для разных источников:
- Шумоподавитель
- Настроен на подавитель шума ветра для
CAMCORDER
- Настроен на стационарный шумоподавитель для
VOICE_COMMUNICATION
- Настроен на подавитель шума ветра для
- Автоматическая регулировка усиления
- Настроен для разговора с близкого расстояния для
VOICE_COMMUNICATION
и основного микрофона телефона. - Настроен на дальний разговор для
CAMCORDER
- Настроен для разговора с близкого расстояния для
Ресурсы
Для получения дополнительной информации обратитесь к следующим ресурсам:
- Документация Android для пакета audiofx
- Документация Android по аудиоэффекту шумоподавления
- Файл
/device/google/crosshatch/audio_effects.xml
для Pixel 3.