( ※ 初心者は読まなくていい。)
──
音声認識の技術は、進歩しているが、いまだにたいていの音声認識は不十分である。特に、雑音が紛れ込んでいると、人の声だけを抽出するのが困難である。
ところが、このように力不足のソフトが乱立するなかで、傑出して優秀なソフトが出現したという。
そのアプリの名は「Otter」。
Otterが素晴らしいのは、「クオリティ」と「機能」の両面で、スマホでの音声文字認識などとは一線を画すレベルになっていることだ。
たとえば、周囲が騒々しいなかでの立ち話でも、ある程度その内容を聞き取ってテキスト化するし、話者が複数いる場合も、個々人をちゃんと区別して認識するのだ。
( → LINEは気づいている!音声認識の実力差が「国力」を左右する理由(西田 宗千佳 )
では、どうしてこのような優秀なソフトが出現したのか? そのヒントは、続く文章にある。
音声認識は、なかなか品質が向上しない──。実際に利用していて、そう感じている人も少なくないのではないか。
その理由は多くの場合、人間ほど柔軟な聞き取りができないからだ。
特に大きいのが、「ノイズ」の問題だ。人間は、周囲が少々うるさい環境にあっても、目の前にいる相手の声を聞き取ることができる。俗に「カクテルパーティー効果」とよばれるもので、多くの人は、周囲の声や騒音=すなわちノイズと、自分に対する話し声をきちんと聞き分けることができる。
だが、現段階の音声認識技術は、このようなノイズに弱い。音質が良く、他人の声が混ざっていない状態での認識率はかなり高くなっているが、ノイズの多い状況だと認識精度は低下する。スマホに口を近づけておこなう音声認識では精度が高くても、他では精度が落ちるのはそのためだ。
なるほど。ノイズ対策が重要であるわけだ。こうして問題点はわかった。
──
問題点はわかったから、この問題を解決すればいいわけだ。
で、実際に、Otterというソフトはそれを解決したのだろう。では、どうやって?
そんなことを考えているうちに、私は画期的なアイデアが思い浮かんだ。こうだ。
「ディープラーニングの技術を使って、音声を機械学習すればいい。特に、ノイス入りの音声について、機械学習すればいい」
ここまでは、誰でも思い浮かぶ。しかし、機械学習の場合には、「正解」を教える教師役が必要だ。たとえば、ノイズまじりの音声を聞いて、その聞き取りにくい音声をきちんと文字にするような教師が必要だ。しかし、そんな教師を人間がやっていたら、途方もないコストがかかるので、現実的ではない。
つまり、上の基本アイデアだけは簡単に思い浮かぶのだが、それを現実化する方法がない。
そこで、私は画期的なアイデアを出すことにしよう。こうだ。
「きれいな音声であらかじめ音声認識の正解を出しておく。その後、ノイズ入りの濁った音声を、ランダムにたくさん自動生成する。つまり、先に正解を得て、正解に対応するサンプルをたくさん自動生成する。この自動生成されたサンプルに対して、音声認識をディープラーニングによって行う」
具体的に言おう。
「本日は晴天なり」
というきれいな音声を用意しておく。これを「基準音声」と呼ぼう。
基準音声に対して、さまざまなノイズや変形を加える処理をする。そうしてできた音声を、「サンプル音声」と呼ぶ。
サンプル音声はたくさんある。それらのサンプル音声を、ディープラーニングの「タイプ1」や「タイプ2」などの、さまざまな方式で処理する。(将棋ソフトで言えば、さまざまな「評価関数」を使うことに相当する。)
そのように処理した結果が、正解であるかどうかを、チェックする。
( ※ 正解はすでにわかっている。この例でいえば、「ほんじつはせいてんなり」が正解である。)
多くの「サンプル音声」に対して、常に正解を出せるようなものが、優秀な処理であるとわかる。(たとえば「タイプ 368」が最優秀であるとわかる。)
そこで今度は、「タイプ 368」を基本にして、これのバリエーション(派生物)となるような処理をいくつも用意する。そして、それらのなかで最優秀となる処理を見出す。
以上のことを繰り返すと、
・ さまざまなノイズに対して正解が得られる
・ さまざまな文章に対して正解が得られる
というふうになる。
また、最初の「基準音声」として、
・ 若い男性の声
・ 子供の声
・ 老人の声
・ 高い女の声
などをいろいろと用意して、それらに対しても同様の処理をすれば、さまざまな発声に対して正解が得られるようになる。
──
以上のようにすれば、音声認識の技術を飛躍的に向上させることができるだろう。
( ※ すでに Otter や Google では実行しているかもしれないが。)