入門Scratch

12.VOICEコントロール⑥【分と本】

プログラミングロボット「クムクム」で学ぶ!日本語の助数詞「分・本」の音声コントロール完全ガイド

プログラミング教育の現場で注目されているロボット教材「クムクム(Kumkum)」。Scratch(スクラッチ)ベースのブロックプログラミングで、画面の中だけでなく、実物のロボットを動かすことができるのが大きな魅力です。

今回の記事では、クムクムの「VOICEコントロール」機能の中でも、特に難易度が高いとされる「日本語の助数詞(数え方)」の自動判別機能について解説します。具体的には、「分(ふん・ぷん)」と「本(ほん・ぼん・ぽん)」の読み分けを、変数とループ処理を使って実装する方法を学びます。

この技術を習得することで、クムクムに時間をカウントさせたり、アイテム数を数えさせたりする際に、より自然で人間らしい発話を実現できるようになります。

この記事で学べること

  • Scratchでの変数を使ったカウントアップ・カウントダウンのロジック
  • クムクム独自の「数えるブロック」の使い方
  • 「1分(いっぷん)」「2分(にふん)」などの読み変えの自動化
  • 乱数を使った大きな桁数の発音テスト方法

1. 日本語の「助数詞」とプログラミングの壁

日本語を母国語としない人、あるいはコンピュータにとって、日本の「助数詞」は非常に厄介な存在です。例えば「分(Time)」を数える時を想像してください。

  • 1分(いっん)
  • 2分(にん)
  • 3分(さんん)

このように、前の数字によって「ふん」になったり「ぷん」になったりと音が変化します。「本(Stick)」の場合も同様に、「ほん」「ぼん」「ぽん」と変化します。

通常、これをプログラミングで実装しようとすると、「もし数字が1なら『いっぷん』と喋る」「もし数字が3なら『さんぷん』と喋る」といった、膨大な数の条件分岐(IF文)を書く必要があります。しかし、クムクムの専用ブロックには、この日本語処理エンジンが内蔵されており、数字を渡すだけで適切な読み方に変換してくれるのです。

2. 実践:時間を数える「分」のカウントアップ

まずは、時間の経過などを表現する際に使える「分」の読み上げプログラムを作成します。ここでは、数字を1から10まで増やしながら(カウントアップ)、ロボットに喋らせます。

変数の準備と初期化

プログラムにおいて「変化する数」を扱うためには「変数」が必要です。今回は「数える分」という名前の変数を作成します。

  • 初期化:プログラムの開始時、変数は必ずリセットする必要があります。「変数を0にする」ブロックを配置します。
  • ループ処理:「10回繰り返す」ブロックを使用し、1から10まで数え上げます。

読み上げブロックの配置

クムクムのボイスコマンドにある「数える(分)」ブロックを使用します。このブロックの数字が入る部分に、先ほど作った「変数」をはめ込みます。

ループの中で「変数を1ずつ変える(増やす)」処理を行い、その直後に読み上げブロックを置くことで、0からスタートして「1分、2分、3分…」と順に発話させることができます。動画の実演では、クムクムが「いっぷん、にふん、さんぷん…」と完璧に読み分けていることが確認できます。

3. 応用:物を数える「本」のカウントダウン

次に、在庫管理やゲームの残りアイテム数などで使える「本」の数え方を実装します。ここでは、先ほどとは逆に数字を減らしていく「カウントダウン」に挑戦します。

カウントダウンのロジック

カウントダウンを行う場合、ループの考え方が少し変わります。

  • 初期値の設定:「11」からスタートします(10から読み上げるため)。
  • 減少の処理:ループ内で変数を「-1ずつ変える」設定にします。

これにより、11 → 10 → 9… と数が減っていきます。「数える(本)」ブロックを使用することで、「10本(じゅっぽん)」「9本(きゅうほん)」「3本(さんぼん)」といった複雑な音韻変化も自動的に処理されます。

4. 上級編:乱数を使った発音テスト

最後に、より不規則で大きな数字を扱った場合のテストを行います。「乱数(ランダム)」ブロックを使用して、想定外の数字が来た時でも正しく読めるかを検証します。

乱数ブロックの活用

Scratchの演算カテゴリーにある「〇から〇までの乱数」ブロックを使用します。動画では「100から10000」のような大きな範囲を設定しています。

これを「ずっと(無限ループ)」ブロックの中に入れ、毎回異なる数字を変数に代入し、それを「数える(本)」で読み上げさせます。

実験結果

動画内のデモでは、「1514本」「2106本」といった中途半端な数字でも、クムクムは淀みなく読み上げています。これは、クムクムの音声合成エンジンが単なる録音データの再生ではなく、テキスト解析を行っていることを示しています。

5. 実装時の注意点とトラブルシューティング

このプログラムを作成する際に、いくつか注意すべきポイントがあります。

読み上げの重複(被り)を防ぐ

ロボットが喋っている最中に次の命令が送られると、音声が途切れたり、命令が無視されたりすることがあります。特にループ処理を行う場合は、「喋り終わるまで待つ」タイプのブロックを使うか、適度な「〇秒待つ」ブロックを挿入して、発話の完了を待つ制御を入れることが重要です。

変数のスコープとリセット

「分」のカウントアップから「本」のカウントダウンへ移行する際、同じ変数名(例:変数iなど)を使い回す場合は、必ず直前で変数の値を再設定(初期化)してください。意図しない数字からカウントが始まってしまうバグの原因になります。

6. 今後の応用への道:クムクムで何を作る?

今回学んだ「助数詞の自動読み上げ」は、以下のようなアプリケーションに応用可能です。

  • キッチンタイマーロボット:「あと3分です」「残り1分です」と正確に教えてくれるタイマー。
  • お買い物ごっこゲーム:「大根が3本」「牛乳が2本」など、ランダムに注文を読み上げる店員さんロボット。
  • 算数の学習支援:「鉛筆が5本ありました。2本なくなると何本ですか?」といった文章題を読み上げる先生ロボット。

特に、日本語の学習初期段階にある子供たちにとって、ロボットが正しいアクセントと変化で助数詞を教えてくれることは、非常に有効な教育ツールとなります。

まとめ

今回は、プログラミングロボット「クムクム」を使って、日本語独特の複雑な数え方「分」と「本」をマスターする方法を解説しました。

Scratchの標準機能だけでは実装が難しい日本語処理も、クムクムの拡張ブロックを使えば驚くほど簡単に実装できます。変数の操作(加算・減算)とループ処理の基礎を学びながら、同時に言語の面白さにも触れられるこのチュートリアルは、プログラミング教育の導入として非常に優れています。

ぜひ、お手元のクムクムで「いっぷん、にふん…」「いっぽん、にほん…」と喋らせて、その正確な発音を確認してみてください。

コメント

タイトルとURLをコピーしました