音声認識でスプライトを動かす

説明

音声認識を使ってスプライトを動かします。

なお、音声認識機能を利用する場合はプログラム実行前にマイクの使用を許可しておく必要があります。

Studioで試す

以下のリンクから Jasmine Tea でこのサンプルプログラムを Studio 画面で開いて実際に試すことができます。プログラムを実行したいときは、エディターの右下にある青色の「実行」ボタンを押してください。

Studio で開く

プログラム

// 音声認識でスプライトを動かす
cls
x=320
y=200
sprite 0,4
print "クリックすると終了します"
listen
do
  show 0,(x,y)
  tap a,b
  if a<>-1 then
    end
  end if
  if listening()=0 then
    k$=hear$()
    listen
    cls 1
    print k$
    if k$="左" then
      x=x-16
    end if
    if k$="右" then
      x=x+16
    end if
    if k$="上" then
      y=y-16
    end if
    if k$="下" then
      y=y+16
    end if
  end if
loop

解説

2行目で画面を消去しています。

3,4行目でスプライトを表示する座標を入れる変数を用意します。最初は画面中央に表示する位置にしてあります。

5行目でスプライト番号0に女の子のPIC番号である4を割り当てています。

6行目でメッセージを表示しています。このプログラムはマウスのボタンをクリックするか画面をタッチすると終了するようになっています。

7行目で音声認識を開始します。

8〜32行目までが繰り返し処理(メインループ)になります。

9行目でスプライトを表示しています。

10行目でクリック・タッチされたかどうかを変数に入れます。

11〜13行目でクリック・タッチされた場合はプログラムを終了します。

14行目で音声認識が終了した場合に単語に応じて以後の処理を行うか判断します。音声認識が終了した場合はlistening()の結果は0になります。

15行目で入力された現在の音声を変数に入れます。

16行目で再び音声認識を開始するようにします。

17行目でテキスト画面のみ消去します。

18行目で入力された音声の文字を画面に表示します。

19〜21行目で左と音声が入力された場合にスプライトのX座標を減らします。なお、左側を超えるとエラーになりますが、ここでははみ出さないようにする判定処理は行っていません。

22〜31行目も19〜21行目と同じように入力された音声に応じてスプライトの座標を示す変数の値を変えています。