Skip to content

ずんだもんとチャットするアプリなのだ。ずんだもんの声で答えてくれるのが特徴なのだ。v0.4.0からA.I.VOICEにも対応したのだ!

License

Notifications You must be signed in to change notification settings

led-mirage/ZundaGPT

Repository files navigation

ずんだGPT

Copyright (c) 2023 led-mirage

概要

ずんだもんとチャットするアプリなのだ。ずんだもんの声で答えてくれるのが特徴なのだ。

スクリーンショット

screenshot.mp4

動作確認環境

  • Windows 11 Pro 23H2
  • Python 3.12.0
  • VOICEVOX 0.14.10
  • VOICEVOX ENGINE 0.14.6

必要なもの

✅ OpenAIアカウントとAPIキー

チャットの部分はOpenAIのAIを使用しているので、OpenAIのアカウントとAPIの利用登録(課金およびAPIキーの作成)が必要なのだ。

アカウントを作成すると、作ってから3ヵ月間有効な無料枠($18)があるようなので、それを使ってもいいのだ。ボクの場合は利用開始から3ヵ月以上経ってしまっていたので、無料枠は利用できなくて、仕方ないから$10課金したのだ。

APIキーの作成は特に難しくないのだ。OpenAI APIの設定画面に入って、左側のAPI Keysというメニューから新しいAPIキーを作成すればいいのだ。作成するときに表示されるAPIキーは、作成後には2度と表示できないからメモ帳などにコピペして保存しておくといいのだ。このキーはあとから設定に必要になるのだ。

OpenAI … https://platform.openai.com/

✅ VOICEVOX

ずんだもんの声でチャットを読み上げてもらうにはVOICEVOXを起動しておく必要があるのだ。VOICEVOXは公式サイトからダウンロードして簡単にインストールできるのだ。

VOICEVOXのユーザーインターフェイスが不要な人は、VOICEVOX Engineを利用することもできるのだ。少し玄人向けなので、分からない人は素直にVOICEVOXを利用するのがお勧めなのだ。

声が不要な人はVOICEVOXをインストールする必要はないのだ。ずんだもんがテキストだけでチャットしてくれるのだ。

VOICEVOX … https://voicevox.hiroshiba.jp/
VOICEVOX Engine … https://github.com/VOICEVOX/voicevox_engine

実行方法

🛩️ 実行ファイル(EXE)を使う場合

1. プロジェクト用のフォルダの作成

任意の場所にプロジェクト用のフォルダを作成するのだ。

2. アプリのダウンロード

以下のリンクから ZundaGPT.ZIP をダウンロードして、作成したフォルダに展開するのだ。

https://github.com/led-mirage/ZundaGPT/releases/tag/v0.3.0

3. 実行

VOICEVOX を起動したのち、ZundaGPT.exeをダブルクリックすればアプリが起動するのだ。

🛩️ Pythonで実行する場合

1. プロジェクト用のフォルダの作成

任意の場所にプロジェクト用のフォルダを作成するのだ。

2. ターミナルの起動

ターミナルかコマンドプロンプトを起動して、作成したプロジェクトフォルダに移動するのだ。

3. ソースファイルのダウンロード

ZIPファイルをダウンロードして作成したフォルダに展開するのだ。
または、Gitが使える方は以下のコマンドを実行してクローンしてもOKなのだ。

git clone https://github.com/led-mirage/ZundaGPT.git

4. ライブラリのインストール

以下のコマンドを実行して必要なライブラリをインストールするのだ。

pip install -r requirements.txt

5. 実行

VOICEVOX を起動したのち、以下のコマンドを実行するとアプリが起動するのだ。

python main.py

設定

⚙️ OSの環境変数

OpenAIのAPIキーをOSの環境変数に登録しておく必要があるのだ。変数名をOPENAI_API_KEYとして、取得したAPIキーの値を登録するのだ。

キー 意味
OPENAI_API_KEY APIキー

Windowsの場合は、Windowsの検索窓で「環境変数を編集」で検索すると設定画面が立ち上がるので、そこでユーザー環境変数を追加すればいいのだ。

⚙️ アプリケーション設定ファイル(オプション)

settings.jsonファイルにはこのアプリの設定情報が記載されているのだ。普通は特に変更する必要はないけど、自分用にカスタマイズしたい人は、このファイルをいじるといいのだ。以下に設定項目を簡単に紹介するのだ。

✨ echo(既定値 true)v0.2.0から新設

声に出して読み上げるかどうかの設定なのだ。設定できる値はtruefalseの2つなのだ。

@echo [ on | off ]コマンドで設定可能なのだ。

✨ speaker_id(既定値 3)

声のIDなのだ。3はずんだもんを意味しているのだ。VOICEVOXに収録されている他のキャラクターの声で話して欲しいときは、この値を変更すればいいのだ。キャラクターのIDを調べるには、この資料を参考にするといいのだ。

@speaker_id [数値]コマンドで設定可能なのだ。

✨ speed_scale(既定値 1.2)

読み上げの速さの設定なのだ。VOICEVOXのデフォルトは1.0なんだけど、ボクは少し早く読み上げさせたかったので1.2としているのだ。遅くしたい場合はこの値を減らせばいいのだ。

@speaker_scale [数値]コマンドで設定可能なのだ。

✨ pitch_scale(既定値 0.0)

声の高さの設定なのだ。この値を増やすと、声の高さが上がるのだ。ただ、少しの変化で大きく変わるので、0.1とか0.2とか小刻みに調整するといいのだ。

@pitch_scale [数値]コマンドで設定可能なのだ。

✨ user_echo(既定値 true)v0.2.0から新設

あなたのメッセージを声に出して読み上げるかどうかの設定なのだ。設定できる値はtruefalseの2つなのだ。

@user_echo [ on | off ]コマンドで設定可能なのだ。

✨ user_speaker_id(既定値 13)v0.2.0から新設

あなたの声のIDなのだ。13は青山龍星を意味しているのだ。VOICEVOXに収録されている他のキャラクターの声で話して欲しいときは、この値を変更すればいいのだ。キャラクターのIDを調べるには、この資料を参考にするといいのだ。

@user_speaker_id [数値]コマンドで設定可能なのだ。

✨ user_speed_scale(既定値 1.2)v0.2.0から新設

あなたの声の読み上げの速さの設定なのだ。VOICEVOXのデフォルトは1.0なんだけど、ボクは少し早く読み上げさせたかったので1.2としているのだ。遅くしたい場合はこの値を減らせばいいのだ。

@user_speed_scale [数値]コマンドで設定可能なのだ。

✨ user_pitch_scale(既定値 0.0)v0.2.0から新設

あなたの声の高さの設定なのだ。この値を増やすと、声の高さが上がるのだ。ただ、少しの変化で大きく変わるので、0.1とか0.2とか小刻みに調整するといいのだ。

@user_pitch_scale [数値]コマンドで設定可能なのだ。

✨ voicevox_server(既定値 http://127.0.0.1:50021)

VOICEVOXのサーバーのURLを記載するのだ。これがVOICEVOXのデフォルトなので、普通はここを変更する必要はないのだ。分かる人はわかると思うんだけど、このIPは自PCのIPになっているのだ。他のPCで実行しているVOICEVOXに声を生成してもらう場合は、このURLを変更すればいいのだ。ただ、ファイアウォールの設定とかいろいろ面倒なので、分からない人は気にする必要はないのだ。

✨ chat_api(既定値 OpenAI)

使用するAPIの設定なのだ。設定できる値はOpenAIAzureOpenAIの二つなのだ。あまり使っている人はいないかもしれないけど、Azure OpenAI ServiceのAPIを使用する場合はAzureOpenAIにするのだ。

AzureOpenAIを使う場合は、設定しないといけない環境変数が違うので注意して欲しいのだ。

キー 意味
AZURE_OPENAI_ENDPOINT Azure OpenAI Serviceの通信先(エンドポイント)
AZURE_OPENAI_API_KEY APIキー

需要がないと思うのでAzure OpenAI Serviceの詳しい説明は省略するのだ。使いたい人は自分で調べて欲しいのだ。

✨ chat_model(既定値 gpt-3.5-turbo-1106)

OpenAIのテキスト生成のモデル名を指定するのだ。これを変更することでAIの賢さが変わるのだ。既定はリーズナブルなGTP3.5を使用しているのだ。もっと賢くしたい場合はGPT4.0系も使えるけれど、その分利用量が上がるので注意するのだ。使用できるモデルの一覧と利用料金は以下のリンクで確認できるのだ。

モデルの一覧 … https://platform.openai.com/docs/models
利用料金 … https://openai.com/pricing#language-models

✨ chat_character_name(既定値 ずんだ)

コマンドプロンプトに表示するキャラクターの名前を設定すのだ。話者を変えた場合や、自分の好きな名前にしたい場合はここを編集するといいのだ。

✨ chat_instraction(既定値 君は優秀なアシスタント…以下略)

AIのキャラづけの設定なのだ。ここで、AIの台詞をずんだもんっぽくするようお願いしているのだ。ここを変更することで、ずんだもん以外のキャラクターっぽい回答を生成することも可能なのだ。

✨ chat_bad_response(既定値 答えられないのだ)

何らかの原因でAIが回答できなかった場合に表示するセリフを設定するのだ。無理なお願いをするとAIが答えてくれない場合があるから気を付けるといいのだ。

✨ chat_history_size(既定値 6)

AIに送信する過去の会話の履歴数を設定するのだ。この値が大きいほど前の回答、質問を考慮した回答をAIが生成するようになって、会話のつながりがよくなるのだ。ただ、その分利用料金も増えるので注意が必要なのだ。

この設定がある理由を考えればわかるけど、OpenAIのAIは過去の会話を覚えていないのだ。質問をするたびに、過去の会話もAIに送信することで、AIは会話のつながりを知ることができるのだ。ただ利用料金は送信するデータ量が増えるとその分加算されるので、バランスをとることが大事なのだ。

✨ chat_log_folder(既定値 log)v0.2.0から新設

チャットのログファイルを保存するフォルダを指定するのだ。この値が空文字の場合はログは保存されないのだ。

✨ voicevox_autorun(既定値 true)v0.3.0から新設

ZundaGTP起動時にVOICEVOXを自動的に起動するかどうかを指定するのだ。この値がTrueだと自動起動するのだ。

✨ voicevox_path(既定値 %LOCALAPPDATA%/Programs/VOICEVOX/VOICEVOX.exe)v0.3.0から新設

VOICEVOXの実行ファイルのパスを記載するのだ。この項目がない場合は、VOICEVOXのWindowsへの既定のインストール先が使われるのだ。

出力ファイル

🗒️ チャットログファイル

チャットのログはlogファルダに出力されるのだ。出力先はsettings.jsonファイルで変更することもできるのだ。アプリが起動してから終了するまでを1ファイルで出力するのだよ。

🗒️ OpenAI API利用量確認ファイル

monthly_token_usage.jsonファイルは、このアプリで使用したOpenAI APIの利用量(トークン数)を月別に記録するファイルなのだ。利用料はトークン数(会話の量)で算出されるので、この値を参考にするといいのだ。

ただ、モデルによる利用料金の違いや、質問と回答に対する利用料金が異なるなどの細かい点は考慮していないので、あくまで参考までとして欲しいのだ。正確な使用量はOpenAIのサイトで確認してほしいのだ。

注意事項

⚡ OpenAIの利用料金について

このアプリは無料だけど、OpenAI APIを使うには別途料金が発生するのだ(お試し用の無料枠もあるけど)。なので、使い過ぎには注意するのだ。定期的にOpenAIのサイトで現在の利用状況を確認するなどして自己管理して欲しいのだ。

そもそも自動チャージ設定を有効にしなければチャージされた分しか課金されないはずなので、そこまで心配する必要はないけれど、OpenAIのサイトでは月毎の利用上限なども設定できるのでそれらを活用して思わぬ出費を防ぐといいのだ。

⚡ APIキーについて

APIキーはあなただけのものなので、人に教えたらダメなのだ。流出すると悪い人に勝手に使われてしまう可能性があるのだ。もし流出してしまったら、OpenAIのサイトで現在使っているAPIキーを削除して、別のAPIキーを作ればいいのだ。

ただ、APIキーをひとつしか持っていない場合、新しいAPIキーを作ってからじゃないと古いAPIキーを削除できないようなのだ。これはOpenAIの仕様のようなんだけど、ボク的にはちょっといただけない仕様だと思っているのだ。将来的に改善することを願っているけれど、最悪支払い情報(クレジットカード情報)を削除してしまえばいいような気もするのだ。

なにわともあれ、APIキーと利用料金には注意を払って欲しいのだ。

⚡ IMEの設定について

WindowsのIME設定で「以前のバージョンのMicrosoft IMEを使う」という項目がオンになっていると、日本語入力の最中にフリーズしたり、アプリが落ちたりする現象が確認されているのだ。既定値はオフなのでこの現象に遭遇することはあまりないだろうけど、もし同じ現象にあったら設定を確認してみるといいのだ。

⚡ 免責事項

いまのところ特に問題点は見つかっていないけど、バグなんてものは潜在的に必ずあるし、0になるなんてことはあり得ないのだ。また、もしバグがあってそのせいで貴方に損害を与えたとしても、著作権者はいかなる責任も負いかねるのでその点を理解して使って欲しいのだ。

使用しているライブラリ

🔖 openai 1.4.0

ホームページ: https://github.com/openai/openai-python
ライセンス:Apache License 2.0

🔖 requests 2.31.0

ホームページ: https://requests.readthedocs.io/en/latest/
ライセンス:Apache License 2.0

🔖 PyAudio 0.2.14

ホームページ: https://people.csail.mit.edu/hubert/pyaudio/
ライセンス:MIT License

🔖 psutil 5.9.7

ホームページ:https://psutil.readthedocs.io/en/latest/#
ライセンス:BSD 3-Clause License

ライセンス

© 2023 led-mirage

本アプリケーションは MITライセンス の下で公開されています。詳細については、プロジェクトに含まれる LICENSE ファイルを参照してください。

バージョン履歴

0.1.0 (2023/12/16)

  • ファーストリリース

0.2.0 (2023/12/18)

  • チャットのログを保存する機能を追加
  • ユーザー(あなた)のメッセージを読み上げる機能を追加
  • 設定用のコマンドを追加
  • chat_history_sizeが効かないバグを修正

0.3.0 (2023/12/24)

  • VOICEVOX自動起動機能を追加

さいごに

楽しいと感じてくれると嬉しいのだ。また、使った感想などをissueなどに書き込んでくれるともっと嬉しいのだ。不定期でバージョンアップしていく予定なのでよろしくお願いしますなのだ。

それでは、ハッピー・コーディング!

About

ずんだもんとチャットするアプリなのだ。ずんだもんの声で答えてくれるのが特徴なのだ。v0.4.0からA.I.VOICEにも対応したのだ!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published