この記事は Don Turner による Android Developers Blog の記事 "An update on Android's audio latency" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
この記事は、Android エコシステムにおける最新の変更点である、人気 Android デバイスでのオーディオ レイテンシ(遅延)に着目し、Android のリアルタイム オーディオ アプリへの適合性について説明します。
この 4 年間で、オーディオ レイテンシを改善するたくさんのアクションを行ってきました。
今までに実施してきたアクションと、デバイス メーカーがあらためてオーディオ レイテンシの改善に注力したことによって、デバイスのエコシステム全般で問題が大きく改善されています。人気 Android スマートフォンの平均レイテンシは 40 ミリ秒以下に下がりました。これは、リアルタイム アプリに求められる範囲に十分収まっています。
データを細かく分析すると、2017 年には最大値と最小値に大きな差(222 ミリ秒)があったことがわかります。
これを 2021 年のデータと比較してみます。差は 8 分の 1 のわずか 28 ミリ秒になり、はるかに一貫したオーディオ体験が提供されています。また、 2017 年は人気機種のメーカーは 1 社だけでしたが、現在は複数の OEM が含まれています。それを踏まえると、この結果はとても興味深く、さらに、リストの多くのデバイスはハイエンドのフラッグシップ モデルだけではないところが印象的です。
ここまでは、ラウンドトリップのオーディオ レイテンシについて説明してきました。ラウンドトリップのレイテンシには、オーディオ チェーンの 3 つのコンポーネント、すなわちオーディオ入力、オーディオ処理、オーディオ出力が影響しています。
多くのリアルタイム オーディオ アプリでは、入力オーディオではなく、画面のタップイベントに基づいてオーディオが生成されます。この種のアプリでは、「タップ音」のレイテンシ、すなわち画面をタップしてから音が聞こえるまでの時間が非常に重要です。このレイテンシは、タッチ スクリーンのタップに 10-35 ミリ秒(最新の Android デバイスでは、通常 20 ミリ秒)ほどかかることによります。
ラウンドトリップのレイテンシからタップ音のレイテンシを推定する場合は、オーディオ入力レイテンシ(通常 5 ミリ秒)を引き、タッチのレイテンシ(通常 20 ミリ秒)を加えることができます。つまり、ラウンドトリップのレイテンシに 15 ミリ秒を加えることになります。以上の数値を考慮すると、人気 Android スマートフォンの平均タップ音レイテンシも、ほとんどのリアルタイム オーディオ アプリに求められる範囲に十分収まっていると言えます。
オーディオ レイテンシは Android エコシステム全体で大幅に減少していますが、この作業はまだ完成にはほど遠い状態です。ラウンドトリップのレイテンシが 20 ミリ秒というのは Android プロフェッショナル オーディオ アプリの要件で、10 ミリ秒は長期的な目標のままです。また、現時点では、あまり普及していないデバイスの中には、まだオーディオ レイテンシが大きいものもあります。ただし、オーディオ レイテンシのために Android アプリの開発を控えていた方は、それを再考する時期かもしれません。
まずは、Oboe スタートガイドまたは動画チュートリアルをご覧ください。