子音の調音位置の弁別法が分からないということと、ゼロ交差グラムの正式名称が知りたいということ。

 相変わらず、子音について興味がある。本日の日記は、「b,d,g」の違いがスペクトログラムやその亜種を見ても分からなかったのでスペクトログラムを見ても分からないところに違いがあるのではないかという感想と、DFTによるスペクトログラム以外にも時間周波数分析法はあるので自己流で時間周波数分析をしていたけどその分析法でも子音の調音位置が見えなかったという報告である。前者の「感想」は単なる感想である。後者の分析法はそこそこ面白いかもしれない。

 まず、問題のない話からである。私の把握している限りでは音声の母音は何を解析すれば弁別できるのかが比較的はっきりしている。帯域ごとのパワーの分布である。のどから唇までは、太さの異なる管が縦続接続されていると近似的に見なすことができ、接続されている管の太さと長さを方程式にあてはめれば、パワーの分布が出てくる。人が母音を発するときには管の太さを舌などによって変化させていると見なすことができ、管の太さから計算できるパワー分布は、声から計算されるパワー分布と見事に一致する。要するに、母音は理論と実測の整合がとれている。そこから母音の自動認識に至るまでにはいろいろと難関があるわけだが、ひとまずこの第一段階はクリアできているし、現段階でも成人の声の母音認識なら充分な精度で実現できている。サイエンスとしては問題が多々ありそうだが、エンジニアリングとしてはほぼ完成しているんじゃないかと思う。

 問題は子音であり、私の関心はここである。自動音声認識も子音に弱い。以下、専門家でも見解は分かれると思うが、私の考えを書く。一般に子音は「調音位置」と「調音様式」の二つの要素から成り立っているといわれている。子音は口の上部(上あごとか上唇とか)と口の下部(舌とか下唇とか)が一度狭まることによって生まれる。この狭まる位置が調音位置である。調音位置が異なると「ぱ、た、か」のような違いが生まれる。そして、同じ調音位置でも、調音様式が異なると「な、だ、た」のような違いが生まれる。私が注目しているのは調音位置についてであるのでその話をする。一般に子音は「何かの時間変化」が鍵になるといわれている。調音位置も調音様式も時間変化が弁別の鍵だといわれている。そして、よく専門書に書かれているのが、「フォルマントの時間変化」で調音位置が分かるというものである。ここについて詳しく語ろう。

 下図は「ば」という音節のスペクトログラムである。スペクトログラムというのは時間周波数解析の一種である。時間周波数解析というのは、簡単にいえば、横軸に時刻・縦軸に周波数とり、濃淡や色によってパワーを表す解析法である。なお、これ以降の図の軸の値は全て単なる飾りだと思ってください。

 調音位置に興味があるということは、この場合は「ば」と「だ」と「が」の違いに興味があるということである。以下、「だ」と「が」のスペクトログラムである。


 ここで「フォルマントの時間変化」というのは、簡単にいってしまえば、パワーの強い部分(赤っぽい部分)がどのように変化していくかということである。一見、明らかに異なっているようにも見える。しかしながら、様々な人の声をこの解析手法で見ていくと、一貫した規則はなさそうだということが分かる(ここには異論があるかもしれない)。全く知らない人の声のスペクトログラムを見せられて、「ば・だ・が」のどれか推量せよと言われても、三割か四割程度しか当てる自信がない。つまり私は偶然に頼ることしかできない。見る人が見れば何を言っているのか分かるということを聞いたこともあるが、その妙技を見たことはない。

 ここまでの図はDFT(離散フーリエ変換)という解析手法を利用して描かれている。その描き方が悪いから「フォルマントの時間変化」による弁別法が見えてこないのではないかと思い、「ゼロ交差グラム(仮称)」という自己流の解析手法を作ってみた。多分、すでにある解析手法なんじゃないかとは思うが、正式名称を知らないのでここでは「ゼロ交差グラム」と書く。ここからしばらく、ディジタル信号処理的な話になる。

 まず、帯域通過フィルタでフィルタバンクを構成する。次に、得られたサブバンド信号のフレームごとのゼロ交差回数を数え、それを出力とする。サブバンドごとのゼロ交差回数というのは、その帯域に局所的なピークがある場合にはそのピークの周波数に相当する回数になり、その帯域が傾斜している場合には傾斜している方向に回数が偏る。プロットしてみると、どの周波数にパワーが集中しているかということが可視化できる。なお、今回はフィルタバンクは対数周波数軸上で等間隔になるように(線型周波数軸上では指数的に並ぶように)カットオフ周波数を定めた。また、バンド幅は聴覚特性より大きめにとった。

 これが、「ば」のゼロ交差グラムである。一見して、よく分からない。

 そこでサブバンドのパワーの大きさに応じて、色をつけることにした。赤(黒)がパワーが大きく、青(無色)はパワーが小さい。

 以下、「ば・だ・が」のパワーつきのゼロ交差グラムである。



 どこにパワーが集中しているのかが分かりやすくなり、それぞれの子音の差もはっきりした気がしたので、この解析法と従来のスペクトログラムの両方で様々な音声を見てみたのだが、残念ながら調音位置の弁別法は分からなかった。たとえば、あ段のみならなんとなくこうなのではないかといった見分け方が自分の中で形成されるのであるが、それをい段やう段に適用することはできなかったし、また、同じ調音位置の異なる調音様式(たとえば「だ・た・な」)の共通点も見つからなかった。

 長々と書いてきたが、結局、調音位置をどのように弁別すればよいのかは分からない。私としてはこれまでの感触から、フォルマントなどのパワー分布以外の何かが重要な要素になってくるのではないかと思っているのだが、「何か」がなんなのかということについては見当がついていない。調音位置の弁別が自分の目でできるという人は、トラックバックを送ってほしい(「従来からこういわれているが自分ではできない」といった見解は要らない)。メールでもよい。

 今回書いた手法以外にも地味なことは色々とやっているのだが、最も派手なのがゼロ交差グラム(正式名称が分からない)だったので、ブログに書いた次第である。

 スクリプトはいつものようにSkyDriveに置いておく。octaveスクリプトのほかに、音声や図も入っている。