スマートフォンは通常、通話、写真、アプリといった機能で説明されます。しかし、代わりにそれが内蔵しているもので説明してみましょう。48 kHzでサンプリングする十分にキャリブレーションされたマイク、2、3台のカメラ、高輝度なLEDトーチ、バイブレーションモーター、加速度センサー、そして正確なレートで点滅できるスクリーン。それはスマートフォンではありません。タッチスクリーンを備えた、小さな実験室です。

ほとんどのアプリは、これらの部品のいずれか1つを本来の用途で一度に使用します。面白い測定が始まるのは、それらを本来の用途以外で、かつ組み合わせて使用するときです。カメラの光源としてのトーチ、加速度センサーの加振器としてのバイブレーションモーター、実験のもう片方の半分としての2台目のスマートフォン。この記事は、難易度が上がっていく3つの段階に分けて、その領域を示した地図です。

ティア1:1つのセンサーによる受動的な測定

最もシンプルなツールは、1つのセンサーを世界に向け、返ってくるものを分析します。

これらに共通する原則は、プラットフォームが許す限り生(RAW)に近い状態でキャプチャすることです。Androidでは、マイクの未処理パスを要求すること(測定対象の信号そのものを書き換えてしまう自動ゲイン制御やノイズ抑制は行わない)、そして測定が光レベルの正確性に依存する場合は常にカメラの自動露出とホワイトバランスをロックすることを意味します。

ティア2:スマートフォン自身が刺激を与え、その応答を測定する

スマートフォンにはアクチュエーターも搭載されており、アクチュエーターとセンサーを組み合わせることで、受動的な測定から能動的な計測器へと進化します。

能動的なツールには、受動的なツールにはない特性があります。それは、与える刺激が既知であるということです。刺激をコントロールできれば、絶対的なレベルではなく、比率や応答に基づいて機能を構築できます。これにより、各デバイスをキャリブレーションすることなく、異なるスマートフォン機種間で結果を比較できるようになります。

ティア3:2台のスマートフォンによる1つの実験

壁がどれだけの音を遮るか、窓がどれだけの光を透過するかなど、いくつかの測定値は本質的に両側性です。1台のスマートフォンが同時に両側に存在することはできませんが、2台あれば可能です。そして、たいていの家庭には2台あります。

実験器具を使わずにこれを実現する秘訣は、同一レシーバー比(same-receiver ratio)にあります。送信側のスマートフォンが、自己識別可能な刺激(段階的なトーンスイープや、一定のレートで点滅するスクリーンなど)を再生します。測定側のスマートフォンは、送信側への進路を遮るものがない状態(リファレンス)と、壁や窓を通した状態の2回キャプチャします。同じマイクまたはカメラで取得されたこれら2つのキャプチャの比率のみが、最終的な測定値として使用されます。送信側の音量、受信側の感度、部屋の影響、これらすべてが相殺されます。そのため、2台のスマートフォン間でクロック同期もケーブルも、相互のキャリブレーションも必要ありません。(詳細は遮音に関する記事で詳しく説明しています。)

3つの段階すべてに共通する設計ルール: 絶対レベルを信用しないこと。スマートフォンのマイクやカメラの性能は機種によって異なりますが、共振、減衰率、次数領域パターン、同一レシーバー比などはほとんど変わりません。相対的な量から構築された機能はデバイスをまたいで機能しますが、絶対的な量から構築された機能は、常にデバイスごとのキャリブレーションが必要になります。

単一の測定値からカタログへ

単一の測定値だけでは単なるトリビアにすぎません。測定値がモノ(今日の測定、そして来週の測定対象となるこのメロン、このホイール、この壁など)と結びついたときに、知識へと変わります。そのため、すべての測定値はカタログ内のオブジェクトの下に整理できます(カテゴリ → オブジェクト → ユースケース → 測定値)。さらに、測定した後に、グラウンドトゥルース(正解)ラベルを付与することもできます。たとえば、メロンをタップし、切り開いて中身を確認し、その結果を記録します。多くのユーザーと多くのオブジェクトでこのクローズドループを繰り返すことで、タップテストの分類器は実験室のサンプルではなく、本物の果物でトレーニングされるようになります。

また、単一の測定値ではなく一連の作業(自転車のホイールのチューニングや、部屋の遮音性のチェックなど)については、ガイド付きのアクティビティが、いくつかのツールを正しい順序で連携させ、測定の合間に何をすべきかを指示し、その結果を同じカタログに書き込みます。スポークチューニングの記事では、その最初のプロセスを解説しています。

今後の展望

ツールのリストは増え続けています。そして、ツールの追加はアドオン形式で行えるようにアーキテクチャが設計されています。つまり、レジストリに新しいエントリを追加するだけでよく、既存の保存内容を作り直す必要はありません。すべてがデバイス上でオフラインで実行され、1秒未満で結果が出ます。オフラインファーストの記事では、この制約が単なる機能のチェックボックスではなく、なぜシステムを支える重要な柱(耐荷重)であるのかを説明しています。