マイクはどうやって呼吸を聞き取っているか
音を録音していないのに、アプリはどうやって呼吸を測っているのか。ノイズフロア、周囲の音に合わせて変わるしきい値、吐く息の始まりと終わりの見つけ方。
約6分で読めます
アプリは測定のために音を録音していません。マイクから入ってくる音の流れはディスクに書き込まれません(唯一の例外は、別途同意した場合の音声サンプルの共有です)。1秒間に何十回もその瞬間の音の大きさが計算され、残るのはこの数値だけです。つまりアプリの手元にあるのは音声ファイルではなく、数値の列です。上がったり下がったりする1本の線です。
測定はすべて、この線をもとに行われます。
まず静けさを測る
セッションの始まりに、3秒間聞き取る時間があります。この間に部屋のノイズフロア、つまり周囲の音を測ります。冷蔵庫のうなり、外の車の音、デバイス自体の電子ノイズ。
平均をとるのではなく、その3秒間のいちばん静かな瞬間を見ます。こうすれば、その間にスマートフォンを机に置いたり、誰かが咳をしたりしても、セッション全体のしきい値が狂うことはありません。
セッション中に部屋を測り直す
部屋の状態はセッション中に変わることがあります。エアコンがついたり、窓が閉まったり。そのため、ノイズフロアはセッション中も測り直されます。セッションは止まらず、何かを求められることもありません。
アプリはセッション中、ときどき呼吸と呼吸の間のいちばん静かな瞬間を見て、ノイズフロアを測り直します。吐く息そのものは、この測定には入りません。
短い音ではノイズフロアは動きません。誰かが一瞬話したり、ドアがバタンと閉まったりしても、しきい値は上がりません。エアコンがついたり消えたりするなど、部屋の状態がずっと変わったときには、ノイズフロアがそれに合わせます。
部屋がどれだけ騒がしくても、しきい値が吐く息を聞き取れなくなるほど上がることはありません。
セッション中に出る「呼吸が聞き取りにくい」や「少し離して」といった注意と、レポートの呼吸の音は、どちらも吐く息ひとつひとつをその時点のノイズフロアと比べて測っています。2つは同じ数値を見ています。
しきい値は絶対ではなく、ノイズフロアが基準
音が「吐く息」と数えられるために、決まったデシベルを超える必要はありません。必要なのはノイズフロアより一定量上に出ることです。静かな部屋ではこのしきい値は低く、騒がしいカフェでは高くなります。
しきい値をどれだけ上にするかは、呼吸法によって変わります。口から吐く息(ロング呼気、口すぼめ呼吸)は大きく出ます。鼻から吐く穏やかな息(コヒーレント呼吸、ボックス呼吸)はずっと小さくなります。片方の鼻から吐く息は、そのどれよりも小さい音です。呼吸法ごとにそれぞれのしきい値で聞いています。すべてに同じ基準を当てはめると、鼻の呼吸法が聞き取れなくなってしまうからです。
吐く息の始まりと終わり
そのままの音の大きさは揺れが激しく、直接は使えません。まずなめらかにします。新しい測定値をひとつ前の値と混ぜ合わせることで、1回のカチッという音が吐く息になってしまうのを防ぎます。
なめらかにした線がしきい値を超えると、吐く息が始まります。音がしきい値の下に下がり、しばらくそこにとどまると、吐く息は終わったとみなされます。すぐあとに続く聞き取れる吸う息で吐く息が長くなることはなく、2回の呼吸が1回と数えられることもありません。
カチッという音のようなごく短い音は、吐く息とは数えられません。
静かな部屋とタブレットの問題
しきい値をノイズフロア基準にするやり方は、たいていの場合うまくいきますが、落とし穴がひとつあります。ノイズフロアが本当にとても低いと、相対的なしきい値が敏感になりすぎて、部屋の小さな物音まで吐く息と数えてしまうことがあるのです。そのため、ノイズフロアが下がれる下限を設けています。
下限が高すぎると、今度は逆のことが起こります。タブレットのようにマイクが遠いデバイスでは、吐く息の分が埋もれてしまい、呼吸が聞き取れなくなります。そのため下限の位置は、推測ではなく実際の録音をもとに決めています。どうやっているかはしきい値は実際の録音でどう測っているかの記事で説明しました。
速い呼吸は別扱い
この方法には限界があります。吐く息が終わったことを知るには、そのあとに短い静けさが必要です。1秒に1回より速く吐く呼吸法では、その静けさがまったく生まれません。
そのためカパラバティは別の方法で測っています。吐く息をひとつずつ切り分けようとするのではなく、音の線がピークに達した瞬間を数え、その間隔がどれだけ規則的かを見ます。1回の吐く息が2回数えられることはありません。