音声

スマートフォンやタブレットといった小型で持ち運びがしやすいコンピューターが現在主流となっています。多くの方々は、液晶画面を指で触りながら操作を行っています。しかし、最近では物理的に触って操作をするのではなく、音声を使ってコンピューターを操作する試みが盛んに行われるようになりました。スマートスピーカーといった音声で AI アシスタントに何かお願いをして、やはり音声で結果を聞くことを前提とした製品も普及しています。

Jasmine Tea では、音声を扱うプログラムを作成して試すことができます。具体的には、音声を以下のように扱うことができます。

  • Jasmine Tea のプログラムから、文字列を音声合成してスピーカーから発話させる。
  • マイクに話された音声を認識して文字列に変換し、Jasmine Tea のプログラムから利用する。

音声合成および音声認識は、Jasmine Tea が動作するウェブブラウザが提供する機能を使って行われます。そのため、特に音声認識を利用する際には、ウェブブラウザから音声認識機能を本当に有効にしてよいかどうか、問い合わせが行われます。

文字列の内容を音声合成してスピーカーから発話するには、speak 命令を使います。以下は、speak 命令を使って文章を発話する例です。

speak "こんにちは。"
speak "私は、Jasmine Teaです。"

Jasmine Tea で音声認識を利用するために、以下の命令や関数を使います。

  • listen 命令 - 音声認識を開始する。
  • hear$ 関数 - 認識された音声を文字列にして得る。
  • listening 関数 - 音声認識をしている途中かどうかを得る。

以下は、音声認識を行った結果を実行画面に表示するプログラム例です。

listen
do
  if not listening() then
    print hear$()
    exit do
  end if
loop

listen 命令を使って音声認識を開始して、listening() 関数によって音声認識の途中かどうかを繰り返し確認しています。音声認識が終了したときは、hear$ 関数を使って認識された音声の文字列を得ます。

音声認識が開始された後に何も音声が認識されなかったときは、一定の時間(ウェブブラウザによって異なります)が経過した後に音声認識は終了します。その際には、hear$ 関数の結果は ""(空文字)となります。

音声認識の認識精度は、ウェブブラウザによって異なります。しかし、どのウェブブラウザにおいても、単語ではなく文章を認識させたほうが認識精度は良い傾向があります。例えば、「左」とだけ発話したときよりも、「私は左に行きます」と発話したほうが、正しく認識される確率は高くなります。