子音と音声認識。

 久々だと思うのだが、音声認識の話題である。異論はあるかもしれないが、現在の自動音声認識は母音やある種の有声子音を中心に発達してきたように思える。DPマッチングや隠れマルコフモデルやデルタ特徴量などで、時間変化も見られるようにはなっているが、基本的にはスペクトルエンヴェロープを見ており、エンヴェロープから読みとりやすいのは母音や有声子音の種類である。

 スペクトログラムを目視して、/k/,/t/,/p/などの無声破裂音、/g/,/d/,/b/などの有声破裂音を区別するのは難しい。文献を読めば、「第二フォルマントにそれらを区別する特徴が現れる」などと書かれてはいるが、それをスペクトログラムから読みとるのは相当難しいことである。「かきくけこ」と「ぱぴぷぺぽ」をスペクトログラム上で区別するのは難しいのである。また、/s/,/sh/を区別するのも難しい。

 また、「やゆよ」は日本語や英語では半母音を伴っているということになっているが、スペクトログラムを眺めているだけでは、「なぜ/j/(ヤ行)が半母音なのか」が分からない。単に「いあ」と続いているようにしか見えないのである。この半母音の扱いは言語によっても異なるが、少なくとも日本語には「ヤ行」「ワ行」という概念がある。これは、スペクトログラムだけからは読みとれない言語の特徴のように思える。

 さらに、文字体系を見てみると、ヒエログリフアラビア文字は基本的に子音中心の文字となっている。ラテン系のアルファベットも母音と子音に分かれているし、ハングルも母音と子音に分かれている。人間は、母音と子音を別物として知覚しているのかもしれないという仮説が成り立つ。ともすると、人間には子音の方が知覚しやすいのかもしれない。

 それから、日本語・米語・ドイツ語あたりは破裂音を有気音として発音する傾向にあるが、スペイン語・イタリア語・インド英語あたりは破裂音を無気音として発音する傾向にある。そしてややこしいことに、中国語や韓国語は有気音と無気音を区別し、有声子音/無声子音の区別をしない。自動音声認識器が破裂子音の調音点を認識するときには、第二フォルマントのほかに呼気のスペクトルも参考にしているようであるが、人間にとって呼気の有無と調音点は関係がないようにも思える。

 何が言いたいのかといえば、「スペクトログラムからは子音と母音の区別がしづらい」にもかかわらず「人間は子音と母音を区別する」ということである。今のところ、機械にとって容易な音素の区分は、「有声音/無声音」である(ここに異論のある人は少ないと思う)。けれど、人間にとって容易な音素の区分は「母音/子音」である。

 このギャップはなんなのか? もしかしたら、音声工学は子音に対して何か大変な思い違いをしているのかもしれない。