読者です 読者をやめる 読者になる 読者になる

fresh digitable

セミコロンたちが躍動する おいらのコードを 皆さんに 見せたいね

VRとかに効くかもしれない頭外音像定位

仮想現実(Virtual Reality)とか拡張現実(Augmented Reality)の技術ネタがAndroid界隈でにわかに盛り上がりつつあるので自分も何かやってみようと思っているんだけど、私にはOpenGLとかUnityとかいったところの視覚まわりのツールの知識がほとんどない。 やってみてはいるんだけど。

あのゴーグルを覗きこむと画が3Dっぽく見えるというのはなかなか感動するんだけど、音がついてこないのは自分的に物足りない。むしろ私がVRでやりたかったのは高臨場感再生じゃなかったっけ?と学生時代を思い出してちょっと楽しくなってしまったので、何か始めるときの足がかりとして書いてみる。

高臨場感再生とは

臨場感とは、読んで字の如く「まるでその場にいるかのような感覚」のこと。音の世界では5.1chサラウンドとかDolbyさんのところのやつとかが高臨場感再生技術にあたる。臨場感を出すためには、

  • 方向感:その音がどこから来たのかわかること
  • 残響感:音の響き方を再現すること

が大事だと言われている*1

スピーカを使う方法

例に挙げた2つの技術はスピーカを使うものだ。ステレオならスピーカは2個で済むが、5.1chはウーファーを入れて6個必要だ。6個置くからにはそれなりに広い部屋が必要だし、自分が音を聞こうと思っている場所でいい感じに聞こえるように、いい感じにスピーカを配置しなければならない。

更に難しいのは、今いる部屋の響きを消すことだ。スピーカから出てくる音がいかにカーネギー・ホールの響き(残響感)を再現していたとしても、自分の耳に届くころには再生環境の響きによって歪められてしまう。

とはいっても人間が受け取る外部からの情報の8割は視覚らしい*2ので、映像と一緒に音を流すとちょっとぐらいの聞こえ方のズレは気にならない*3そもそもカーネギー・ホールなんて行ったことないからよくわからないしな。元も子もないことをいくつか言ったような気がするが、Oculusとかcardboardにはスピーカよりもイヤホンやヘッドホンを着けて聞いたほうが没入感が高まる気がする。強引かもしれない。

イヤホン・ヘッドホンを使う方法

イヤホンやヘッドホンを使った高臨場感再生技術の一つに頭外音像定位がある。最近はバイノーラル再生/録音のコンテンツが出始めていると思う。バイノーラルはダミーヘッドやマネキン(Head And Torso Simulator: HATS)を使って集音し、再生する頭外音像定位の手法である。立体音響とか言う言葉もあるようだが、これはよくわからない。スピーカとかヘッドホンとかが関係無い、臨場感を実現する技術全般を指すものかな、と初めて聞いた時に感じた。

頭外音像定位(Out-of-Head Localization)

頭外音像定位を平易な言葉で言い換えると、「頭の外から音が聞こえてくること」となる。至極当然のことを言っているようであるが、イヤホンやヘッドホンで音楽を聞いている時はそうではなく、ボーカルやその他のバンドメンバーが頭の中で演奏しているように聞こえるはずだ。

頭の中から音が聞こえてくるように感じることを「頭内定位」という。イヤホンやヘッドホンで音を聞くと普通は「頭内定位」してしまうので、頭の外から音が聞こえるようにしよう、というのが頭外音像定位である。

原理

スピーカから出てきた音が鼓膜にあたった時の音と、イヤホンから出てくる音が鼓膜に当たるときの音とを等しくする

手法と特徴

ダミーヘッドやマネキンを使う方法

この方法が初めて紹介されたのは以外にも古く、1886年のパリ万博でのことらしい*4。私がいた研究室ではブリューエルアンドケアー社のHATSを使っていた。

頭や体の形、大きさは成人と同じぐらい。耳もまあ似せて作ってある。両耳にそれぞれマイクが入っている。試したことはないが、喋らせる事もできる(口から音を出せる)らしい。耳の中にあるマイクで録音したものをイヤホンやヘッドホンで聞くと、頭外定位するというものである。このマネキンに似ていれば似ているほど、はっきりと頭外定位する。

伝達関数を使う方法

私が研究していたのはこの方法。音がスピーカから出て耳に伝わるまでに受ける変換を関数の形で表現する。頭外音像定位では、スピーカから鼓膜へ到達するまでに音が受ける変換が最も重要で、その伝達関数をHRTF(Head-Related Transfer Function: 頭部伝達関数)という。

HRTFの特性はその人の頭の大きさや形、耳のひだの様子などによって決まる。音が到来する方向によっても特性が変わるので、色んな角度ごとのHRTFがある。方位角θ度、仰角φ度みたいな。

HRTFは測定したり、頭の形を3Dモデリングしたりして求める。

課題

頭外定位する信号をうまく作れないと、頭内定位したままになったりする。また、頭内定位とはなんか違うんだけど距離感がない、すごく近い、頭にへばりつく感じがあるとか、前から聞こえてくるように作ったはずの音を聞いてみると後ろから聞こえる(前後誤反転)という現象が起きたりする。

音はいろんな方向からやってくる

例えばFPSのゲームでめちゃくちゃリッチな頭外音像定位をやろうとする場合、音源とプレイヤーとの位置関係が場合によって異なるため、いろんな角度のHRTFが必要になる。方位角15度ごと、仰角15度ごとなら24×12=288回の測定が必要である。十分に充実した設備*5で測定できれば10分ぐらいで終わるかも知れない。まあそんなものは都合よく近くにあるものではないので、普通は30分とか1時間コースである。

しかし、測定に時間がかかりすぎるのは問題である。角度Aと角度Bで測定した時の頭の位置が違っていてはいけないので、被測定者は動いてはいけない。また、音は空気の温度によって速度が変わってしまうので、最初の方と後のほうとで温度の変化があると、これも誤差の原因になる。

個人差が大きい

HRTFは頭や耳の形によって決まる。全く同じ顔の人がいないように、同じHRTFを持つ人もいない。人によってかなり変わってしまうので、使い回しができない。HATSで代用するのもうまくいかないケースが多いということである。

まとめ

効くかどうかもよくわからん感じになってしまったがしばらく遊べるように準備をしていきたいと思っている。

追記(2017/5/25)

いろんな人に体験してもらえるようにしたくてアプリを作り始めた。

akihito104.hatenablog.com

*1:http://ci.nii.ac.jp/naid/110003107485

*2:http://square.umin.ac.jp/oka-anat/kosaka/

*3:参考:マガーク効果 http://www.youtube.com/watch?v=jtsfidRq2tw

*4:http://www.asj.gr.jp/qanda/answer/126.html

*5:スピーカで表面を敷き詰めた球体があってその中に入るとか