À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
La version Android 10 inclut les exigences suivantes pour la capture avec VOICE_COMMUNICATION.
Les implémentations doivent fournir un système d'annulation de l'écho acoustique (AEC) sur le chemin de capture lors de la capture avec VOICE_COMMUNICATION.
Si vous fournissez un AEC, il doit être détectable et contrôlable via AcousticEchoCanceler de l'API du SDK.
La plate-forme Android fournit des effets audio sur les appareils compatibles dans le package audiofx, auquel les développeurs peuvent accéder.
Par exemple, le Nexus 10 est compatible avec les effets de prétraitement suivants:
Les effets de prétraitement sont associés au mode de cas d'utilisation dans lequel le prétraitement est demandé. Dans le développement d'applications Android, un cas d'utilisation est appelé instance AudioSource. Les développeurs d'applications demandent à utiliser l'abstraction AudioSource au lieu de l'appareil matériel audio réel. Le Gestionnaire de règles audio Android mappe une instance AudioSource à une configuration de chemin de capture donnée (y compris l'appareil, le gain et le prétraitement) conformément aux règles spécifiques au produit. Les sources suivantes sont exposées aux développeurs:
Les effets de prétraitement par défaut appliqués à chaque instance AudioSource sont spécifiés dans le fichier /vendor/etc/audio_effects.xml. Pour spécifier vos propres effets par défaut pour chaque instance AudioSource, créez un fichier /vendor/etc/audio_effects.xml et spécifiez les effets de prétraitement à activer. Pour obtenir un exemple, consultez l'implémentation du Nexus 10 dans device/samsung/manta/audio_effects.xml.
Les instances AudioEffect acquièrent et libèrent une session lors de leur création et de leur destruction, ce qui permet aux effets (tels que l'amplificateur de la clarté du son) de persister tout au long de la session.
L'exemple suivant active le prétraitement pour les instances AudioSource VoIP et AudioSource Caméscope. En déclarant la configuration AudioSource de cette manière, le framework demande automatiquement l'utilisation de ces effets à partir du HAL.
Le réglage AudioSource n'a pas d'exigences explicites sur le gain audio ni sur le traitement audio, à l'exception de la reconnaissance vocale (VOICE_RECOGNITION). Les exigences concernant la reconnaissance vocale incluent les éléments suivants:
Réponse en fréquence plate (+/- 3 dB) de 100 Hz à 4 kHz
Configuration mains libres: 90 dB SPL affiche un RMS de 2 500 (échantillons 16 bits)
Le niveau suit une évolution linéaire de -18 dB à +12 dB par rapport à 90 dB SPL
THD < 1% (90 dB SPL dans la plage de fréquences de 100 à 4 000 Hz)
Exigences concernant les ultrasons proches (pour les tests, consultez la section Tests des ultrasons proches) :
Prise en charge de SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND, comme défini dans la section 7.8.3 du CDD.
Prise en charge de l'un ou des deux taux d'échantillonnage 44 100 ou 48 000 sans filtres passe-bande ni anticrénelage.
Effets/prétraitement désactivés par défaut
Voici quelques exemples d'ajustement de différents effets pour différentes sources:
Suppresseur de bruit
Réglage du suppresseur de bruit du vent pour CAMCORDER
Réglage du suppresseur de bruit stationnaire pour VOICE_COMMUNICATION
Contrôle de gain automatique
Optimisé pour la conversation en mode mains libres pour le VOICE_COMMUNICATION et le micro principal du téléphone
Optimisé pour la conversation à distance pour CAMCORDER
Ressources
Pour en savoir plus, consultez les ressources suivantes:
Fichier /device/google/crosshatch/audio_effects.xml pour le Pixel 3
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/06/12 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/06/12 (UTC)."],[],[],null,["# Configure preprocessing effects\n\nThe Android 10 release includes the following\nrequirements for capture with `VOICE_COMMUNICATION`.\n\n- Implementations should provide an acoustic echo canceler (AEC) on the capture path when capturing with `VOICE_COMMUNICATION`.\n- If providing an AEC, it must be discoverable and controllable through the SDK API's `AcousticEchoCanceler`.\n\nThe Android platform provides audio effects on supported devices in the\n[`audiofx`](http://developer.android.com/reference/android/media/audiofx/package-summary.html) package, which is available for developers to access.\nFor example, the Nexus 10 supports the following preprocessing effects:\n\n- [Acoustic\n Echo Cancellation](http://developer.android.com/reference/android/media/audiofx/AcousticEchoCanceler.html)\n- [Automatic Gain Control](http://developer.android.com/reference/android/media/audiofx/AutomaticGainControl.html)\n- [Noise\n Suppression](http://developer.android.com/reference/android/media/audiofx/NoiseSuppressor.html)\n\nPair with AudioSource instances\n-------------------------------\n\nPreprocessing effects are paired with the use case mode in which the\npreprocessing is requested. In Android app development, a use case is referred\nto as an `AudioSource` instance; and app developers request to use the\n`AudioSource` abstraction instead of the actual audio hardware\ndevice. The Android Audio Policy Manager maps an `AudioSource` instance to a\ngiven capture path configuration (including device, gain, and pre processing) according\nto product-specific rules. The following sources are exposed to developers:\n\n- `android.media.MediaRecorder.AudioSource.CAMCORDER`\n- `android.media.MediaRecorder.AudioSource.VOICE_COMMUNICATION`\n- `android.media.MediaRecorder.AudioSource.VOICE_CALL`\n- `android.media.MediaRecorder.AudioSource.VOICE_DOWNLINK`\n- `android.media.MediaRecorder.AudioSource.VOICE_UPLINK`\n- `android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION`\n- `android.media.MediaRecorder.AudioSource.MIC`\n- `android.media.MediaRecorder.AudioSource.DEFAULT`\n\nThe default preprocessing effects applied for each `AudioSource` instance\nare specified in the `/vendor/etc/audio_effects.xml` file. To\nspecify your own default effects for every `AudioSource` instance, create a\n`/vendor/etc/audio_effects.xml` file and specify the\npreprocessing effects to turn on. For an example, see the implementation for\nthe Nexus 10 in `device/samsung/manta/audio_effects.xml`.\n`AudioEffect` instances acquire and release a session when created and destroyed,\nenabling the effects (such as the Loudness Enhancer) to persist throughout the\nsession.\n| **Warning:** For the `VOICE_RECOGNITION` use case, don't enable the noise suppression preprocessing effect. It shouldn't be turned on by default when recording from this audio source, and you shouldn't enable it in your own `audio_effects.xml` file. Turning on the effect by default causes the device to fail the [compatibility requirement](/docs/compatibility) regardless of whether this was on by default due to the configuration file, or the audio HAL implementation's default behavior.\n\nThe following example enables preprocessing for the VoIP\n`AudioSource` and Camcorder `AudioSource` instances. By declaring\nthe `AudioSource` configuration in this manner, the framework\nautomatically requests the use of those effects from the HAL. \n\n```carbon\n\u003cpreprocess\u003e\n \u003cstream type=\"voice_communication\"\u003e\n \u003capply effect=\"aec\"/\u003e\n \u003capply effect=\"ns\"/\u003e\n \u003c/stream\u003e\n \u003cstream type=\"camcorder\"\u003e\n \u003capply effect=\"agc\"/\u003e\n \u003c/stream\u003e\n \u003c/preprocess\u003e\n```\n\nSource tuning\n-------------\n\n`AudioSource` tuning doesn't have explicit requirements on audio\ngain or audio processing with the exception of voice recognition\n(`VOICE_RECOGNITION`). Requirements for voice recognition include:\n\n- Flat frequency response (+/- 3 dB) from 100 Hz to 4 kHz\n- Close-talk config: 90 dB SPL reads RMS of 2500 (16 bit samples)\n- Level tracks linearly from -18 dB to +12 dB relative to 90 dB SPL\n- THD \\\u003c 1% (90 dB SPL in 100 to 4000 Hz range)\n- Near-ultrasound requirements (for testing, see [Near Ultrasound\n Tests](/docs/compatibility/cts/near-ultrasound)):\n - Support for `SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND` as defined in section 7.8.3 of the CDD.\n - Support for one or both of 44100 or 48000 sampling rates with no band-pass or antialiasing filters.\n- Effects/preprocessing disabled by default\n\nExamples of tuning different effects for different sources are:\n\n- Noise Suppressor\n - Tuned for wind noise suppressor for `CAMCORDER`\n - Tuned for stationary noise suppressor for `VOICE_COMMUNICATION`\n- Automatic Gain Control\n - Tuned for close-talk for `VOICE_COMMUNICATION` and main phone mic\n - Tuned for far-talk for `CAMCORDER`\n\nResources\n---------\n\nFor more information, refer to the following resources:\n\n- Android documentation for [audiofx\n package](http://developer.android.com/reference/android/media/audiofx/package-summary.html)\n- Android documentation for [Noise\n Suppression audio effect](http://developer.android.com/reference/android/media/audiofx/NoiseSuppressor.html)\n- `/device/google/crosshatch/audio_effects.xml` file for the Pixel 3"]]