1## 5.4\. Audio Recording 2 3While some of the requirements outlined in this section are listed as SHOULD 4since Android 4.3, the Compatibility Definition for future versions are planned 5to change these to MUST. Existing and new Android devices are **STRONGLY 6RECOMMENDED** to meet these requirements that are listed as SHOULD, or they 7will not be able to attain Android compatibility when upgraded to the future 8version. 9 10### 5.4.1\. Raw Audio Capture 11 12If device implementations declare `android.hardware.microphone`, they: 13 14* [C-1-1] MUST allow capture of raw audio content with the following 15characteristics: 16 17 * **Format**: Linear PCM, 16-bit 18 * **Sampling rates**: 8000, 11025, 16000, 44100 Hz 19 * **Channels**: Mono 20 21* [C-1-2] MUST capture at above sample rates without up-sampling. 22* [C-1-3] MUST include an appropriate anti-aliasing filter when the 23sample rates given above are captured with down-sampling. 24* SHOULD allow AM radio and DVD quality capture of raw audio content, which 25means the following characteristics: 26 27 * **Format**: Linear PCM, 16-bit 28 * **Sampling rates**: 22050, 48000 Hz 29 * **Channels**: Stereo 30 31If device implementations allow AM radio and DVD quality capture of raw audio 32content, they: 33 34* [C-2-1] MUST capture without up-sampling at any ratio higher 35than 16000:22050 or 44100:48000. 36* [C-2-2] MUST include an appropriate anti-aliasing filter for any 37up-sampling or down-sampling. 38 39### 5.4.2\. Capture for Voice Recognition 40 41If device implementations declare `android.hardware.microphone`, they: 42 43* [C-1-1] MUST capture 44 `android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION` audio source at 45 one of the sampling rates, 44100 and 48000. 46* [C-1-2] MUST, by default, disable any noise reduction audio processing when 47 recording an audio stream from the `AudioSource.VOICE_RECOGNITION` audio 48 source. 49* [C-1-3] MUST, by default, disable any automatic gain control when recording 50 an audio stream from the `AudioSource.VOICE_RECOGNITION` audio source. 51* SHOULD record the voice recognition audio stream with approximately flat 52 amplitude versus frequency characteristics: specifically, ±3 dB, from 100 Hz 53 to 4000 Hz. 54* SHOULD record the voice recognition audio stream with input sensitivity set 55 such that a 90 dB sound power level (SPL) source at 1000 Hz yields RMS of 56 2500 for 16-bit samples. 57* SHOULD record the voice recognition audio stream so that the PCM amplitude 58 levels linearly track input SPL changes over at least a 30 dB range from -18 59 dB to +12 dB re 90 dB SPL at the microphone. 60* SHOULD record the voice recognition audio stream with total harmonic 61 distortion (THD) less than 1% for 1 kHz at 90 dB SPL input level at the 62 microphone. 63 64If device impelementations declare `android.hardware.microphone` and noise 65suppression (reduction) technologies tuned for speech recognition, they: 66 67* [C-2-1] MUST allow this audio affect to be controllable with the 68 `android.media.audiofx.NoiseSuppressor` API. 69* [C-2-2] MUST uniquely identfiy each noise suppression technology 70 implementation via the `AudioEffect.Descriptor.uuid` field. 71 72### 5.4.3\. Capture for Rerouting of Playback 73 74The `android.media.MediaRecorder.AudioSource` class includes the `REMOTE_SUBMIX` 75audio source. 76 77If device implementations declare both `android.hardware.audio.output` and 78`android.hardware.microphone`, they: 79 80* [C-1-1] MUST properly implement the `REMOTE_SUBMIX` audio source so that 81when an application uses the `android.media.AudioRecord` API to record from this 82audio source, it captures a mix of all audio streams except for the following: 83 84 * `AudioManager.STREAM_RING` 85 * `AudioManager.STREAM_ALARM` 86 * `AudioManager.STREAM_NOTIFICATION` 87 88