学部四年生の十月前半、その1。

 助手の先生に「とりあえず三次元空間で単一話者の音源定位のシミュレーションをしてみて」と言われ、それが終わったらさらに「それを複数話者に対応させて」と言われた。というわけで、やってみた。

 複数話者に対応させるときの考え方は大雑把に分けて二つある。到来時間差推定の時点で複数話者に対応させる方法と、幾何学計算の時点で複数話者に対応させる方法である。幾何学計算で対応させるのは大変そうに思えたので、到来時間差推定をなんとかすることにした。

 ここで、八月にあまり深く考えずに決めたCSPが本領を発揮することとなる。CSPはCrosspower Spectrum Phase analysisの略である。重要なのは位相(Phase)の部分である。一般に二つの形の似た信号の時間差を測るときには相関関数を用いることが多い。これは時間領域で計算することも可能であるが、周波数領域を経由してidft\left(F_1(\omega)F_2^*(\omega)\right)と計算することも可能である。ここで次のようにすると信号の波形ではなく、周波数の位相差の和を計算することが可能となる。

 idft\left(\frac{F_1(\omega)F_2^*(\omega)}{|F_1(\omega)||F_2(\omega)|}\right)

 これがCSPと呼ばれる時間差の計算方法である。音声は比較的広帯域であるのでこの手法が有効となる。

 さらに、実は、既存のこの手法は複数話者にもある程度対応していた。音声は広帯域であると書いたが、同時に周期波形でもあるので周波数領域ではかなりスパース(分布がまばら)な信号となっている(短時間のスペクトルのことである)。スパースであるので、二人の話者の音声波形が重なっていたとしても使用周波数が重なることはまれである。ゆえに、位相のみを頼りに計算するCSPでは、二人の話者に対して別々に到来時間差を計算することができる。

 ただし、これだけでは三次元空間での解析的な計算による音源定位はできない。三角形のマイクロホンのグループ間での整合性がとれないからである。二つのマイク間での到来時間差は確かに二名分計算することができるが、どちらがどの声であるのかが分からないので、別の二つの到来時間差とどのように対応するのかが分からない。ゆえに、幾何学的な計算ができないことになる。