「Scratchで『ジャンプ』と話しかけて、キャラクターを動かしたい」と考えていませんか?最初に、声の大きさを調べることと、話した言葉を認識することの違いを確認しましょう。
この記事では、Scratchの「音量」ブロックを使い、声や拍手に反応してネコがジャンプするゲームを作ります。外部APIや追加の拡張機能は使いません。
この作例は、言葉を聞き取る音声認識AIではありません。「ジャンプ」という言葉の意味ではなく、マイクに入った音の大きさに反応します。
1. 音声認識・音量の検出・読み上げの違い
| 機能 | 何をする? | 例 |
|---|---|---|
| 音量の検出 | マイクに入った音の大きさを数値にする | 大きな音でネコがジャンプする |
| 音声認識 | 話した言葉を文字などに変換する | 「ジャンプ」と話した内容を判定する |
| 音声合成・読み上げ | 文字を音声として出力する | 入力した「こんにちは」を読み上げる |
Scratchの「調べる」にある「音量」は、マイクの音の大きさを調べるブロックです。「音声合成」の拡張機能は文字を読み上げる機能であり、こちらが話した言葉を聞き取る機能ではありません。
言葉を認識する作品を作る場合は、それに対応した外部の学習環境やサービスを選び、接続手順を確認する必要があります。APIキーを取得するだけで、Scratchの「音量」ブロックが音声認識に変わるわけではありません。
2. 今回作るゲーム
マイクに向かって声を出すと、ネコがその場でジャンプします。
- 静かなときは、ネコは待機します。
- 音の大きさが設定値を超えると、ジャンプします。
- ジャンプ後は、音が小さくなるまで待ちます。
- もう一度声を出すと、再びジャンプします。
拍手や周囲の音にも反応します。声の主や言葉の意味を区別することはできません。
3. 必要なもの
- マイクを利用できるパソコン
- 内蔵マイク、または接続済みの外付けマイク
- ブラウザ版Scratchを開くためのインターネット接続
Scratch公式サイトを開き、「作る」から編集画面に進みます。英語表示の場合は、地球のマークから日本語を選んでください。
作成を始めるだけなら、ログインは必須ではありません。アカウントを使わない場合も、ファイルメニューから作品をコンピューターに保存できます。
4. マイクの音量を表示しよう
- 編集画面で、ネコのスプライトを選びます。
- 「コード」タブを開きます。
- 左側の「調べる」カテゴリを選びます。
- 「音量」ブロックの横にあるチェック欄をオンにします。
- マイクの利用許可が表示された場合は、許可します。
- 声を出したときに、ステージ上の音量の数値が変わるか確認します。
ここで使うのは「調べる」の「音量」です。「音」カテゴリにある、再生音の音量を変更するブロックとは役割が異なります。
音量の数値は、音の大きさを表す相対的な目安です。騒音計のようなデシベル値ではありません。
5. 反応させる音量を決めよう
まずは、判定に使う数値を「30」にしてみます。ただし、マイクの種類や距離、周囲の音によって適切な値は異なります。
- 静かなときの音量を見ます。
- 普通に声を出したときの音量を見ます。
- 静かなときより高く、声を出したときに超える値を選びます。
例えば、静かなときが5前後、声を出すと40前後になる環境なら、30を試せます。これは説明用の例で、どのパソコンでも同じ値になるわけではありません。
反応しないときは数値を下げ、周囲の音で反応するときは上げて調整します。大声を出し続ける必要はありません。
6. ジャンプするプログラムを組もう
次のブロックを、同じネコのコード領域に組みます。
以下はブロックの配置を表した見本です。文章をScratchへ貼り付けてもブロックには変換されません。各カテゴリからブロックをドラッグして組んでください。
緑の旗が押されたとき
x座標を[0]、y座標を[-100]にする
ずっと
〈(音量)>[30]〉まで待つ
[10]回繰り返す
y座標を[10]ずつ変える
[10]回繰り返す
y座標を[-10]ずつ変える
〈(音量)<[20]〉まで待つ使うブロックの場所
| カテゴリ | 使うブロック |
|---|---|
| イベント | 緑の旗が押されたとき |
| 動き | x座標を〜、y座標を〜にする/y座標を〜ずつ変える |
| 制御 | ずっと/〜まで待つ/〜回繰り返す |
| 調べる | 音量 |
| 演算 | >/< |
条件の組み方
- 「制御」の「〜まで待つ」を置きます。
- 六角形の条件欄に、「演算」の「>」を入れます。
- 「>」の左側に、「調べる」の「音量」ブロックを入れます。
- 右側の入力欄に「30」を入れます。
最後の待機条件は、同じ方法で「音量 < 20」にします。
ブロックを置く位置
2つの「〜まで待つ」と、2つの「10回繰り返す」は、すべて「ずっと」の内側に並べます。「y座標を10ずつ変える」は最初の「10回繰り返す」の内側、「y座標を-10ずつ変える」は次の「10回繰り返す」の内側に入れます。
7. プログラムの仕組み
最初にネコの位置を決める
緑の旗を押すと、ネコをx座標0、y座標-100へ戻します。途中で止めた後も、同じ場所からやり直せます。
音量が30を超えるまで待つ
「音量 > 30」の条件が成り立つと、次のジャンプ処理へ進みます。音量が30ちょうどの場合は、まだ待機します。
上がってから下がる
y座標を10ずつ10回増やすと、合計100上がります。その後、-10ずつ10回変えて、合計100下がります。両方の処理が終わると元の高さに戻ります。
音が小さくなるまで待つ
ジャンプ後は「音量 < 20」になるまで待ちます。声を出し続けたときに、すぐ次のジャンプが始まるのを防ぐためです。
判定値を調整する場合は、「反応する値」より「再び待機できる値」を低くしてください。例えば、反応を40に変えた場合でも、最後の条件は20のまま試せます。最後の値は、静かなときに下回る数値にすることが大切です。
8. 動作確認のチェック表
| 試すこと | 確認する動作 |
|---|---|
| 緑の旗を押す | ネコが開始位置に戻る |
| 静かにする | ネコが待機する |
| 声や拍手で音量を上げる | ネコが上がって下がる |
| 音を小さくしてから、もう一度声を出す | 再びジャンプする |
| 赤い停止ボタンを押す | プログラムが止まる |
「ジャンプ」以外の言葉や拍手でも反応することを確認すると、言葉を認識しているのではなく、音量に反応していると分かります。
9. うまく動かないとき
音量の数値が変わらない
- マイクが接続されているか確認します。
- マイク本体やパソコン側でミュートになっていないか確認します。
- ブラウザとOSの両方で、マイクの利用が許可されているか確認します。
- 複数のマイクがある場合は、使いたい入力機器が選択されているか確認します。
数値は変わるのにジャンプしない
声を出したときの数値が、設定した30を超えているか確認してください。また、「音量」を文字で入力するのではなく、水色のブロックを条件に入れているか確認しましょう。
一度ジャンプすると動かなくなる
ジャンプ後に、音量が20未満まで下がっているか確認してください。周囲の音が大きいと、最後の待機条件を満たせません。静かな場所で試すか、2つの判定値を環境に合わせて調整します。
何も話していないのにジャンプする
テレビ、音楽、周囲の会話などもマイクが拾います。周囲の音を減らすか、ジャンプを始める数値を上げてください。
動きがおかしい
同じネコに、別のプログラムが残っていないか確認します。最初は、この作例だけを組んで試しましょう。
10. 「ジャンプ」という言葉だけに反応させるには?
音量だけでは、言葉の違いを判定できません。「ジャンプ」と「ストップ」を区別するには、音声を文字に変換する仕組みや、音声の種類を分類する仕組みなどが必要です。
その場合は、選んだ外部環境の公式説明で、利用できる言語、対応ブラウザ、マイク権限、利用料金、音声データの扱いを確認してください。この記事の作例には、外部の音声認識サービスへの接続処理は含まれていません。
外部サービスの秘密のAPIキーを、公開するScratch作品や説明欄へ書き込まないでください。
11. 保存と次の学習
完成した作品は、ファイルメニューの「コンピューターに保存する」から保存できます。
音量で動かす仕組みを理解したら、次は「条件によって返事を変える」会話ゲームにも挑戦できます。
まとめ
Scratchの「音量」ブロックを使うと、マイクに入った音の大きさを条件にしてキャラクターを動かせます。これは言葉を聞き取る音声認識や、生成AIによる判断とは異なる仕組みです。
まずは音量を表示し、自分の環境に合う判定値を探しましょう。その後、声に反応するジャンプゲームを作ると、入力・条件判定・動作のつながりを学べます。



コメント