【Scratch×ロボット】入力した言葉を喋らせる!VOICEコントロール基礎と応用完全ガイド
プログラミング教育が必修化され、Scratch(スクラッチ)を使った学習が一般的になる中で、「画面の中だけでなく、現実のロボットを動かしたい」というニーズが高まっています。
今回は、プログラミングロボット「クムクム」を使ったチュートリアルシリーズの第8弾、「VOICEコントロール②(入力とおしゃべり)」について詳しく解説します。この回では、ユーザーがキーボードで入力した文字をリアルタイムでロボットに喋らせるという、インタラクティブ(双方向)なプログラムの作り方を学びます。
これは、将来的なチャットボット開発やAIスピーカーの仕組みを理解する第一歩となる非常に重要な単元です。
1. 今回の学習概要とゴール
本記事で解説する動画では、以下の流れでプログラムを作成していきます。
-
ユーザーへの問いかけ: ロボット(Scratch)が質問を表示し、入力を待つ。
-
変数の利用: 入力されたテキストデータを「答え」として受け取る。
-
音声出力: 受け取ったデータをロボットの発話機能に渡して喋らせる。
-
文字列の結合: 「入力された名前」+「さん、こんにちは」のように言葉をつなげる。
-
発音の調整: ロボット特有のイントネーションを調整するテクニック。
これらを組み合わせることで、「あなたの名前は?」→「田中」→「田中さん、こんにちは」といった、会話のキャッチボールが成立するプログラム完成させます。
2. 基本編:入力した文字をそのまま喋らせる
まずは基本となる、ユーザー入力と音声出力の連携です。
「調べる」ブロックの活用
Scratchには、ユーザーからの入力を受け付けるための専用ブロックが用意されています。
-
「あなたの名前はなんですか?と聞いて待つ」: このブロックを使用すると、ステージ下部に入力フォームが表示され、プログラムが一時停止してユーザーの入力を待ちます。
「答え」ブロックの重要性
ユーザーがキーボードで文字(例:TANAKA)を入力しEnterキーを押すと、その内容は**「答え」**というシステム変数(あらかじめ用意された箱のようなもの)に自動的に保存されます。 この「答え」ブロックを、クムクムロボットの「喋る」コマンドの中に組み込むことで、入力した直後にロボットがその言葉を復唱する動作が実現します。
注意点: クムクムロボットの音声合成エンジンはローマ字入力に対応しているケースが多いため、入力時は「TANAKA」のようにローマ字で打つことが推奨されています。
3. 応用編:文字列を連結して会話を成立させる
単に入力した言葉をオウム返しするだけでは、会話とは言えません。入力された内容に、挨拶や感想を付け加えることで、より人間らしい動作になります。
「りんごとバナナ」ブロック(文字列結合)
Scratchの演算カテゴリーにある「りんごとバナナ」というブロック(結合ブロック)を使用します。これは2つの文字列を1つにつなげるための機能です。
動画の例では以下のように作成しています。
-
左側に「答え(入力された名前)」を入れる。
-
右側に「 san konnichiwa(さん こんにちは)」と入力する。
-
これをロボットの「喋る」ブロックに入れる。
これにより、「YAMAMOTO」と入力すれば、「YAMAMOTO san konnichiwa」とロボットが喋り、一気にアプリケーションらしい挙動になります。
応用:好きな食べ物を聞いて感想を言う
動画の後半では、質問を「好きな果物をローマ字で入力してください」に変更し、より複雑な会話に挑戦しています。
-
入力:「RINGO」(りんご)
-
ロボット:「RINGO wa soreha oishii desune」(りんご、わあ、それは美味しいですね)
このように、ユーザーの入力次第でロボットの発言の一部が変わる仕組みは、変数の活用というプログラミングの基礎概念を学ぶのに最適です。
4. プロのテクニック:ロボットの発音を自然にするコツ
ロボットやAIの音声合成において、最大の課題は「イントネーション」です。そのまま文字を渡すだけでは、平坦で機械的な喋り方になってしまうことがあります。動画では、これを解決するための実践的なテクニックが紹介されています。
空白(スペース)による「間」の生成
人間が話すとき、句読点や息継ぎで「間」が生まれます。ロボットにこれを再現させるために、文字列の中にスペースを挿入します。
-
修正前:
RINGOWASOREHAOISHIIDESUNE -
修正後:
RINGO WA SOREHA OISHII DESUNE
このようにスペースを入れることで、ロボットの読み上げにリズムが生まれ、聞き取りやすさが格段に向上します。
表記の工夫(HAとWA、長音)
ローマ字入力で日本語を喋らせる場合、助詞の「は」は「HA」ではなく「WA」と入力する方が自然に聞こえる場合があります(「こんにちは」は KONNICHIWA)。 また、動画内では「おいしい(OISHII)」の語尾を伸ばしたりアクセントを強調したりするために、あえて母音を重ねたり調整を行っています。これはVocaloidなどの調声にも通じるテクニックです。
5. 学習のまとめと今後の展望
今回のチュートリアルを通じて、以下の重要なスキルを習得できます。
-
I/O(入出力)の概念: キーボードからのInputと、スピーカーからのOutput。
-
データの処理: 変数(答え)に入ったデータを利用・加工する考え方。
-
UX(ユーザー体験)の向上: ユーザーがどう感じるかを考え、発音の間などを調整する感性。
この技術の応用先
今回学んだ「入力に対して応答を変える」という仕組みは、以下のような高度なプログラムへ発展させることができます。
-
クイズマシーン: 問題を出し、正解なら「ピンポン!」、不正解なら「ブブー」と言う。
-
通訳ロボット: 入力されたローマ字を、異なる言語風のイントネーションで喋らせる(疑似的ですが)。
-
スマートホームごっこ: 「DENKI(電気)」と入力すると、LEDを光らせて「電気をつけました」と答える。
クムクムロボットとScratchの組み合わせは、単なる画面上のシミュレーションを超えて、現実世界に物理的なフィードバック(音声や動作)を返すことができるため、子どもの知的好奇心を強く刺激します。ぜひ、親子で「どんな言葉を喋らせたら面白いか」を試行錯誤してみてください。



コメント