5.4. Audio Recording
While some of the requirements outlined in this section are listed as SHOULD since Android 4.3, the Compatibility Definition for future versions are planned to change these to MUST. Existing and new Android devices are
STRONGLY RECOMMENDED to meet these requirements that are listed as SHOULD, or they will not be able to attain Android compatibility when upgraded to the future version.
5.4.1. Raw Audio Capture and Microphone Information
If device implementations declare android.hardware.microphone, they:
- [C-1-1] MUST allow capture of raw audio content with the following characteristics:
- Format: Linear PCM, 16-bit
- Sampling rates: 8000, 11025, 16000, 44100, 48000 Hz
- Channels: Mono
- SHOULD allow capture of raw audio content with the following characteristics:
- Format: Linear PCM, 16-bit and 24-bit
- Sampling rates: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 Hz
- Channels: As many channels as the number of microphones on the device
- [C-1-2] MUST capture at above sample rates without up-sampling.
- [C-1-3] MUST include an appropriate anti-aliasing filter when the sample rates given above are captured with down-sampling.
- SHOULD allow AM radio and DVD quality capture of raw audio content, which means the following characteristics:
- [C-2-1] MUST capture without up-sampling at any ratio higher than 16000:22050 or 44100:48000.
- [C-2-2] MUST include an appropriate anti-aliasing filter for any up-sampling or down-sampling.
5.4.2. Capture for Voice Recognition
If device implementations declare android.hardware.microphone, they:
- [C-1-1] MUST capture android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION audio source at one of the sampling rates, 44100 and 48000.
- [C-1-2] MUST, by default, disable any noise reduction audio processing when recording an audio stream from the AudioSource.VOICE_RECOGNITION audio source.
- [C-1-3] MUST, by default, disable any automatic gain control when recording an audio stream from the AudioSource.VOICE_RECOGNITION audio source.
- SHOULD record the voice recognition audio stream with approximately flat amplitude versus frequency characteristics: specifically, ±3 dB, from 100 Hz to 4000 Hz.
- SHOULD record the voice recognition audio stream with input sensitivity set such that a 90 dB sound power level (SPL) source at 1000 Hz yields RMS of 2500 for 16-bit samples.
- SHOULD record the voice recognition audio stream so that the PCM amplitude levels linearly track input SPL changes over at least a 30 dB range from -18 dB to +12 dB re 90 dB SPL at the microphone.
- SHOULD record the voice recognition audio stream with total harmonic distortion (THD) less than 1% for 1 kHz at 90 dB SPL input level at the microphone.
If device implementations declare android.hardware.microphone and noise suppression (reduction) technologies tuned for speech recognition, they:
- [C-2-1] MUST allow this audio effect to be controllable with the android.media.audiofx.NoiseSuppressor API.
- [C-2-2] MUST uniquely identify each noise suppression technology implementation via the AudioEffect.Descriptor.uuid field.