mixture-art@Q
技術+アイディア+世俗+なんとなく思ったこと、すべての融合がmixture-art
「骨伝導ヘッドフォンってどうなの?」から始まるオーディオ談義【その2:音像定位と頭部伝達関数】
Categories: No Music No Life


「骨伝導のヘッドフォンってどうなの?」

という友人の問いから始まるオーディオ談義第二回。

今回はオーディオにおいて非常に重要な

音の方向定位

について。

そもそも人間は音の到来方向がわかるという機能を持っている。

別の言葉では『音像定位』という。

きっと音の映像/残像が見えるって感覚から来てるんだろうね。

さて、

この「音の到来方向がわかる」という感覚だが、

あまりに普通過ぎてなんの疑問もない。

後ろから呼びかけられればわかるし、二階で物音がしたら上だとわかる。

しかし、考えてもみてくれ。

音なんていう見えないものの来た方向がなんでわかるのだろう?


これは一般的に以下の2つの要素によって成り立っていると考えられている。

  1. 左右の耳で受け取った音量の差
  2. 周波数特性

前者は簡単な話だ。

右が大きければ右寄りだろうし左が大きければ左寄り

以上。

しかしこれだけだと前後、上下がわからない。

そこで後者の周波数特性の出番だ。

これの説明はちょっと厄介なのだが、一旦ユルく理解するためだけに簡略化して例示すると

高域(高い周波数)が聞こえにくかったら下の方から来た音だ!

そして中域がこのくらいこもって聴こえるのは斜め45度後ろだ!

とかいうような判断プロセスのことだ。

これを先ほどの左右の音量差の聞き分けと合体させれば見事に前後左右上下どこから来たかわかる。

<< 注意 >>
なお上記の文章は全くもって厳密ではないので真に受けないで欲しい。あくまで理解を促すためだけの例だ。


とまぁ簡単に書いてしまったが続けてちゃんと詳細も説明したい。

実際のところこの特性

頭部伝達関数 Head Related Transfer Function

はもっと複雑で、
さらに個人の頭の形や耳介の形、体型などの要素によっても異なる。

それを人間は経験的に学習しているとされている。

例えば以下が方向ごとの聴こえ易さのグラフ(横軸は周波数)だとする。

方向定位

えーと、グラフはあくまで模式的に書いた例だが、この意味を解釈すると、

正面が一番なんでも素直に(フラットな特性で)聴こえて、真上は高い周波数(グラフ右の方)は聞き取りにくいんだけどある周波数(とがってるとこ)だけよく聴こえる。上45度もそれに近いんだけどその『よく聴こえる』周波数が異なる。下45度はほとんど真っ正面と同じカンジで聴こえるんだけど若干高い周波数が聴こえにくい、真下はほとんどしっかり聴こえなくて低い周波数が割と聴こえるだけ。

なーんていう、ずいぶんとごちゃごちゃした話になるわけだ。

しかし、

こういう一覧表を人間はぜーんぶ理解していて、音を聴いたら瞬時に

どれに当てはまるか = どの方向から来た音か

を判断しているというのだ。驚き。

しかも人間はこれが『1度ズレるとわかる』のだという。驚き。


ここで、音像定位についての理解が深まる一例を挙げよう。

上述のとおり人間の方向定位というのはこのとおりひじょーに出来が良いのだけど、
聞き分けが極めて困難な音というものが日常に存在する。

それは

救急車等のサイレン

だ。

先ほどの『判断プロセス』に立ち返ってみよう。

「高い周波数が聴こえにくいからホニャホニャだ」

と、のたまっているが、これって

「高い周波数が元々含まれてない音だったらどうなるの?」

当然答えは

聞き分けられないだ。

まぁとはいえ言ったように周波数特性ってのはそんな単純なものではないし、人間の脳みそは柔軟だ。

低い周波数や周辺の周波数の特性差からも判断可能だろうし、

高い周波数の音がそこそこ含まれてたら判断可能だろう。

しかし、例えば極端な話

ある1つの周波数しか含まない音というのを考えてみよう。

例えば1kHzのサイン波などだ。

これはかな〜り方向定位は難しい。

ぜひ実験してみて欲しい。

できれば広くて遮蔽物がない場所で遠目から鳴らすのが良い。

(ちなみに以下はyoutubeで見つけたサンプルだ。ちょうど良い)


サイレンは割とこれと近くて、含まれている周波数の範囲がかなり狭い。

加えてかなりの大音量で建物にたくさん反射して聴こえるからそれがより一層方向判断を困難にしている。

よく救急車が
自分のいる車線に来ているのか対向車線かすらもわからない
ということを経験すると思う。

ここまで極端な弁別の難しさはその周波数特性によるところが大きい。

なお「じゃあなんでそんなことがわかっててサイレンの音を聴き易いように直さないの?」と思うかもしれない。
実はあの音って『救急車の中に一日中いるひと』のストレスを低減することとかにも配慮して作られてる。
(これもれっきとした研究分野だ)

ここまで理解できる通り『たくさんの周波数を含んでいる音』というのは方向定位し易いのだが、
実はそれって増やせば増やすほど限りなく『ノイズ』に近づいていく。
ノイズを一日中聴かされるほどツラいもんはないからね。

そういうわけでアノ音はまぁ仕方ないのだ。



さて、

この例とよく似たモノとしては

一昔前の携帯の着信音

なんかも挙げられる。

昔の音源ってそんなたいしたものじゃないから単音しか出なかった。
しかもかなり陳腐な単音ね。
つまり限りなく『周波数の要素が少ない音』だ。

サイレンと同じでこういう音は弁別が難しい。

携帯が鳴ってるんだけどポケット?バッグの中?
どこから鳴ってるかわからない

とか

他人の着信なのに自分かと思った

とか皆経験があると思う。

意外と身近に『方向定位』『周波数特性』を実感しているのだ。


さて本論である『骨導』の話に一瞬だけ戻すと、

この方向定位に関しては

気導は方向定位可能だが、
骨導では不可能だ

と一般的には言われている。

これは気導には頭部伝達関数が適応できるが、
骨導は骨を伝わってくる以上その『伝達関数』に当たるものが無い

したがって弁別が不可能だ

ということだ。

まぁそんな気もしなくもなくもない。



さて、

ということで、

THE 余談

だが、

もうちょっと深い理解をしたいヒト用に『頭部伝達関数』に関する説明を追加しよう。

頭部伝達関数を得るプロセス

というのはまぁ色々あって、大きくわけると

  1. インパルスを放音して実際に測定する
  2. 形状シミュレーションをやって計算する
  3. 経験則でテキトーに作る

順に行くと、一番目がストイックな測定の例。

インパルスというのは一瞬だけ出るパルスのことだ。
つまりデータを離散化して考えると、t=0の時のみが信号の強さが1で、残りずーっと0。というカンジ。

放音する音として何故インパルスをなぜ使うかというのは
そして周波数で考えると全周波数の要素を含んでいるという特殊な信号だからだ。

インパルスとか伝達関数の補足はコチラ(伝達関数ってなんスか?)

測定

にはダミーヘッドというものを使うのが一般的なんだけど

こんなの↓ (楽天で買えるんだ。笑)

耳のところに穴が開いていてそこにマイクを仕込むことができる、という仕組みだ。

で、離れたところからスピーカーでテスト用の音を鳴らしてマイクで収音することで、必要とする特性を得ることができる。

とはいえ、やっぱりパッと見てわかる通り、かなり抽象化がされている。

したがって個人の頭部でしっかり測定した方が精度は高い。当たり前だ。

とはいえ実際の人間の頭部使って測定するのは難しい。

なんでってマイク埋め込むのも大変だし、そもそもマイクを埋め込んだ時点で測定状態が乱れる。

ということで二番目の

シミュレーション

の出番なわけだ。

まず人間の頭部を3Dスキャナとかで取り込んでデータ化して(アバターとかで使われている技術の親戚)

それを元に「仮にこの頭部に対してどこどこから音を出した場合にどういう風に聴こえるか?」を計算で出すわけね。

計算でよく使われるのはFDTD法かなぁ。(時間領域差分法ともいう)

波動方程式を微小空間で離散化して考えた時に

音圧成分と速度成分(音圧の微分)とがそれぞれ微小単位x1/2だけズレて配置されていると仮定して

t=0の時のxとx+Δxの音圧成分から、t=Δt/2の時のx+Δx/2の速度成分を計算し、

t=Δt/2の時のx-Δx/2とx+Δx/2の速度成分から、t=Δtの時のxの音圧成分を計算する、

というのを延々繰り返すことにより時系列での音圧変化をツラツラと計算していくのだ。

これって流体力学とかでも使われるポピュラーな計算方法なんだが、、、

まぁ細かい説明は別の機会を設けよう。

なお離散化についての過去ポストはコチラ(「アナログ、アナログってとーちゃんをバカにするのもいい加減にしやがれ!」(離散化について))

さて、

シミュレーションの欠点というのは、どの種類のシミュレーションにおいても共通なのだが、

  • 十分に離散化が細かいか?
  • モデリング(仮定)に何か問題はないか?
  • 初期パラメータは正確か?

とまぁこんなとこだろう。

例えば離散化が粗かったら、頭部形状のデータがかなり粗くなるだろう。

昔のポリゴンみたいなカンジ?

そんなものでちゃんとしたシミュレーションができるのかどうか怪しいもんだ。

さらにモデリングなんか特に問題が多い。

例えばシミュレーションをする際に『頭皮表面の反射係数をいくつにするか?』とか

『計算領域の端っこに何があると仮定するか?』にはね。境界条件ってやつだ。

当然これらは計算結果に大きな影響を及ぼすことだろう。

初期状態の設定も慎重にやらなければならない。

放音開始する位置、放射音の特性、計算領域をどのくらい確保するか、各種パラメータの初期値、etc.

これらでミスがあれば計算は全て台無しだ。

つまりこれら次第でシミュレーションは『真実』にも『嘘』にもなるのだ。

うーん、

測定も、シミュレーションも、上述したような理由から残念ながら厳密さを欠くものばかりだ。

ということで、

最後に出てくるのが

『経験でテキトーに』

だ。

これはいわゆる補完としてはひじょーに有効で至極現実的な解決策といえる。

さすがにゼロからテキトーに作るのはどうかと、ね。

つまり具体的には測定結果やシミュレーションを元にした特性に対してひとの手を加えてマシなものに直すのだ。

これは良い音響エンジニアがひとりいればそう難しいことではない。


頭部伝達関数を使っていることを売りにしている商品はけっこー世の中にあるが、結局のところ千差万別。

聴いて試して、もし自分に合っているものを見つけることができたらラッキー!ってとこだ。

余談長っ!!笑


mixture-art@Q トップへ戻る