実証実験 音声認識
皆様、こんにちは。株式会社なごみテクノロジーです。前回に続きまして、実施中の実証実験についてご説明いたします。
今回は、システムの入力である音声認識についてです。
音声認識とは、利用者の発話をマイクで拾って、文字列に変換する処理のことです。ここでは、狭義の音声認識を指していますので、この段階では、まだ、意味は理解しておらず、単に「記号」として文字に変換するだけです。音声認識は、既に、世の中で実用化されている技術です。カーナビなどは、その必要性もあって、早くから音声認識が利用されていました。最近では、スマートフォンのアシスタント機能や、AIスピーカーの音声認識が有名です。
では、なごみアプリでも音声認識は簡単だったかというと、そういうわけでもありません。音声認識を失敗する(認識できない)主な理由は、「発話タイミング」です。今のなごみアプリは、音声認識(耳)と音声合成(口)とを同時に使うことができません。そして、耳と口とを切り替える判断がまだ上手ではないのです。
他のシステムでは、例えば、「OK,〇〇」や「Hey,△△」のように、「ウェイクワード」と呼ばれる単語を発話することで、認識のタイミング(耳を働かせるタイミング)を合わせることができます。でも、ふだんの会話で、発話するたびに、「ねぇ、なごみ。おはよう!」「ねぇ、なごみ、今日はいい天気だね」などと言うのは、とても不自然です。なごみアプリでは「ウェイクワード」を使わない会話を前提としました。
次の問題は、なごみアプリのレスポンス速度の問題です。レスポンス速度とは、利用者が発話を終了してから、なごみアプリが応答を返すまでの速さのことです。ここで問題となるのが、耳から口へと切り替える判断です。基本的に、利用者が発話している間、なごみアプリは耳を働かせています。発話が終了したと判断するのは一定の無音時間が続いた時です。では、どのくらいの無音時間が続いた時に終了とすれば良いのでしょうか?この時間が短すぎると、話の腰を折ることになってしまいますし、長すぎると、会話に変な“間”ができてしまい、話がうまくかみ合いません。今回の会話の内容を見てみると、どうも話の腰を折ってしまうことが多かったようです。
最後は思考の“間”の問題です。他のシステムとなごみアプリとの最大の違いが、「どちらから質問の主題を決めるのか」です。他のシステムは、利用者が質問をし(あるいは命令をし)、システムが応答をします。ホテルの予約システムなどで、「日付」をシステムが質問してくるかもしれませんが、「ホテルを予約する」と言った主題を決めているのは利用者側になります。従って、利用者は予め質問を想定することができます。一方、なごみアプリは、システムが質問を決定し、利用者が応えることがあります。例えば、「今日の朝ごはん何を食べました?」とか、「今日の体調は如何ですか?」と訊いてきます。その時、利用者は少し考えながら、言葉をつなぎながら話すことになります。「えーっと、、」「そうやねぇ、、」この「、、」の間を今のなごみアプリは処理することができません。
今回の実証実験の音声認識の結果は以下の通りです。
13名の方それぞれの「正答率」「カット率」「不正答率」を以下の表に示します。
13名の総発話数は、3072発話でした。今回の実験では、音声の録音をしていませんでしたので、正答率は、前後の文脈から見て判断しました。カット率は、発話の前後が切れてしまっているものの比率です。不正答率は、前後の文脈から見て、間違った単語に認識されてしまった比率です。(※カット率は、今回作った造語です。)
このカット率をみると、かなり「話の腰を折ってしまっていた」事がわかります。ここは、今後改善すべきポイントになると考えています。
では、比較的長い発話でうまく認識できている発話とは、どんな発話でしょう?
「昨日おとついと作業をしていたんですけどもちょっとその時に右足を痛めたのでしゃがんで立つ時が痛いです」
「昨日はね良いお天気だったでしょうだからたくさん洗濯してね乾いたのでねとても気持ちが爽快です気分がいいですよ」
音声認識結果には、句読点がはいりませんが、文章を見ると、息継ぎをしながら、自然に発話していただいても認識可能であったと思われます。 このような発話が普通に認識できれば、当初の目的であった「自然な会話から状態を推定する」ことも可能であると考えています。