トップ声と音声認識で行うリモコン操作の可能性

声と音声認識で行うリモコン操作の可能性

Windowsの音声認識で、もしも家電製品などのリモコン操作をさせようとした場合、どれくらい正しくその指令を認識できるのか、テストをしてみました。

音声リモコン

リモコンのような機器においては、絶対に誤認識が許されないので、単純に正しく認識できるだけではなく、誤変換対策や装置の誤作動対策が必ず必要になってきます。

今回は実際のシステム開発ではないので、まずは考えられるリモコン指令の文を、どの程度正しく変換できるのかを実際にテストしてみました。

テストしたリモコン指令操作例

最初に「電源を入れる」で「声の大きさ」や「発声速度」をいろいろと変えてみて、適切な話しかけ方を確認してみました。

1)声を大きくゆっくり
2)声を小さくゆっくり
3)声を大きく速く
4)声を小さく速く

以後は、一番適切な話し方でその他の操作を確認するというように考えて、実験を進めていきました。

  【発声内容】     【認識結果】
 ・「電源おん」→ 低音 ⇒「電源ON」
 ・「電源おん」→ 高音 ⇒「電源ON」

 ・「電源おん」→ 低速 ⇒「電源ON」
 ・「電源おん」→ 高速 ⇒「電源ON」

 ・「電源おふ」→ 低音 ⇒「電源オフ」
 ・「電源おふ」→ 高音 ⇒「電源オフ」

 ・「電源おふ」→ 低速 ⇒「電源オフ」
 ・「電源おふ」→ 高速 ⇒「電源オフ」

ここで「オフ」の部分を「OFF」と変換させるため、「オフ」→「OFF」として、音声辞書に登録してみました。

ところが、「電源おふ」と読み上げても「電源オフ」と表示されるだけで、「電源OFF」との表示にはなりません。電源ONは一発でうまく表示されたのですが・・。

辞書の登録状況を確認すると、確かに「おふ」→「OFF」と登録されており、問題ないのですが、どうしてもうまく変換されません。

結局、「電源おふ」→「電源OFF」として登録し直してみました。

結果は、「電源オフ」と読み上げると、間違いなく「電源OFF」と入力されるようになり、設定どおりの結果になりました。

  【発声内容】     【認識結果】
 ・「電源おふ」→ 低速 ⇒「電源OFF」
 ・「電源おふ」→ 高速 ⇒「電源OFF」

ここで感じたことは、確実なコマンドの認識をさせるためには、そのコマンドをそっくり音声辞書に登録するのが一番間違いがないということでした。
 

 

数字有無による認識レベルの変化

さらに実験を継続します。
まず、最初のやり方は、数字を使わないようにしてみました。

音声リモコン2

  【発声内容】     【認識結果】
 ・「電源を入れる」⇒「電源を入れる」
 ・「電源を切る 」⇒「電源を切る」

 ・「音を大きく」⇒「音を大きく」
 ・「音を小さく」⇒「音を小さく」

 ・「音を大きくする」⇒「音を大きくする」
 ・「音を小さくする」⇒「音を小さくする」

このような読み上げ方の場合は、誤変換が非常に少なくて良いフィーリングです。
ところが、数字が入るととたんに・・

  【発声内容】     【認識結果】
 ・「音量レベル2」⇒「音量レベルに」
 ・「音量レベル3」⇒「音量レベル3」

 ・「音量設定をレベル2に」⇒「音量設計をレベルに」
 ・「音量設定をレベル2にする」⇒「音量設計をレベルににする」

 ・「チャンネル切換え2」⇒「チャンネル切り替えに」
 ・「チャンネル切換え3」⇒「チャンネル切り替え3」

 ・「チャンネルを2に」⇒「チャンネルを22」
 ・「チャンネルを2に」⇒「チャンネルをに」

 ・「チャンネルを3に」⇒「チャンネルを32」
 ・「チャンネルを3にする」⇒「チャンネルをさんにする」

というように、低いレベルになってしまいます。

特に辞書登録をしないで数字を使った場合は、かなり誤変換されそうな気配がします。「1、2、3・・」などの数字を認識させるのは可能ですが、確実性に欠けると感じました。

認識精度の特徴

認識精度の特徴

また、音声認識の認識精度には少し特徴があって、文字数が少ないほど認識精度は悪くなりやすく、多くなるほど認識精度は上がってきます。

発声された音声の特徴が少ないほど、比較(認識評価)したときの難易度が高くなり(誤変換の確率が上がり)、文字数が増えて比較する特徴が多くなると、誤認識する確率は下がってくるためです。

従って、もしも音量を音声でコントロールする場合は、そのコマンド文を「1」とか「音量1」、あるいは「音量レベル1」というようにはしないで、

「音量は小さく」「音量は普通」「音量は大きく」などのようなコマンド文とした方が、誤変換の確率は大きく減少します。(上の例は、音量調整が1~3までの3段階の例)

「チャンネル切換2」⇒「チャンネル切り替え2」

チャンネルの切換えを音声で行う場合も、やはり「チャンネル切換え2」などとした場合、「チャンネル切換え」は正しく認識されても「2」の部分が誤変換される確率が高くなります。

このような場合は、「チャンネルはニッポン放送」(にっぽんほうそう)などのように指示するコマンド文とする方がより確実になります。

まとめ

まとめると、
・音声認識で得意なのは、ある長さのある塊の熟語やフレーズを認識するのは得意で、誤認識されにくい。

しかし、
・数字やアルファベット、ひらがな1/2文字など、単発的な短い音で終わるようなもの、特徴の少ない語を認識するのは割合い苦手である。

このように音声認識にも得意/不得意があるので、その特徴を良くつかみ誤認識されることのないコマンドとする必要があります。

少々長くても、他に似たような読み方のないコマンドとすることができれば、かぎりなく誤認識のない音声認識リモコンを作ることが可能だと感じました。


a:1187 t:3 y:0