音声認識技術には難しいイメージがあります。

篠田氏:音声認識の知識や技術をこれから身に付けようという初学者の皆さんから、「音声認識はとっつきにくい」とよく言われます。まず、画像と違い、目に見えないことがあります。同じ単語の2つの発声の違いを説明することは一般に困難です。次に、同じ内容をしゃべっても、しゃべるたびに長さが変わりますが、このような固定長でないデータを処理する方法は必ずしも自明ではありません。

 とっつきにくいせいかどうか、初学者の皆さんからよく「面倒くさい理論は適当でいいので、手っ取り早く使えるようになりたい」という希望をもらいます。この記事を読んでいる皆さんの中にも、本当はそのように思っている方が多いかもしれません。そのレベルでいいのなら、上述の大手IT企業が提供する音声認識APIを使えば良いでしょう。

 しかし、それでは音声認識の数々の課題を解決するのは困難です。課題解決のためには、なぜ音声を認識することができるのか、つまり、音声認識の「仕組み」を理解することが必要不可欠なのです。

 多くの皆さんは普通に音声を用いて会話しています。なぜ機械がこんなに音声の認識ができないか、不思議に思うでしょう。でも、普段自分が何気なく行っていることでも、その多くが幼少時に多くの時間をかけて習得した技術です。皆さんは、自分がどうやって音声を認識しているか他人に説明できるでしょうか。たぶん「手っ取り早く使えるようになりたい」人は、この点を誤解しています。

音声認識を学ぶ上で重要なことは。

篠田氏:キーポイントは3つあります。

 第1は、音声はどのように生成されるか、聴覚はどのように働くかといった、音声コミュニケーションの仕組みをよく知ることです。本来は別の目的のための器官を無理やりやりくりしてコミュニケーションに用いているわけで、当然そこには様々な制約(できること、できないこと)があります。

 第2は、時系列のパターンの扱い方です。画像認識では、一般に入力する画像のサイズが決まっています。決まっていない場合は「正規化」という処理でサイズ合わせをしますが、目で見えるので、その方法はある程度まで自明です。しかし音声の場合、事情はずいぶん違います。同じことを話しても、その長さは人により異なります。2つのパターンの時間軸合わせは組み合わせ最適化問題の一種ですが、単純に考えると計算量がすぐ爆発的に増えます。どのように少ない計算量で時間軸合わせをするのかが重要です。

 第3は、確率・統計および機械学習の知識です。音声は、同じ人でも話すたびに変わりますし、人によっても違います。周囲の雑音の有無やその種類により、その波形が変わります。それらの違いをいちいちルールで書き下すのは困難です。このような場合は、音声の揺らぎを確率的な事象であると捉え、統計的な音声パターンを機械に自動的に学習させます。

 最近は、深層学習を用いたEnd-to-End型学習の研究が進んでいます。これは、ブラックボックスの中身を気にせずに、大量の入力と出力のペアから、入力と出力の間の関係を学習する仕組みです。この場合、用途や使用言語を変えるたびに音声データとその書き起こしを大量に収集する必要があります。どのようにその手間を省くかが、今後重要な課題となります。