音频延迟测量

延迟 是一个重要的系统性能指标。 虽然存在多种音频延迟指标,但一个有用且易于理解的指标是往返延迟,其定义为音频信号进入移动设备输入、由应用程序处理器上运行的应用处理并从输出退出的时间。

Round-trip audio latency on
device

图 1. 设备上的往返音频延迟:Toutput - Tinput

本页提供了部分 Nexus/Pixel 设备和 Android 平台版本的往返音频延迟测量结果。

为什么我们要测量延迟

Google 测量并报告延迟,以便 Android 应用程序开发者拥有所需的数据,从而就实际设备上的可用延迟做出明智的决策。 通过分享部分 Nexus 和 Pixel 设备的延迟数据,我们希望鼓励整个 Android 社区测量、发布和减少 *所有* Android 设备上的延迟。 请加入我们,共同致力于减少音频延迟!

应用对延迟的影响

信号处理可能会给延迟增加以下类型的延迟

  • 算法延迟。 此延迟是固有的,不随 CPU 变化。 例如,有限脉冲响应 (FIR) 滤波器会增加延迟。
  • 计算延迟。 此延迟与所需的 CPU 周期数有关。 例如,信号衰减通常通过乘法运算完成,该运算所需的周期数取决于 CPU。

我们如何测量

我们使用 Dr. Rick O'Rang 音频环回适配器和音频反馈(Larsen 效应)测试进行了本页列出的测量。 测量假设应用程序信号处理增加的算法延迟为零,计算延迟接近于零。

我们出于以下几个原因通过耳机接口测量往返延迟

Round-trip latency
via headset connector

图 2. 通过耳机接口的往返延迟:Toutput - Tinput

  • 重要的音乐应用(如吉他和语音处理)使用耳机接口。
  • 测量设备上麦克风和扬声器的往返延迟可能很麻烦,因为很难防止露天环境中的反馈环路进入不受控制的振荡。
  • 设备上传感器体积小巧,为了实现小尺寸而牺牲了频率响应。 为了补偿,应用了数字信号处理,但这会增加设备上路径的算法延迟。

在某些情况下,设备上麦克风和扬声器的延迟确实很重要,但它们通常是单向的,而不是往返的。 测量输出延迟测量输入延迟介绍了测量单向延迟的技术。

示例测量

下面列出的测量结果特定于版本号。 设备按初始发布的大致顺序和平台版本列出;您也可以在图表中查看延迟。 测试应用程序使用基于 OpenSL ES 的 Android 原生音频 API。

型号 平台
版本
构建
编号
采样率
(Hz)
缓冲区大小
(帧)
缓冲区大小
(ms)
往返
延迟 (ms)
± 一个缓冲区
Nexus One 2.3.6 GRK39F 44100 768 17.4 345
Nexus S 2.3.6 GRK39F 44100 1024 23.2 260
Nexus S 4.0.4 IMM76D 44100 1024 23.2 260
Nexus S 4.1.2 JZO54K 44100 880 20 210
Galaxy Nexus 4.0.1 ITL41D 44100 976 22.1 270
Galaxy Nexus 4.3 JWR66Y 44100 144 3.3 130
Nexus 4 4.2.2 JDQ39E 48000 240 5 195
Nexus 4 5.1 LMY47O 48000 240 5 58
Nexus 10 5.0.2 LRX22G 44100 256 5.8 36
Nexus 10 5.1 LMY47D 44100 256 5.8 35
Nexus 7
2013
4.3 JSR78D 48000 240 5 149
Nexus 7
2013
4.4 KRT16S 48000 240 5 85
Nexus 7
2013
5.0.2 LRX22G 48000 240 5 64
Nexus 7
2013
5.1 LMY47O 48000 240 5 55
Nexus 7
2013
6.0 MRA58K 48000 240 5 55
Nexus 5 4.4.4 KTU84P 48000 240 5 95
Nexus 5 5.0.0 LRX21O 48000 240 5 47
Nexus 5 5.1 LMY47I 48000 240 5 42
Nexus 5 6.0 MRA58K 48000 192 4 38
Nexus 9 5.0.0 LRX21L 48000 256 5.3 35
Nexus 9 5.0.1 LRX22C 48000 256 5.3 38
Nexus 9 5.1.1 LMY47X 48000 256 5.3 32
Nexus 9 6.0 MRA58K 48000 128 2.6 15
Nexus 6 5.0.1 LRX22C 48000 240 5 65
Nexus 6 5.1 LMY47I 48000 240 5 42
Nexus 6 6.0 MRA58K 48000 192 4 33
Nexus 5X 6.0 MDA89E 48000 192 4 18
Nexus 5X 8.0.0 OPR4.170623.020 48000 192 4 18
Nexus 5X 8.1.0 OPM2.171019.029.C1 48000 192 4 18
Nexus 6P 6.0 MDA89D 48000 192 4 18
Nexus 6P 8.0.0 OPR5.170623.014 48000 192 4 18
Nexus 6P 8.1.0 OPM5.171019.019 48000 192 4 18
Pixel 7.1.2 NHG47L 48000 192 4 18
Pixel 8.0.0 OPR3.170623.013 48000 192 4 18
Pixel 8.1.0 OPM1.171019.021 48000 192 4 18
Pixel XL 7.1.2 NHG47L 48000 192 4 18
Pixel XL 8.0.0 OPR3.170623.013 48000 192 4 18

图 3. 往返延迟