
前回に引き続き、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形式(ただの配列ですが)で出力しています。
出力結果を見ると・・・
|
1 |
["3×7","21","24","×"] |
3×7=21を24と答えてます。他にも、
|
1 |
["9×3","27","24","×"] |
9×3=27が24になってます。
「いち」と「しち」が「し」になってしまう傾向が見られました。
イルミネーションを見ながらクリスマスを過ごせるのか?

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



















































