aboutsummaryrefslogtreecommitdiff
path: root/en/compatibility/cts/audio-framework.html
blob: d0aa2ad1d763bc63fed581229b74f0a0097fa348 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
<html devsite>
  <head>
    <title>Audio Framework CTS Verifier</title>
    <meta name="project_path" value="/_project.yaml" />
    <meta name="book_path" value="/_book.yaml" />
  </head>
  <body>
  <!--
      Copyright 2017 The Android Open Source Project

      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
  -->



<p>This new suite of tests requires human intervention and some external hardware
including a <a href="#loopback_latency">Loopback Plug</a>, a <a
href="#audio_frequency_speaker_test">USB reference microphone</a> and <a
href="#audio_frequency_microphone_test">external speakers</a>. For devices without 3.5
mm (⅛”) headset port, the user will be able to skip the test and mark it as
successful. See the sections below for details.</p>

<h2 id=loopback_latency>Loopback plug latency test</h2>

<p><a
href="/devices/audio/latency_measure.html#measuringRoundTrip">Round
trip latency</a> in audio is defined as the time it takes an audio signal to be
recorded, processed and output back.</p>

<p>To measure round-trip latency using CTS Verifier, connect a loopback
plug to the 3.5 mm (⅛”) headset connector.  (If you don’t have a loopback plug,
you can easily make one following the <a
href="/devices/audio/loopback.html">Audio Loopback Dongle</a>
instructions.</p>

<table>
 <tr>
    <td width="50%">Start CTS Verifier Loopback Test</td>
    <td width="50%"><img src="/compatibility/cts/images/audio-framework0.png" alt="audio latency loopback" width="300"
        id="audio_latency_loopback" /></td>
 </tr>
 <tr>
    <td>Summary of instructions is displayed</td>
    <td><img src="/compatibility/cts/images/audio-framework1.png" alt="summary of instructions" width="300"
        id="loopback_instructions" /></td>
 </tr>
 <tr>
    <td>Report if the device has a headset port:<br>
        <strong>YES</strong> if the device under test has a physical headset port<br>
        <strong>NO</strong> if there is no headset port</td>
    <td><img src="/compatibility/cts/images/audio-framework-port.png" alt="audio loopback latency" width="300"
        id="port_check" /></td>
 </tr>
 <tr>
    <td>If the answer was <strong>NO</strong> in the previous step, press
        <strong>Pass</strong> (green check) on the bottom of the test and finish</td>
    <td><img src="/compatibility/cts/images/audio-framework-pass.png" alt="audio pass button" width="300"
        id="port_pass" /></td>
 </tr>
 <tr>
     <td>If the answer was <strong>YES</strong> in the previous step, continue
         to connect loopback plug.<br>
         Connect a loopback plug to the headset port<br>
         Press the <strong>Loopback Plug Ready</strong> button
    <td><img src="/compatibility/cts/images/audio-framework2.png" alt="audio pass button" width="300"
        id="port_pass" /></td>
 </tr>
 <tr>
    <td>Move the slider until the signal level is greater than 60%<br>
        Press <strong>TEST</strong></td>
    <td><img src="/compatibility/cts/images/audio-framework3.png" alt="audio level 1" width="300"
        id="audio_level1" />
        <img src="/compatibility/cts/images/audio-framework4.png" alt="audio level 2" width="300"
        id="audio_level2"></td>
 </tr>
 <tr>
    <td>Wait several seconds while the latency test is performed</td>
    <td><img src="/compatibility/cts/images/audio-framework5.png" alt="test running" width="300"
        id="test_running" /></td>
 </tr>
 <tr>
    <td>When the test is finished, results are shown<br>
        The minimum confidence level for a test to succeed is 0.6<br>
        Lower latency numbers are preferred, but no number is enforced</td>
    <td><img src="/compatibility/cts/images/audio-framework6.png"  alt="test finished" width="300"
        id="test_finished" />
</td>
 </tr>
 <tr>
    <td>Press the <strong>Pass</strong> (green, only available if successful) or
<strong>Failed</strong> (red) button to record the results.</td>
    <td><img src="/compatibility/cts/images/audio-framework7.png" alt="Pass button" width="300"
        id="pass_button" /><br>
        <img src="/compatibility/cts/images/audio-framework8.png" alt="Failed button" width="300"
        id="failed_button" /></td>
 </tr>
</table>

<h2 id=audio_frequency_line_test>Audio frequency line test</h2>

<p>Using a loopback plug, this test will characterize the left/right line audio
output and use the mic feedback from the plug to capture audio and compute a
frequency response for each channel.</p>

<p>A simple criterion for minimum energy expected in each band (out of four) is
applied per channel.</p>
<table>
 <tr>
    <td width="50%">Start CTS Audio Frequency Line Test</td>
    <td width="50%"><img src="/compatibility/cts/images/audio-framework9.png" alt="start frequency line" width="300"
        id="start_line_test" /></td>
 </tr>
 <tr>
    <td>Summary of instructions is displayed</td>
    <td><img src="/compatibility/cts/images/audio-framework10.png" alt="instructions" width="300"
        id="summary_instructions" /></td>
 </tr>
 <tr>
    <td>Report if the device has a headset port:<br>
        <strong>YES</strong> if the device under test has a physical headset port<br>
        <strong>NO</strong> if there is no headset port</td>
    <td><img src="/compatibility/cts/images/audio-framework-line-port.png" alt="audio frequency line" width="300"
        id="line_port_check" /></td>
 </tr>
 <tr>
    <td>If the answer was <strong>NO</strong> in the previous step, press
        <strong>Pass</strong> (green check) on the bottom of the test and finish</td>
    <td><img src="/compatibility/cts/images/audio-framework-pass.png" alt="audio pass button" width="300"
        id="port_pass" /></td>
 </tr>
 <tr>
     <td>If the answer was <strong>YES</strong> in the previous step, continue
         to connect loopback plug<br>
	 Connect a Loopback Plug to the headset connector (see <a
         href="#loopback_latency">Loopback plug latency test</a>)<br>
         Press the <strong>Loopback Plug Ready</strong> button
    <td><img src="/compatibility/cts/images/audio-framework11.png" alt="loopback plug ready" width="300"
        id="port_pass" /></td>
 </tr>
    <td>Press <strong>TEST</strong></td>
    <td><img src="/compatibility/cts/images/audio-framework12.png" alt="loopback plug test" width="300"
        id="loopback_plug_test" /></td>
 </tr>
 <tr>
    <td>Wait several seconds while the frequency tests are performed</td>
    <td><img src="/compatibility/cts/images/audio-framework13.png" alt="testing left capture" width="300"
        id="left_capture" /></td>
 </tr>
 <tr>
    <td>When the test is finished, results are shown</td>
    <td><img src="/compatibility/cts/images/audio-framework14.png" alt="testing complete" width="300"
        id="test_complete" /></td>
 </tr>
    <td>Press the <strong>Pass</strong> (only available if successful) or
        <strong>Failed</strong> button to record the results</td>
    <td><img src="/compatibility/cts/images/audio-framework15.png" alt="Pass button" width="300"
        id="pass_button" /><br>
        <img src="/compatibility/cts/images/audio-framework16.png" alt="Failed button" width="300"
        id="failed_button" /></td>
 </tr>
</table>

<h2 id=audio_frequency_speaker_test>Audio frequency speaker test</h2>

<p>This test uses the signal captured by an external USB reference microphone to
assess the frequency response of left (and right, if it exists) loudspeakers.</p>

<p>A reference microphone is defined as that one that delivers flat, uncolored
response. They are often used for analysis and measurement equipment.  </p>

<p>There are some inexpensive USB Reference microphones (e.g., <a
href="https://minidsp.com/products/acoustic-measurement/umik-1">miniDSP USB
Measurement calibrated microphone</a>, <a
href="http://www.daytonaudio.com/index.php/umm-6-usb-measurement-microphone.html">Dayton
Audio UMM-6 USB Measurement Microphone</a>), mostly used for the home theater
enthusiasts to calibrate their setups.</p>

<p>Minimum recommended reference microphone characteristics:<br>
Flat Frequency response on range 100 Hz - 20 kHz:  +/- 2 dB<br>
 S/N ration 70 dB (A-weighted)<br>
 THD Ratio @ 1000 Hz less than 1 % at 127 dB SPL<p>

<table>
 <tr>
    <td width="50%">Start CTS Audio Frequency Speaker Test</td>
    <td width="50%"><img src="/compatibility/cts/images/audio-framework17.png" alt="start speaker test" width="300"
        id="start_speaker" /></td>
 </tr>
 <tr>
    <td>Summary of instructions is displayed</td>
    <td><img src="/compatibility/cts/images/audio-framework18.png" alt="instructions" width="300"
        id="summary_instructions" /></td>
 </tr>
 <tr>
    <td>Connect a USB reference microphone (see <a
        href="#audio_frequency_speaker_test">Audio frequency speaker test</a>)<br>
        Press <strong>USB REFERENCE MICROPHONE READY</strong></td>
    <td><img src="/compatibility/cts/images/audio-framework19.png"  alt="mic ready" width="300"
        id="mic_ready" /></td>
 </tr>
 <tr>
    <td>Set up DUT (Device Under Test) in a quiet room and USB microphone 20cms
perpendicular to center of screen</td>
    <td><img src="/compatibility/cts/images/audio-framework20.png" alt="device under test" width="300"
        id="dut" /></td>
 </tr>
 <tr>
    <td>Press <strong>TEST</strong></td>
    <td><img src="/compatibility/cts/images/audio-framework21.png" alt="click test" width="300"
        id="click_test" /></td>
 </tr>
 <tr>
    <td>Wait several seconds while the frequency tests are performed</td>
    <td><img src="/compatibility/cts/images/audio-framework22.png" alt="test underway" width="300"
        id="right_capture" /></td>
 </tr>
 <tr>
    <td>When the test is finished, results are shown</td>
    <td><img src="/compatibility/cts/images/audio-framework23.png" alt="test complete" width="300"
        id="test_complete" /></td>
 </tr>
 </tr>
    <td>Press the <strong>Pass</strong> (only available if successful) or
        <strong>Failed</strong> button to record the results</td>
    <td><img src="/compatibility/cts/images/audio-framework24.png" alt="Pass button" width="300"
        id="pass_button" /><br>
        <img src="/compatibility/cts/images/audio-framework25.png" alt="Failed button" width="300"
        id="failed_button" /></td>
 </tr>
</table>

<h2 id=audio_frequency_microphone_test>Audio frequency microphone test</h2>

<p>This test is more involved than the previous ones. It requires the use of both:
External speakers for a white noise sound source, and a USB reference
microphone to use as a reference for the sound.  Although this process is more
involved, it can be performed with affordable, easy to get, hardware</p>

<p>External speakers positioned 40cm from the device are used to deliver a white
noise sound source.  These speakers don’t need to have a “Flat” frequency
response, but need good coverage from low frequencies (100 hz) to high
frequencies (20khz) is expected which is usually met by portable or medium size
self powered speakers (e.g. Sony SRS-X5 portable speakers) </p>

<p>The key element here is that a step for calibration (using the USB reference
microphone) is performed, to estimate the actual response of the speakers, thus
have a solid reference to compare the built in microphone against.</p>
<table>
 <tr>
    <td width="50%">Start CTS Audio Frequency Microphone Test</td>
    <td width="50%"><img src="/compatibility/cts/images/audio-framework26.png" alt="start mic test" width="300"
        id="start_mic_test" /></td>
 </tr>
 <tr>
    <td>Summary of instructions is displayed</td>
    <td><img src="/compatibility/cts/images/audio-framework27.png" alt="instructions" width="300"
        id="summary_instructions" /></td>
 </tr>
 <tr>
    <td>Set up DUT in a quiet room<br>
        Position the speakers 40cm perpendicular to the center of the screen
        of the DUT (see <a href="#audio_frequency_microphone_test">Audio
        frequency microphone test </a>)</td>
    <td><img src="/compatibility/cts/images/audio-framework28.png" alt="device under test" width="300"
        id="device_position" /></td>
 </tr>
 <tr>
    <td>Report if the device has a headset port:<br>
        <strong>YES</strong> if the device under test has a physical headset port<br>
        <strong>NO</strong> if there is no headset port</td>
    <td><img src="/compatibility/cts/images/audio-framework-mic-port.png" alt="audio microphone test" width="300"
        id="mic_port_check" /></td>
 </tr>
 <tr>
    <td>If the answer was <strong>NO</strong> in the previous step, press
        <strong>Pass</strong> (green check) on the bottom of the test and finish</td>
    <td><img src="/compatibility/cts/images/audio-framework-pass.png" alt="mic headset pass button" width="300"
        id="mic_port_pass" /></td>
 </tr>
 <tr>
    <td>If the answer was <strong>YES</strong> in the previous step, continue
        to connect external speakers.<br>
        Connect external speakers using the headphone/line out connector
        (remember to unplug any USB microphone)<br>
        Press <strong>EXTERNAL SPEAKERS READY</strong></td>
    <td><img src="/compatibility/cts/images/audio-framework29.png" alt="external speakers ready" width="300"
        id="speakers_ready" /></td>
 </tr>
 <tr>
    <td>Press <strong>TEST 1</strong></td>
    <td><img src="/compatibility/cts/images/audio-framework30.png" alt="no USB device" width="300"
        id="no_usb_device" /></td>
 </tr>
 <tr>
    <td>Wait several seconds for test 1 to complete.</td>
    <td><img src="/compatibility/cts/images/audio-framework31.png" alt="testing underway" width="300"
        id="testing_incomplete" /></td>
 </tr>
 <tr>
    <td>When test 1 is completed, results for the built in microphone are shown.</td>
    <td><img src="/compatibility/cts/images/audio-framework32.png" alt="test results" width="300"
        id="testing_complete" /></td>
 </tr>
 <tr>
    <td>Connect a USB Reference microphone (see <a
        href="#audio_frequency_speaker_test">Audio frequency speaker test
        </a>)<br>
        Press <strong>USB REFERENCE MICROPHONE READY</strong></td>
    <td><img src="/compatibility/cts/images/audio-framework33.png" alt="microphone ready" width="300"
        id="mic_ready" /></td>
 </tr>
 <tr>
    <td>Position USB microphone right next to built-in microphone in DUT,
        pointing towards external speakers</td>
    <td><img src="/compatibility/cts/images/audio-framework34.jpg" alt="device position" width="300"
        id="device_position" /><br>
        <img src="/compatibility/cts/images/audio-framework35.png" alt="mic position" width="300"
        id="mic-position" /></td>
 </tr>
 <tr>
    <td>Press <strong>TEST 2</strong></td>
    <td><img src="/compatibility/cts/images/audio-framework36.png" alt="USB detected" width="300"
        id="usb-detected" /></td>
 </tr>
 <tr>
    <td>Wait several seconds while the test 2 runs</td>
    <td><img src="/compatibility/cts/images/audio-framework37.png" alt="test running" width="132"
        id="test_running" /></td>
 </tr>
 <tr>
    <td>When test 2 is completed, results for the USB reference microphone are
        shown.</td>
    <td><img src="/compatibility/cts/images/audio-framework38.png" alt="testing completed" width="300"
        id="testing_completed" /></td>
 </tr>
 <tr>
    <td>Press the <strong>Pass</strong> (only available if successful) or
<strong>Failed</strong> button to record the results.</td>
    <td><img src="/compatibility/cts/images/audio-framework39.png" alt="Pass button" width="300"
        id="pass_button" /><br>
        <img src="/compatibility/cts/images/audio-framework40.png" alt="Failed button" width="300"
        id="failed_button" /></td>
 </tr>
</table>

<h2>Audio frequency unprocessed test</h2>
<p>
For this test, in addition to the USB reference microphone and external
speakers, it is necessary to have access to a Sound Pressure Level Meter (SPL
Meter).
</p>
<p>
Also worth mentioning, in this test the Playback and Test parts of each test
have been given their own button. This was done to help test certain devices
which don't have easy playback capabilities, but still can test the recording
source UNPROCESSED.
</p>
<table>
  <tr>
   <td width="50%">Start CTS Frequency Unprocessed Test.
   </td>
   <td width="50%">
<img src="/compatibility/cts/images/audio-framework41.png" alt="Start test" title="Start test">
   </td>
  </tr>
  <tr>
   <td>Summary of instructions is displayed.
   </td>
   <td>
<img src="/compatibility/cts/images/audio-framework42.png" alt="Summary of instructions" title="Summary of instructions">
   </td>
  </tr>
  <tr>
    <td>Set up DUT in a quiet room.
Connect external speakers using the
headphone/line out connector (make sure there is not any USB microphone
connected).
   </td>
   <td>
<img src="/compatibility/cts/images/audio-framework43.jpg" alt="Photo of DUT setup" title="DUT setup">
   </td>
  </tr>
  <tr>
    <td>TEST TONE<br>
Press [PLAY] and move the SPL meter on front of the speakers
until the level read is 94 dB SPL.
   </td>
   <td>
<img src="/compatibility/cts/images/audio-framework44.jpg" alt="Photo of test tone setup" title="TEST TONE setup">
   </td>
  </tr>
  <tr>
   <td>Move the SPL meter in a straight line from the speakers back and forth,
until the level read on the screen is 94 dB SPL. Make a note of this location.
   </td>
   <td>
<img src="/compatibility/cts/images/audio-framework45.jpg" alt="Photo of SPL meter placement" title="SPL meter placement">
   </td>
  </tr>
  <tr>
   <td>Move the DUT and place the microphone in about the same location found
in the previous step.
Press [TEST].
The DUT performs a short audio capture
and automatically stops the playback.
Playback can also be stopped by pressing
[STOP] if needed.
   </td>
   <td>
<img src="/compatibility/cts/images/audio-framework46.png" alt="Screenshot of audio capture" title="Audio Capture">
   </td>
  </tr>
  <tr>
    <td>TEST NOISE<br>
Position the speakers 40cm perpendicular to the center of the
screen of the DUT (see <a href="#audio_frequency_microphone_test">Audio frequency microphone test</a>).
   </td>
   <td>
<img src="/compatibility/cts/images/audio-framework47.png" alt="Photo of speaker placement" title="Speaker placement">
   </td>
  </tr>
  <tr>
   <td>Press [PLAY].
Press [TEST].
Wait for the test to complete. It will
automatically stop the plabyack.
<p>
Playback can also be stopped by pressing [STOP] if needed.
   </td>
   <td>
<img src="/compatibility/cts/images/audio-framework48.png" alt="Screenshot of running test" title="Running test">
   </td>
  </tr>
  <tr>
    <td>TEST USB BACKGROUND<br>
      Connect a USB Reference microphone (see <a href="#audio_frequency_speaker_test">Audio
        frequency speaker test</a>).
Locate USB microphone close to DUT microphone
<p>
Press [TEST].
<p>
This runs a short test and displays results on screen.
   </td>
   <td>
<img src="/compatibility/cts/images/audio-framework49.jpg" alt="Photo of USB refernce mike" title="USB reference mike">
<img src="/compatibility/cts/images/audio-framework50.png" alt="Screenshot of running test" title="Running test">
   </td>
  </tr>
  <tr>
    <td>TEST USB NOISE<br>
Leave USB microphone in the same position as in the previous
test.
<p>
Press [PLAY].
Broadband noise should play from external speakers.
Press [TEST].
A short test will run and display results on screen.
   </td>
   <td>.
<img src="/compatibility/cts/images/audio-framework51.png" alt="Screenshot of USB noise test" title="USB noise test">
   </td>
  </tr>
  <tr>
   <td>When the 4 parts of the test are completed, the global results are
updated with PASSED/FAILED information for each test.

If needed, repeat
individual steps of the test.
   </td>
   <td>
<img src="/compatibility/cts/images/audio-framework52.png" alt="Test results" title="Test results">
   </td>
  </tr>
  <tr>
   <td>Press the Pass (only available if successful) or Failed button to record
the results.
If the DUT does not define the Audio Frequency Unprocessed feature,
running the test is required, but success in all measurements is not mandatory.
   </td>
   <td>
<img src="/compatibility/cts/images/audio-framework53.png" alt="Test passed" title="Test passed">
<p>
<img src="/compatibility/cts/images/audio-framework54.png" alt="Test not passed" title="Test not passed">
   </td>
  </tr>
</table>



  </body>
</html>