App Inventor版 ChatGPTと話そう!(その2): Ionic版から作る

音声入力・出力が動いた「Ionic版 ChatGPTと話そう!(その2)」のソースコードをChatGPTに与えてApp Inventorアプリに変換してもらおうとしました。GPT-4だけで動くものを作るのはApp Inventorの知識不足で難しそうなので、GPT-4の返答を参考にしながら人間が作るのが効率が良さそうです。ここではそのように作りました。

改訂)App Inventor版 ChatGPTと話そう!(その1)の情報をGPT-4に渡すことができないかと検討していましたが、やっと見つかりました。ただし英語でプロンプトを入力しないとまともな返答をしてくれません。詳細はこちらから

GPT-4とのやり取り

プロンプト

ソースコードは長いので省略しますが実際はファイル名の後にコピペしています。

次のIonicプログラムと同じ機能を持つApp Inventorアプリを作る方法をステップ1からステップ3にしたがって教えてください。初心者でもわかるように詳しくお願いします。初心者でもわかるように詳しくお願いします。

ステップ1:細かい機能の説明
ステップ2:作り方の概略
ステップ3:初めての人でもわかるような詳しい作り方。ChatGPTとの通信部分はAPIのことを知らない人にもわかるように説明してください

home.page.html

home.page.ts

返答

提供していただいたIonicプログラムは、ユーザが音声入力を開始・停止し、その音声内容をテキストとしてOpenAIのChatGPT APIに送信し、その結果を音声として再生するというものです。この機能をApp Inventorで実装する方法を以下のステップで説明します。

ただし、App InventorはIonicなどの一部のフレームワークに比べて機能面で制限があるため、全ての機能を再現することは難しいかもしれません。特にOpenAIのChatGPT APIへの直接的な接続はサポートされていないため、代わりの方法を提案します。

ステップ1:細かい機能の説明

まずIonicプログラムがどのような機能を持っているか説明します。

  • ユーザがテキストエリアにテキストを入力できます。
  • 音声入力開始ボタンをクリックすると、音声認識が開始されます。
  • 音声入力停止ボタンをクリックすると、音声認識が停止されます。
  • 送信ボタンをクリックすると、入力されたテキスト(音声認識結果)がOpenAIのChatGPT APIに送信されます。
  • ChatGPT APIからのレスポンスはテキストとして画面に表示され、また音声として再生されます。

ステップ2:作り方の概略

次に、これらの機能をApp Inventorで再現するための概略を説明します。

  1. ユーザインターフェースを設定します。テキストボックス、ボタンなどのコンポーネントを配置します。
  2. 音声認識を開始するためのボタンのイベントハンドラを設定します。App InventorのSpeechRecognizerコンポーネントを利用します。
  3. 音声認識の結果をテキストボックスに表示するように設定します。
  4. 送信ボタンのイベントハンドラを設定します。ここでは、Webコンポーネントを使用して外部APIに接続します。
  5. レスポンスをテキストとして表示し、音声として再生するように設定します。TextToSpeechコンポーネントを使用します。

ステップ3:初めての人でもわかるような詳しい作り方

以下に、具体的な手順を詳細に説明します。ただし、OpenAIのAPIを直接使用することができないので、その代わりに任意の外部APIを使用する例を示します。なお、実際にはAPIの利用には適切なキーが必要です。

  1. App Inventorを開き、新しいプロジェクトを作成します。
  2. ユーザインターフェースの設定:
    • Designer画面で、左側のPaletteからTextBoxを選択し、Viewerの任意の位置にドラッグアンドドロップします。これがユーザの入力を受け取るテキストボックスとなります。
    • 同様に、PaletteからButtonを3つ追加します。それぞれのボタンには、"音声入力開始"、"音声入力停止"、"送信"といった適切なテキストを設定します。
    • PaletteからLabelを選択し、Viewerに追加します。これがAPIのレスポンスを表示するためのものです。
  3. 音声認識の設定:
    • PaletteからSpeechRecognizerを選択し、Viewerに追加します。このコンポーネントは非表示です。
    • “音声入力開始"ボタンをクリックした時のイベントハンドラを設定します。Blocks画面で、SpeechRecognizer1.GetTextブロックを追加します。
  4. 音声認識の結果を表示する設定:
    • Blocks画面で、SpeechRecognizer1.AfterGettingTextイベントを選択します。
    • TextBox1のTextに結果を設定するためのブロックを追加します。これにより、音声認識の結果がテキストボックスに表示されます。
  5. 外部APIへの送信設定:
    • PaletteからWebを選択し、Viewerに追加します。このコンポーネントは非表示です。
    • “送信"ボタンをクリックした時のイベントハンドラを設定します。ここでは、Web1.UrlWeb1.Getブロックを使用して外部APIに接続します。
  6. レスポンスの表示と音声再生の設定:
    • PaletteからTextToSpeechを選択し、Viewerに追加します。このコンポーネントは非表示です。
    • Web1.GotTextイベントを設定します。このイベントは、WebコンポーネントがAPIからレスポンスを受け取った時に発生します。
    • Label1のTextにレスポンスを設定し、TextToSpeechコンポーネントを使用してレスポンスを音声として再生します。

以上が、IonicプログラムをApp Inventorで実装する方法です。なお、OpenAIのAPIを直接使用する代わりに、自分で作成した中間サーバーを利用する方法もあります。その中間サーバーでOpenAIのAPIと通信を行い、App Inventorからはその中間サーバーにリクエストを送るという形になります。

この返答だけで作るのは難しそうなので音声入力・出力部分はこの返答を参考にしながら「ChatGPTと話そう!(その1)」に音声入力・出力機能を追加しました。音声入力は自動的に停止するので音声入力停止ボタンは機能していません。

デザイン編集画面
ブロック編集画面

ChatGPT,チュートリアル