aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2015-09-24 11:56:42 -0700
committerGlenn Kasten <gkasten@google.com>2015-09-30 15:53:47 -0700
commit20cdbb7e1e1b31f2fe2fb441f765c082fbe0ad84 (patch)
treeca6eb46369655c6a077e3ad6d46198a0ed621ac7
parentc2df7e14fa1fb3183054a4982c7ff493316b7871 (diff)
downloadsource.android.com-20cdbb7e1e1b31f2fe2fb441f765c082fbe0ad84.tar.gz
CDD: Near-ultrasound and mic resampling
Bug: 21072209 Change-Id: Ia4ef6c09d9695dc07cd3f24c96e4187492d71e64
-rw-r--r--src/compatibility/android-cdd.html60
1 files changed, 51 insertions, 9 deletions
diff --git a/src/compatibility/android-cdd.html b/src/compatibility/android-cdd.html
index 1d462611..6c9b10bf 100644
--- a/src/compatibility/android-cdd.html
+++ b/src/compatibility/android-cdd.html
@@ -278,6 +278,8 @@
<p class="toc_h4"><a href="#7_8_2_1_analog_audio_ports">7.8.2.1. Analog Audio Ports</a></p>
+<p class="toc_h3"><a href="#7_8_3_near_ultrasound">7.8.3. Near-Ultrasound</a></p>
+
<p class="toc_h1"><a href="#8_performance_compatibility">8. Performance Compatibility</a></p>
<p class="toc_h2"><a href="#8_1_user_experience_consistency">8.1. User Experience Consistency</a></p>
@@ -1708,14 +1710,14 @@ to 48 kHz.</td>
<td>AMR-NB</td>
<td>REQUIRED<sup>3</sup></td>
<td>REQUIRED<sup>3</sup></td>
- <td>4.75 to 12.2 kbps sampled @ 8kHz</td>
+ <td>4.75 to 12.2 kbps sampled @ 8 kHz</td>
<td>3GPP (.3gp)</td>
</tr>
<tr>
<td>AMR-WB</td>
<td>REQUIRED<sup>3</sup></td>
<td>REQUIRED<sup>3</sup></td>
- <td>9 rates from 6.60 kbit/s to 23.85 kbit/s sampled @ 16kHz</td>
+ <td>9 rates from 6.60 kbit/s to 23.85 kbit/s sampled @ 16 kHz</td>
<td></td>
</tr>
<tr>
@@ -2191,8 +2193,9 @@ hardware.</p>
<p>While some of the requirements outlined in this section are stated as SHOULD
since Android 4.3, the Compatibility Definition for a future version is planned
-to change these to MUST. Existing and new Android devices are <strong>STRONGLY RECOMMENDED</strong> to meet these requirements, or they will not be able to attain Android
-compatibility when upgraded to the future version.</p>
+to change these to MUST. Existing and new Android devices are <strong>STRONGLY ENCOURAGED</strong>
+to meet these requirements, or they will not be able to attain Android compatibility when upgraded
+to the future version.</p>
<h3 id="5_4_1_raw_audio_capture">5.4.1. Raw Audio Capture</h3>
@@ -2206,6 +2209,9 @@ capture of raw audio content with the following characteristics:</p>
<li><strong>Channels</strong>: Mono
</ul>
+<p>The capture for the above sample rates MUST be done without up-sampling, and
+any down-sampling MUST include an appropriate anti-aliasing filter.</p>
+
<p>Device implementations that declare android.hardware.microphone SHOULD allow
capture of raw audio content with the following characteristics:</p>
@@ -2215,6 +2221,11 @@ capture of raw audio content with the following characteristics:</p>
<li><strong>Channels</strong>: Stereo
</ul>
+<p>If capture for the above sample rates is supported,
+then the capture MUST be done without up-sampling at any ratio higher than 16000:22050
+or 44100:48000.
+Any up-sampling or down-sampling MUST include an appropriate anti-aliasing filter.</p>
+
<h3 id="5_4_2_capture_for_voice_recognition">5.4.2. Capture for Voice Recognition</h3>
@@ -2229,7 +2240,7 @@ characteristics: specifically, ±3 dB, from 100 Hz to 4000 Hz.
source at 1000 Hz yields RMS of 2500 for 16-bit samples.
<li>PCM amplitude levels SHOULD 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.
- <li>Total harmonic distortion SHOULD be less than 1% for 1Khz at 90 dB SPL input
+ <li>Total harmonic distortion SHOULD be less than 1% for 1 kHz at 90 dB SPL input
level at the microphone.
<li>Noise reduction processing, if present, MUST be disabled.
<li>Automatic gain control, if present, MUST be disabled
@@ -4039,12 +4050,15 @@ microphone.</p>
<p>Device implementations MAY omit a microphone. However, if a device
implementation omits a microphone, it MUST NOT report the
android.hardware.microphone feature constant, and MUST implement the audio
-recording API at least as no-ops, per <a href="#7_hardware_compatibility">section 7</a>. Conversely, device implementations that do possess a microphone:</p>
+recording API at least as no-ops, per <a href="#7_hardware_compatibility">section 7</a>.
+Conversely, device implementations that do possess a microphone:</p>
<ul>
- <li>MUST report the android.hardware.microphone feature constant
- <li>MUST meet the audio recording requirements in <a href="#5_4_audio_recording">section 5.4</a>
- <li>MUST meet the audio latency requirements in <a href="#5_6_audio_latency">section 5.6</a>
+ <li>MUST report the android.hardware.microphone feature constant</li>
+ <li>MUST meet the audio recording requirements in <a href="#5_4_audio_recording">section 5.4</a></li>
+ <li>MUST meet the audio latency requirements in <a href="#5_6_audio_latency">section 5.6</a></li>
+ <li>STRONGLY RECOMMENDED to support near-ultrasound recording as described in
+ <a href="#7_8_3_near_ultrasound">section 7.8.3</a></li>
</ul>
<h3 id="7_8_2_audio_output">7.8.2. Audio Output</h3>
@@ -4060,6 +4074,8 @@ port for an audio output peripheral as a headset or an external speaker:</p>
<li>MUST report the android.hardware.audio.output feature constant.</li>
<li>MUST meet the audio playback requirements in <a href="#5_5_audio_playback">section 5.5</a>.</li>
<li>MUST meet the audio latency requirements in <a href="#5_6_audio_latency">section 5.6</a>.</li>
+ <li>STRONGLY RECOMMENDED to support near-ultrasound playback as described in
+ <a href="#7_8_3_near_ultrasound">section 7.8.3</a></li>
</ul>
<p>Conversely, if a device implementation does not include a speaker or audio
@@ -4108,6 +4124,32 @@ speaker impedance.</li>
<li>MUST have a microphone bias voltage between 1.8V ~ 2.9V.</li>
</ul>
+<h3 id="7_8_3_near_ultrasound">7.8.3. Near-Ultrasound </h3>
+
+<p>Near-Ultrasound audio is the 18.5 kHz to 20 kHz band.
+Device implementations MUST correctly report the support
+of near-ultrasound audio capability via the
+<a href="http://developer.android.com/reference/android/media/AudioManager.html#getProperty(java.lang.String)">AudioManager.getProperty</a>
+API as follows:
+</p>
+
+<ul>
+ <li>If
+ <a href="http://developer.android.com/reference/android/media/AudioManager.html#PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND">PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND</a>
+ is "true", then
+ <ul>
+ <li>The microphone's mean power response in the 18.5 kHz to 20 kHz band MUST be no more than
+ 15 dB below the response at 2 kHz.</li>
+ <li>The signal to noise ratio of the microphone MUST be no lower than 80 dB.</li>
+ </ul>
+ </li>
+ <li>If
+ <a href="http://developer.android.com/reference/android/media/AudioManager.html#PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND">PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND</a>
+ is "true", then the speaker's mean response in 18.5 kHz - 20 kHz MUST be no lower than 40 dB
+ below the response at 2 kHz.
+ </li>
+</ul>
+
<h1 id="8_performance_compatibility">8. Performance Compatibility</h1>