日本語の五母音を二軸にプロットする。

 子音の研究が思うように進まないので、ここ二ヶ月ほど母音で遊んでいた。本日の日記ではそのことについて書く。

 日本語の五母音を語るとき、工学的にも、文系の音韻論でも、二軸で語られることが多い。ただし、その表現方法はそれぞれの分野で全く異なっている。文系の音韻論では、口の前の方で発音されるか後ろの方で発音されるかという軸と、口を大きく開くか小さく開くかの軸で語られる(外語の場合にはさらに唇の形状が丸いか平たいかによっても分かれる)。一方、音声工学では低い方から二つのフォルマント(スペクトルの山の部分)の周波数がどのあたりにあるかによって語られる。どちらにしろ、シンプルに二つの軸によって語られている。

 では、実際に五母音について音声認識などの処理をするときにいくつの軸を使っているかといえば、10から40ほどである。二次元よりはずっと多い。これは母音のみならず子音にも対応しなければならないからだと思うのだが、この次元の多さのせいでパラメータの学習が大変になっているという弊害もあるのではないかと思う(分散共分散行列なんかは、分散のみの対角行列に近似されてしまっている)。そこで、五母音を単純な計算で二次元で語ることはできないのだろうかと試行錯誤してみた。音声とスクリプトはSkyDriveにアップロードした。なお、フォルマントをそのまま音声認識の特徴とする人が少ないのは、フォルマントの自動抽出精度が低いからである。

 一つ目の軸は、スペクトルの重心にしてみることにした。大雑把にいえば、スペクトルを正規化して重みつき和をとっただけである。音声データとしては自分の声を含めて三名分を使ったのだが、概ね、「い」「え」「あ」「うお」の順番に並んだ(「う」と「お」はほぼ同じ数値)。だいたい文系の音韻論のとおりに並んだ。

 二つ目の軸は、重みつき和をとるときの重みを変えてみることにした。スペクトルの振幅がよく変動する周波数が「重要な」周波数であると大胆に(かつ曖昧に)仮定し、「重要さ」に応じて重みを定めた。結果として、概ね「あ」「えお」「いう」の順番に並んだ(「え」と「お」、および「い」と「う」は話者によってひっくり返る)。だいたい文系の音韻論のとおりに並んだ。

 その二軸を使って母音をプロットしたものが以下の図である。「赤:あ」「緑:い」「青:う」「紫:え」「水色:お」である。それなりに三角形に並んでいることが見てとれる。また、母音同士が重なっていないということも注目すべきところである。


図1.二十代後半・男声の「あいうえお」の分布

 別の話者でも実験をおこなった。以下の二名も私の声と似たような結果が得られた。ただし、「い」と「う」が多少重なってしまっている。「い」のような口で「う」と言うことがあるからかもしれない。


図2.二十代前半・男声の「あいうえお」の分布

図3.二十代前半・女声の「あいうえお」の分布

 以上の結果から、音韻論的に意味ありげな二つの軸を作ることができたといえる。また、二次元で五母音の分布が重なることなくプロットすることがほぼ可能であることが実証されたといえるのだろう。せっかく簡単な特徴量ができたので、この特徴量を使って音声認識をしてみたり、何か新しいモデルでも作ってみたりしたいところだが、まずはかねてからの懸案である子音をなんとかしたい。なお、こういった試みは多分五十年以上前の音声工学の黎明期にたくさんなされているはずだが、文献を調べるつもりはない。この二軸に関する研究をさらに進めてみたいと思っている人がいたら、遠慮なく進めてください。