九九でクリスマスツリーを光らせよう

前回に引き続き、obnizを使ってLEDテープを光らせようと思います。

現在我が家では、子供が九九を覚えられない課題を抱えています。

それに絡めたプロダクトを考えます。

九九の正解1つにつき1つLED点灯

Webアプリで九九を出題します。

正解を入力するたびに、1つずつLEDが光るゲームです。

最終的に得点(正解数 ÷ 81 × 100の切り捨て)が出て、得点に応じて起こるイベントが変わります。

【100点】
イルミネーション(LEDランダム点灯)+クリスマスソングが流れる

【99~90点】
拍手と歓声が聞こえる

【89~80点】
「ははははは」笑い声が聞こえる(ちょっとさげすんだ感じ)

【79点以下】
「なんでやねん」

・・・子供はわざと悪い点を取って、「なんでやねん」を聞き、面白がっています。

クリスマス当日までに、はたして100点を取れるのか?

合成音声出力と音声入力対応だが

このWebアプリは出題の際、「さざんが」「ろくご」といった、合成音声でしゃべってくれます。

Sound of Textというサイトで合成音声を作ったのですが、「using the text to speech engine from Google Translate.」・・・Googleの合成音声のようです。

ライセンスが分からず、個人で楽しむ程度にします。

 

また、九九の答えの入力では、音声入力に対応しており、対話のように解答していけます。

これもGoogleさんの用意してくれた音声認識 (Asynchronous Speech Recognition)APIを使っています。

以下、音声認識のコードだけ抜粋します。

var rec = new webkitSpeechRecognition();
rec.continuous = true;
rec.interimResults = true;
rec.lang = 'ja-JP';
rec.onresult = function(e){
  for(var i = e.resultIndex; i < e.results.length; ++i){
    if (e.results[i].isFinal) {
      var val = e.results[i][0].transcript;
      if(val === "し"){
        val = 4;
      }else if(val === "く"){
        val = 9;
      }
      if(isNaN(val)){
        $rec.text(val + " ?");
      }else{
        $rec.text("");
        $answer.val(val);
        $form.submit();
      }
    }
  }
};

ににんが「し」、さざんが「く」は、数字として認識しないので、「し」⇒4、「く」⇒9に変換しています。

音声認識により、対話している感じが面白いのですが、最終的にこの機能は消しました。

「ろくご・・・」と問題をつぶやいてしまうと、6×5=[65]とご入力されてしまいます。

結局テンキー入力を採用しました。

間違いはどこだ?

このWebアプリは、ローカルサーバーで起動しており、採点結果のデータが指定フォルダに保存されます。

採点データは再テストで利用しやすいよう、JSON形式(ただの配列ですが)で出力しています。

出力結果を見ると・・・

3×7=21を24と答えてます。他にも、

9×3=27が24になってます。

「いち」と「しち」が「し」になってしまう傾向が見られました。

イルミネーションを見ながらクリスマスを過ごせるのか?

クリスマスまでに100点を取り、クリスマスソングを聞きながら、イルミネーションを見ることができるのか?

子供の成長に期待。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)