多言語対応のM5Unified_StackChan_ChatGPTです。
これは @mongonta555 さんのスタックチャン M5GoBottom版組み立てキットに対応したスタックチャンファームです。
こちらを参照してください。
- M5Stack Core2
- VSCode
- PlatformIO
使用しているライブラリ等は"platformio.ini"を参照してください。
- M5Unified_StackChan_ChatGPT.inoの42行目付近、サーボモーターを使用するGPIO番号を設定してください。
ChatGPTのAPIキー取得方法は以下の通りです。(詳細はこのページ一番下のリンクを参照してください。)
- OpenAIのウェブサイトにアクセスして、アカウントを作成します。メールアドレスと携帯電話番号が必要です。
- アカウント作成後、APIキーを発行します。APIキーは有料ですが、無料期間やクレジットがあります。
- SDカードのルートに以下の2つのファイルを作成しておくと、使用できるようになります。
-
wifi.txtファイル:ファイル名は"wifi.txt"で、中身は次の通りです。
YOUR_WIFI_SSID
YOUR_WIFI_PASS -
apikey.txtファイル:ファイル名は"apikey.txt"で、中身は次の通りです。
YOUR_OPENAI_APIKEY
-
もしM5Stackが以前にWifiに接続していた場合、SDカードが必要なく自動的にWifiに接続されます。
この場合、ブラウザで"http://XXX.XXX.XXX.XXX/apikey"にアクセスし、APIキーを設定できます。
(xxxx.xxxx.xxxx.xxxxはAIスタックチャンの起動時に表示されるIPアドレスです。) -
ブラウザで"http://xxxx.xxxx.xxxx.xxxx/role"にアクセスすると、ロールを設定できます。
(xxxx.xxxx.xxxx.xxxxはAIスタックチャンの起動時に表示されるIPアドレスです。)
テキストエリアに何も入力せずに送信すると、以前に設定されたロールが削除されます。
ロール情報は自動的にspiffsに保存されます。
-
ブラウザで"http://xxxx.xxxx.xxxx.xxxx/role_get"にアクセスすると、現在設定しているロールを取得できます。
-
スピーカーの音量を調整できます。
例:http://xxxx.xxxx.xxxx.xxxx/setting?volume=180
volumeの値は0~255 -
AIスタックチャンの表情を会話内容に合わせて変更できます。
ロール設定で以下の2行をそのまま入力してください。
(Happy)のように、必ず括弧で囲んで感情の種類を表し、返答の先頭に付けてください。
感情の種類には、Neutral、Happy、Sleepy、Doubt、Sad、Angryがあります。
他にもロールを設定する際は、これらの2行を最後にしてください。
出来ればこの2行のみでやってみてください。
ロールを増やすと失敗しやすくなります。
- 独り言モードを追加しました。ランダムな時間間隔で、ランダムに喋ります。
感情表現機能と組み合わせると楽しいです。
ボタンAで独り言モードをON/OFFできます。
独り言モードでも従来通りスマホから会話できます。
-
直近5回分の会話の履歴を保存する機能があります。
-
音声認識プログラムは別途ユーザーが用意する必要があります。
音声認識プログラムからこのようにhttpコマンドでテキスト(UTF-8)を渡します。
(テキストはURLエンコードして渡してください。)
http://XXX.XXX.XXX.XXX/chat?text=こんにちは
XXX.XXX.XXX.XXXの部分は起動時に表示されるM5StackのIPアドレスに置き換えてください。 -
M5Stack Core2の画面**付近にタッチするとスタックチャンの首振りを止められます。
-
M5Stack Core2のボタンCを押すと、音声合成のテストが出来ます。
次の2つの設定をします。
-
ChatGPTの設定をする
言語を英語に設定する例:ブラウザで "http://xxxx.xxxx.xxxx.xxxx/role" にアクセスして、以下のようにロールを設定します。
-
TTSの言語設定をする
言語を英語に設定する例:ブラウザで以下のように設定します。
http://xxxx.xxxx.xxxx.xxxx/setting?lang=en-US
en-US が英語の場合の言語コードです。その他の言語コードは下記リンクを参照してください。