この記事では今世界的流行りの立体音響技術であるアンビソニックスについて,アンビソニックスとは何か,その理論と現状についてご紹介します。

アンビソニックスには大きく分けて1次アンビソニックス(First Order Ambisonics: FOA)と高次アンビソニックス(Higher Order Ambisonics: HOA)があります。

歴史的に1次アンビソニックスから始まった事と理論面の簡易さから,実用に寄った説明(A-Formatで収録してB-Formatに変換して…etc.)が充実していますが,本記事では一般次のアンビソニックスの理論を解説します。

これは理論的には一般次の理論が1次の理論も包括しているためです。

実はアンビソニックスの理論は工学者には少し難しい部分が多いかもしれません。。
(きちんと理解するには関数空間の理論(関数解析学)や特殊関数に関する知識が必要になります)

一方で,需要は音響工学者や実際に利用したい一般の方々にあると考えています。

ですので本記事では数学的な厳密性は一旦置いておいて,出来るだけ噛み砕いて概要をざっくり説明する立場を取ります。

適宜オススメの書籍をご紹介しますので,詳しく勉強したい方や研究したい方はそちらをご参考いただければ幸いです。

前置きが長くなってしまいましたが,始めていきましょう!

アンビソニックスとは?

アンビソニックスとは立体音響技術(又は音場再現手法)の1つで,簡単に言うと音の最先端VR技術です。

この技術で再生された音を聴くと,映像で言うところのヘッドマウントディスプレイのように「その場にいるような感覚を得ることができます。

この技術の進歩は目覚ましく,1970年代にGerzonによって雛形が提案されて以来1990年代には高次に拡張された後,近年ではYoutubeやFacebookでも採用されて世界的に有名な規格となりました。

勿論立体音響技術は他にも幾つも提案されていて,ヨーロッパで非常に流行したWFS(Wave Field Synthesis)や日本で提案された境界音場制御(Boundary Surface Control: BoSC)などがあります。

しかしなぜアンビソニックスだけがこれほど流行っているのでしょうか?

その理由は

アンビソニックスの理論の柔軟性厳密性にある

と僕は考えています。

具体的には,アンビソニックスは収録の方法や配置又は再生システムの配置等に制約が少なく,更に収録信号を一度エンコードしてしまえば再生システムに依らずその情報を使えます。

また,展開する関数(球面調和関数と言います)の性質から音場の回転や平行移動が容易に行えるため,例えば

「正面からバイオリンの音が聴こえている音場をくるっと180度水平方向に回して,真後ろから聴こえる音場に変更する」

なんて事が簡単に実行できます。これが「柔軟性」の部分です。

更に数学的な観点からアンビソニックスはその他の理論的な立体音響手法に比べて安定した動作をするのではないかと考えています。
※これに関しては主観的な考えなので鵜呑みにはしないで下さい笑

これは先述したその他の手法に比べて,アンビソニックスは空間エイリアシングの影響を大きく受ける周波数に対して「再生しない」という態度を取っているところにあると考えています。

これが「厳密性」の部分です。

以上述べた点に関して完全に理解するにはアンビソニックスの数学的側面を見る必要があります。

それでは理論を見ていきましょう。

アンビソニックスの理論

ここではアンビソニックスの理論について概説していきます。実用上利用されるのが1次アンビソニックスであることから一般に「アンビソニックス」と言うと現在は1次のものを指す事が多いのですが,ここでは1次も高次も含めた技術をアンビソニックスと呼称します。

まずは数学的な準備をした後にアンビソニックスの処理の流れを見て,その後理論を述べていきます。

数学的な準備

先にも述べたようにアンビソニックスをきちんと理解するためには関数空間の知識が必要になります。

アンビソニックスの鍵となるのは「球面調和関数」と呼ばれる特殊関数になるのですが,この球面調和関数の関数空間における直交性を用います。

関数空間の理論について詳しく勉強したい方は以下の書籍がオススメです。

数学が得意な方は有名な「黒田関数解析」が良いかもしれません。

では「関数の直交性」とは一体何なのでしょうか?

皆さんは高校3年生か大学1年生で「線形代数」を勉強したかと思います。

線形代数では,$N$次元ベクトル$\boldsymbol{a}$と$\boldsymbol{b}$が直交するというのを次のように表現しました。

$$
\boldsymbol{a} \cdot \boldsymbol{b} = \sum_{n=1}^{N} a_{n} b_{n} =0
$$

ここでこの($\cdot$)は内積を表すのでした。

つまり

直交 = 内積が0

だった訳です。関数空間でもこれと同じ事を考えます。

つまり関数$f, g$についても内積を考えて,これが0となるときに直交していると考えます。

アンビソニックスでは具体的に角度$(\theta, \phi)$についての関数$f, g$に対して以下のような内積を定義します。
(角度は上図のように取っています)

$$
\langle f, g \rangle = \int_{0}^{2\pi} \int_{0}^{\pi} f(\theta, \phi) \overline{g(\theta, \phi)} \sin \theta d\theta d\phi
$$

ちなみにこの内積はきちんと「内積の公理」を満たしています。適当な数式を内積とできるわけではありませんので注意して下さい。
(以下の記事で少し詳しく述べていますので気になる方はご参照下さい)

ここまで準備したらアンビソニックスの鍵となる球面調和関数の性質を見ていきましょう。

まず球面調和関数$Y_{n}^{m}(\theta, \phi)$の具体的な関数形は次のようになっています。
※球面調和関数の関数形には幾つかの種類がありますのでご注意ください

$$
Y_{n}^{m}(\theta, \phi) = \sqrt{\frac{2n+1}{4\pi} \frac{(n-|m|)!}{n+|m|)!}} P_{n}^{|m|}(\cos \theta) e^{im\phi}
$$

ここで$n$は次数,$m$は位数と呼ばれるもので,$P_{n}^{m}$はルジャンドル陪多項式と言う特殊関数です。

特殊関数に馴染みがない方には良くわからないかと思いますが,特に気にする必要はありません。重要なのは次の事実です。

球面調和関数は球面上の関数の正規直交基底となる

これは数式で書くと次ようになります。

$$
\langle Y_{n}^{m}, Y_{n^{\prime}}^{m^{\prime}} \rangle = \delta_{n,n^{\prime}} \delta_{m,m^{\prime}}
$$

つまり自分自身との内積は1となるが,他の次数及び位数の球面調和関数とは内積が0となる(直交する)ということです。

この性質はフーリエ級数展開でいう$\sin$や$\cos$と同じですね(厳密には自分自身との内積が1ではない場合もありますが正規化すれば同じです)。

球面調和関数やその周辺の性質等については以下の本が可読性が高く詳しいです。

この事実を用いてアンビソニックスの理論を構築していきます。

アンビソニックスの流れ

アンビソニックスで音場を再生するまでの流れは以下の通りになります。

  1. マイクロホンアレイで音場を(離散的に)収録します。
  2. エンコード処理を施して信号を符号化します。※ここで具体的な再生システムを想定する必要はありません
  3. 再生システムが決まったら,その再生システムに合ったデコードを行います。
  4. 再生信号が得られているので,再生システムで再生します。

先に述べた音場の回転などを行う場合には,2.と3.の間で処理を行うことで実現できます。

それではそれぞれの工程について詳しく述べていきます。

マイクロホンアレイによる収録

大前提として,単一のマイクロホンでアンビソニックスを実現する事はできません。これは「音場の情報が不足してしまう」からです。

ですのでアンビソニックスを実装するためには複数のマイクロホンで構成されたマイクロホンアレイを用います。

まだ日本では技術や実用性が十分に認識されておらず需要がないため,多チャンネルのマイクロホンアレイを購入するのは難しいです。

日本で簡単に入手できるもので1次のアンビソニックスを実装するのであれば,Zoomから出ている「H3-VR」はとてもオススメです。

僕も個人的に1つ持っていますが,単3電池でも駆動しますしPCとはmicroUSBで接続できて,ソフトも充実しています。
学生さんで一旦試してみたいという方には最適だと思いますので是非検討してみてください。

さて,今マイクロホン$U$個で構成されたマイクロホンアレイで音場を収録する事を考えましょう。

ある波数$k$の定常音場を収録したとき,得られる収録信号を次のように書いておきます。

$$
\boldsymbol{s} = \left[ \begin{array}{c}
s(\boldsymbol{r}_{1}) \\ s(\boldsymbol{r}_{2}) \\ \vdots \\ s(\boldsymbol{r}_{U})
\end{array} \right]
$$

ここで$u$番目の素子の空間座標を$\boldsymbol{r}_{u}$としています。

次はこの信号をエンコードしていきます。

収録信号のエンコード

ここでアンビソニックス処理のキモとなるエンコードについてお話しします。

エンコードとは符号化処理の事ですが,具体的には収録信号から音場の球面調和関数展開係数を推定する作業です。簡単に言うと

音の信号を係数に変換する操作

です。この係数をB信号やアンビソニック信号と呼ぶ場合もあります。

この操作を数学的に考えてみます。

(内部)音場は次のように球面調和関数の足し合わせで書ける事が知られています。

$$
p(\boldsymbol{r}) = \sum_{n=0}^{\infty} \sum_{m=-n}^{n} B_{n}^{m} j_{n}(kr) Y_{n}^{m}(\theta, \phi)
$$

ここで$j_{n}$は$n$次球ベッセル関数という特殊関数ですが,これも中身を気にする必要はありません。

エンコードの作業はこの式の係数$B_{n}^{m}$を推定する作業となります。それではこの係数を推定する事を考えてみましょう。

今使用するマイクアレイが全指向性素子から成る事を考えてみましょう。
(これは最も簡単な場合で,その他のモデルも考案されています)

このとき$u$番目の素子の収録信号は次のように書けます。

$$
p(\boldsymbol{r}_{u}) = \sum_{n=0}^{\infty} \sum_{m=-n}^{n} B_{n}^{m} j_{n}(kr_{u}) Y_{n}^{m}(\theta_{u}, \phi_{u})
$$

球面調和関数の次数を$N$次までに制限して信号を近似したとき,マイクアレイでの収録信号$\boldsymbol{s}$は次のように行列形式で書けます。

$$
\left[ \begin{array}{c}
s(\boldsymbol{r}_{1}) \\ \vdots \\ s(\boldsymbol{r}_{U}) 
\end{array} \right] = \left[ \begin{array}{ccc}
j_{0}(kr_{1})Y_{0}^{0}(\theta_{1}, \phi_{1}) & \cdots & j_{N}(kr_{1})Y_{N}^{N}(\theta_{1}, \phi_{1}) \\
\vdots & \ddots & \vdots \\
j_{0}(kr_{U})Y_{0}^{0}(\theta_{U}, \phi_{U}) & \cdots & j_{N}(kr_{U})Y_{N}^{N}(\theta_{U}, \phi_{U}) 
\end{array} \right] \left[ \begin{array}{c}
B_{0}^{0} \\ \vdots \\ B_{N}^{N}
\end{array} \right]
$$

これはつまり

$$
\boldsymbol{s} = \Lambda \boldsymbol{B}
$$

のような線形方程式となっているのでこの線形逆問題を$\boldsymbol{B}$について解くことで係数の推定ができます。

すなわち例えば疑似逆行列$\Lambda^{\dagger}$を使って

$$
\boldsymbol{B} = \Lambda^{\dagger} \boldsymbol{s}
$$

のように推定できます。
疑似逆行列とは逆行列を一般化したような概念です。以下の本が分かりやすくてオススメです。

一般に次数$N$はマイク数によって決定する事が多く,線型独立性がある程度保証されていれば$(N+1)^{2} \geq U$となるような最大の$N$を採用します(本当はエイリアシングを回避できる次数を数学的に求めて決定する方が厳密かもしれませんがここでは言及しません)。

また,実用的には球状配置のマイクアレイが用いられる事が多いのですが,ここでは一般の理論を紹介しました。

ここまでで音場の展開係数を推定する事ができました。次に再生システムにあったエンコードを行っていきます。

再生システムに依存したデコード

デコードとは,簡単に言うとエンコードの逆の処理で,球面調和関数展開の係数から音信号に変換するような操作です。

つまりこの工程で再生システムでどのような音を再生すれば収録した音場を再現できるかと言うのを球面調和領域での計算から決定する訳です。

注意すべきは再生システムに依存したデコードを行う必要があるという点です。

これはすなわち再生するスピーカがどのような特性を持っているのかという情報を数学に反映させるような作業に当たるのですが,本記事では最も簡単なモデルとしてスピーカが平面波音場を生成するものとして話を進めます。

今再生システムが平面波音場を作るようなスピーカ$L$個から成ると仮定します。このとき$\ell$番目のスピーカが作る音場は次のように表現できます。

$$
p_{\ell}(\boldsymbol{r}) = d_{\ell} \sum_{n=0}^{\infty} \sum_{m=-n}^{n} 4\pi i^{n} \overline{Y_{n}^{m}(\vartheta_{\ell}, \varphi_{\ell})} j_{n}(kr) Y_{n}^{m}(\theta, \phi)
$$

ここで$d_{\ell}$はスピーカの複素駆動信号で,$(\vartheta_{\ell}, \varphi_{\ell})$は展開中心から見た$\ell$番目のスピーカ方向です。

またこの表現は単一周波数の平面波音場$e^{i \boldsymbol{k} \cdot \boldsymbol{r}}$が球面調和関数展開できる事によります。

よって再生システムが作る音場はこの足し合わせになるので

$$
\hat{p}(\boldsymbol{r}) = \sum_{\ell =1}^{L} p_{\ell}(\boldsymbol{r}) = \sum_{n=0}^{\infty} \sum_{m=-n}^{n} 4\pi i^{n} j_{n}(kr) Y_{n}^{m}(\theta, \phi) \sum_{\ell =1}^{L} d_{\ell} \overline{Y_{n}^{m}(\vartheta_{\ell}, \varphi_{\ell})}
$$

となります。この合成音場が原音場(収録音場)と一致して欲しいので

$$
\sum_{n=0}^{\infty} \sum_{m=-n}^{n} 4\pi i^{n} j_{n}(kr) Y_{n}^{m}(\theta, \phi) \sum_{\ell =1}^{L} d_{\ell} \overline{Y_{n}^{m}(\vartheta_{\ell}, \varphi_{\ell})} = \sum_{n=0}^{\infty} \sum_{m=-n}^{n} B_{n}^{m} j_{n}(kr) Y_{n}^{m}(\theta, \phi)
$$

を満たすように再生(駆動)信号$d_{\ell}$を決めれば良い訳です。

ここで先ほどご紹介した球面調和関数の直交性が活躍します。

上式の両辺$Y_{n}^{m}$と内積をとれば以下のようにスッキリした形に整理できます。

$$
4\pi i^{n} \sum_{\ell =1}^{L} d_{\ell} \overline{Y_{n}^{m}(\vartheta_{\ell}, \varphi_{\ell})} = B_{n}^{m}
$$

これを行列を用いた形で書けば

$$
\left[ \begin{array}{ccc}
4\pi \overline{Y_{0}^{0}(\vartheta_{1}, \varphi_{1})} & \cdots & 4\pi \overline{Y_{0}^{0}(\vartheta_{L}, \varphi_{L})} \\
\vdots & \ddots & \vdots \\
4\pi i^{N} \overline{Y_{N}^{N}(\vartheta_{1}, \varphi_{1})} & \cdots & 4\pi i^{N} \overline{Y_{N}^{N}(\vartheta_{L}, \varphi_{L})}
\end{array} \right] \left[ \begin{array}{c}
d_{1} \\ \vdots \\ d_{L}
\end{array} \right] = \left[ \begin{array}{c}
B_{0}^{0} \\ \vdots \\ B_{N}^{N}
\end{array} \right]
$$

これはつまり次のような線形逆問題を解く事にあたり,

$$
D \boldsymbol{d} = \boldsymbol{B}
$$

例えば疑似逆行列$D^{\dagger}$を用いれば

$$
\boldsymbol{d} = D^{\dagger} \boldsymbol{B}
$$

として再生信号を求められます。これがデコードという工程となります。

再生システムによる再生

デコードによって得られた駆動信号を再生することで音場再現が実現できます。

先に述べたように再生システムに殆ど制約はありませんが,実は内部音場を仮定して出発しているために再生システムが再現したい領域を囲むように存在する必要があります。
(内部音場とは再現領域に音源がない音場のことです)

このような再生システムで市販されているものは僕の知る限りありませんので,もし研究等で必要な場合は複数のスピーカを購入して自らシステムを構築する必要があります。

スピーカのオススメとしてはやはりGENELECでしょうか。少し値は張りますがこれを買っておけば間違いないと思います。

必要スピーカ数はマイク数同様次数$N$に依存します。基本的には最低$(N+1)^{2}$個用いるのが良いので,例えば1次アンビソニックスをやってみたい方は最低4個あればオッケーです。

アンビソニックスの現状

先にも述べたようにアンビソニックスは現状急速に普及しつつあり,大手SNSのFacebookやストリーミングサービスYouTubeでは既に1次アンビソニックスを採用しています。

その他, 映像のVR技術の発展や計算機能力の向上からゲーム業界からも注目されています。

アンビソニックスによる立体音響技術は理論としてはかなり完成されつつあるため,今後計算機の能力向上に伴って更に普及は進んでいくだろうと予想しています。

ただし,気をつけるべきはアンビソニックスだからと言って必ずしも「良い音」だったり「臨場感のある音」であるとは限らない事です。

特に現状採用されているのは1次アンビソニックスでこれは次数が0次と1次の球面調和関数及び球ベッセル関数のみのの足し合わせで表現できる音場しか作り出すことができません。

ここでイメージを持ってもらうために球面調和関数の関数形をお示しします。

これは次数が高いほど角度方向に鋭い変化を表現できることを表しています。

つまり低次のアンビソニックスはざっくりした方向しか再現できないことを意味します。

更に音質などは収録したマイクアレイや再生システムにも依存しますので尚更です。

ですので「360度立体音響」だとか「その場にいるかのような臨場感」なんて謳い文句に騙されずにきちんと内容を確認することが重要です。

まとめ

この記事では,立体音響技術の代表的な手法の1つである「アンビソニックス」について,その理論概要と現状について説明しました。

本記事では非常に基礎的な事に限定してご紹介しましたが,更に詳しく勉強したい方は以下の書籍などを当たってみると良いかと思います。

安藤先生の「音場再現」は立体音響技術について幅広く書いていますが,特殊関数についてはそれほど詳しくありません。

一方で「Fourier Acoustics」はNAH(Nearfield Acoustical Holography)に焦点を当てた本ですが,特殊関数をはじめとして音場再現の基本となる数学について非常に詳しく書いてあります。

どちらもオススメですが,自分の目的に合わせて検討してみてください。

研究を始めたい方は論文を読むのが良いですが,まずはBoazさんやPolettiさんの論文から始めると良いでしょう。

少し前にBoazさんの本が出ましたのでこちらも紹介しておきます。

この本はマイクアレイを球状アレイに限定していますが,アンビソニックスに関する非常に広範な内容を丁寧に扱っています。

後半は球面調和領域のビームフォーミングについても詳しく言及しています。

僕もざっと読みましたが,非常によく纏まっていて素晴らしい本でした。最先端の内容に触れたい方は是非!

それでは長くなりましたが,お疲れ様でした!