• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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