Rubbinput: 水場での指こすり音による操作インタフェース

Rubbinput

水で濡れた滑らかな表面を指でこすると「キュッ」という音(Squeak Sounds)が鳴ります。人はそのこすり音を意図的に鳴らすことができるので、その音からこすり方の情報を元に機器等の操作に利用するユーザインタフェースRubbinputの研究を行っています(こする=rub、入力=input から Rubbinputと呼称)。湯水や滑らかな面で利用できるので、例えば家の中では浴室や洗面台、キッチンなどの水場において、濡れた・汚れた手で機器を直接操作したくない場面での操作に利用できます。具体的には、キッチンにおいてインターネットのレシピサイトのWebページをスクロールさせたい、キッチンにいて離れた場所にあるテレビの音量を大きくしたい、お風呂場でシャワーや浴槽のお湯の温度を上げ下げしたい、などの場面で活用できます。

Rubbinputでは、こすり音から「こする時間長さ」(Duration Time)、「こする指の本数」(Number of Fingers)、「往復こすり動作」(Reciprocating Motion)の情報を抽出し、様々な機器やアプリケーションの操作への割り当てができます。例えば、こする時間長さで音量調節や明るさ調節、画面のスクロール量を変えたり、こする指の本数で「Yes」「No」を返答したり、往復こすり動作で特定のイベント操作をすることなどが考えられます。

仕組みとしては、浴槽の内側やキッチンの天板の裏側などにピエゾセンサ(コンタクトマイク)を1つ取り付け、こする面の固体振動を音響信号として処理することで実現しています。センサを取り付けた物体から直接振動を計測しているので、話し声や物音などの周囲の空気中の音(ノイズ)はほとんど入らず、S/N比の点で大変良い状況でこすり音が得られます。こすり音自体は、一定以上の音量の信号の周波数成分に調波構造がある程度長く続く、という条件で検出します(人が「キュッ」という音に、音の高さを感じられることが調波構造を持つ証しです)。手や物が表面にぶつかった音は瞬間的な音であり、調波構造が時間的に長く続くことはまずないため、こすった音か否かがまずわかります。その上で、こする時間長さ、指本数、往復動作などの情報を並行して抽出・検出します。

こする時間長(Duration Time)の抽出
 単純に調波構造が検出されてから、検出されなくなるまでの時間長さを利用します。
指本数(Number of Fingers)の検出
 こすった各指からはそれぞれ基本周波数(F0もしくはFO)の違う調波構造を持つ音が鳴るという仮定を置き、複数本の指でこすった場合に得られる音響信号は調波構造が折り重なった(重畳された)形で現れることに着目して検出します。具体的な手法としては、得られたこすり音の周波数成分のピーク群が、一番低いピーク(いずれかの指からの基本周波数に相当)の整数倍ピーク(調波構造)からどれだけ外れたものが存在するかを計算して、その外れ度合いを計算して指本数を検出します(実際にはその外れ度合いが時間的にどう続くかも見ています)。ただ、現実的な問題として、2本指と3本指を正確に鳴らし分けることが困難な人が多いため、現時点でのRubbinputの実装では1本指か複数本指かのどちらかでの検出のみとしています。
往復動作の検出(Reciprocating Motion)
 こする際に、手を同じ方向に2度動かしてこすり音を鳴らす場合と、往復動作でこすり音を鳴らす場合とでは、2度鳴るこすり音の時間間隔(無音時間の長さ)が違います。往復動作のほうが当然時間間隔が短くこすり音が鳴るわけで、多くの人の実験データから特定時間以下であれば往復動作と見なせることがわかりました。ですので、Rubbinputでは2つのこすり音に対してその特定時間以下か否かを判断すること(無音区間に対する閾値処理)で、往復動作か否か判断しています。

Rubbinputでは、これら3つの抽出・検出機能をリアルタイム音響信号処理として実装しており、また様々な機器操作やアプリケーション操作を行うためのユーザインタフェースイベントへの割当機能を持たせています。現状ではPythonで実装されており(部分的にCythonで高速化)、Raspberry Pi3でも動作します。

対外発表
  • Ryosuke Kawakatsu and Shigeyuki Hirai, Rubbinput: An Interaction Technique for Wet Environments Utilizing Squeak Sounds Caused by Finger-Rubbing, In Proc. of PerCom2018, pp.643-648 (2018)
  • 川勝椋介, 平井重行, 擦り音に着目した水場におけるインタフェース, 情報処理学会研究報告 2017-MUS-115-26 (2017)
  • Ryosuke Kawakatsu and Shigeyuki Hirai, Interaction Technique Using Acoustic Sensing for Different Squeak Sounds Caused by Number of Rubbing Fingers, In Adjunct Proc. of UIST 2016, pp.151-153 (2016)
  • 平井重行, 隅田智之, 川勝椋介, 音響入力を利用した実世界指向の低レイテンシ入力インタフェース技術 -叩打音やこすり音を具体例として-, CEDEC 2016 (2016) [slide]
  • 川勝椋介, 平井重行, 擦り音による指本数識別を利用したユーザインタフェース, 情報処理学会インタラクション2016 インタラクティブ発表 1A-05 (2016)
  • 川勝椋介, 平井重行, Bathcratch+: 擦る指の本数識別機能を持つDJスクラッチ演奏システム, 情報処理学会研究報告 2016-MUS-110-4 (2016)
作品展示、メディア取材・出演など