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の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 Engineを利用することもできるのだ。少し玄人向けなので、分からない人は素直にVOICEVOXを利用するのがお勧めなのだ。
声が不要な人はVOICEVOXをインストールする必要はないのだ。ずんだもんがテキストだけでチャットしてくれるのだ。
VOICEVOX … https://voicevox.hiroshiba.jp/
VOICEVOX Engine … https://github.com/VOICEVOX/voicevox_engine
任意の場所にプロジェクト用のフォルダを作成するのだ。
以下のリンクから ZundaGPT.ZIP をダウンロードして、作成したフォルダに展開するのだ。
https://github.com/led-mirage/ZundaGPT/releases/tag/v0.3.0
VOICEVOX を起動したのち、ZundaGPT.exeをダブルクリックすればアプリが起動するのだ。
任意の場所にプロジェクト用のフォルダを作成するのだ。
ターミナルかコマンドプロンプトを起動して、作成したプロジェクトフォルダに移動するのだ。
ZIPファイルをダウンロードして作成したフォルダに展開するのだ。
または、Gitが使える方は以下のコマンドを実行してクローンしてもOKなのだ。
git clone https://github.com/led-mirage/ZundaGPT.git
以下のコマンドを実行して必要なライブラリをインストールするのだ。
pip install -r requirements.txt
VOICEVOX を起動したのち、以下のコマンドを実行するとアプリが起動するのだ。
python main.py
OpenAIのAPIキーをOSの環境変数に登録しておく必要があるのだ。変数名をOPENAI_API_KEY
として、取得したAPIキーの値を登録するのだ。
キー | 意味 |
---|---|
OPENAI_API_KEY | APIキー |
Windowsの場合は、Windowsの検索窓で「環境変数を編集」で検索すると設定画面が立ち上がるので、そこでユーザー環境変数を追加すればいいのだ。
settings.json
ファイルにはこのアプリの設定情報が記載されているのだ。普通は特に変更する必要はないけど、自分用にカスタマイズしたい人は、このファイルをいじるといいのだ。以下に設定項目を簡単に紹介するのだ。
声に出して読み上げるかどうかの設定なのだ。設定できる値はtrue
かfalse
の2つなのだ。
@echo [ on | off ]
コマンドで設定可能なのだ。
声のIDなのだ。3はずんだもんを意味しているのだ。VOICEVOXに収録されている他のキャラクターの声で話して欲しいときは、この値を変更すればいいのだ。キャラクターのIDを調べるには、この資料を参考にするといいのだ。
@speaker_id [数値]
コマンドで設定可能なのだ。
読み上げの速さの設定なのだ。VOICEVOXのデフォルトは1.0なんだけど、ボクは少し早く読み上げさせたかったので1.2としているのだ。遅くしたい場合はこの値を減らせばいいのだ。
@speaker_scale [数値]
コマンドで設定可能なのだ。
声の高さの設定なのだ。この値を増やすと、声の高さが上がるのだ。ただ、少しの変化で大きく変わるので、0.1とか0.2とか小刻みに調整するといいのだ。
@pitch_scale [数値]
コマンドで設定可能なのだ。
あなたのメッセージを声に出して読み上げるかどうかの設定なのだ。設定できる値はtrue
かfalse
の2つなのだ。
@user_echo [ on | off ]
コマンドで設定可能なのだ。
あなたの声のIDなのだ。13は青山龍星を意味しているのだ。VOICEVOXに収録されている他のキャラクターの声で話して欲しいときは、この値を変更すればいいのだ。キャラクターのIDを調べるには、この資料を参考にするといいのだ。
@user_speaker_id [数値]
コマンドで設定可能なのだ。
あなたの声の読み上げの速さの設定なのだ。VOICEVOXのデフォルトは1.0なんだけど、ボクは少し早く読み上げさせたかったので1.2としているのだ。遅くしたい場合はこの値を減らせばいいのだ。
@user_speed_scale [数値]
コマンドで設定可能なのだ。
あなたの声の高さの設定なのだ。この値を増やすと、声の高さが上がるのだ。ただ、少しの変化で大きく変わるので、0.1とか0.2とか小刻みに調整するといいのだ。
@user_pitch_scale [数値]
コマンドで設定可能なのだ。
✨ voicevox_server(既定値 http://127.0.0.1:50021)
VOICEVOXのサーバーのURLを記載するのだ。これがVOICEVOXのデフォルトなので、普通はここを変更する必要はないのだ。分かる人はわかると思うんだけど、このIPは自PCのIPになっているのだ。他のPCで実行しているVOICEVOXに声を生成してもらう場合は、このURLを変更すればいいのだ。ただ、ファイアウォールの設定とかいろいろ面倒なので、分からない人は気にする必要はないのだ。
使用するAPIの設定なのだ。設定できる値はOpenAI
とAzureOpenAI
の二つなのだ。あまり使っている人はいないかもしれないけど、Azure OpenAI ServiceのAPIを使用する場合はAzureOpenAI
にするのだ。
AzureOpenAI
を使う場合は、設定しないといけない環境変数が違うので注意して欲しいのだ。
キー | 意味 |
---|---|
AZURE_OPENAI_ENDPOINT | Azure OpenAI Serviceの通信先(エンドポイント) |
AZURE_OPENAI_API_KEY | APIキー |
需要がないと思うのでAzure OpenAI Serviceの詳しい説明は省略するのだ。使いたい人は自分で調べて欲しいのだ。
OpenAIのテキスト生成のモデル名を指定するのだ。これを変更することでAIの賢さが変わるのだ。既定はリーズナブルなGTP3.5を使用しているのだ。もっと賢くしたい場合はGPT4.0系も使えるけれど、その分利用量が上がるので注意するのだ。使用できるモデルの一覧と利用料金は以下のリンクで確認できるのだ。
モデルの一覧 … https://platform.openai.com/docs/models
利用料金 … https://openai.com/pricing#language-models
コマンドプロンプトに表示するキャラクターの名前を設定すのだ。話者を変えた場合や、自分の好きな名前にしたい場合はここを編集するといいのだ。
AIのキャラづけの設定なのだ。ここで、AIの台詞をずんだもんっぽくするようお願いしているのだ。ここを変更することで、ずんだもん以外のキャラクターっぽい回答を生成することも可能なのだ。
何らかの原因でAIが回答できなかった場合に表示するセリフを設定するのだ。無理なお願いをするとAIが答えてくれない場合があるから気を付けるといいのだ。
AIに送信する過去の会話の履歴数を設定するのだ。この値が大きいほど前の回答、質問を考慮した回答をAIが生成するようになって、会話のつながりがよくなるのだ。ただ、その分利用料金も増えるので注意が必要なのだ。
この設定がある理由を考えればわかるけど、OpenAIのAIは過去の会話を覚えていないのだ。質問をするたびに、過去の会話もAIに送信することで、AIは会話のつながりを知ることができるのだ。ただ利用料金は送信するデータ量が増えるとその分加算されるので、バランスをとることが大事なのだ。
チャットのログファイルを保存するフォルダを指定するのだ。この値が空文字の場合はログは保存されないのだ。
ZundaGTP起動時にVOICEVOXを自動的に起動するかどうかを指定するのだ。この値がTrueだと自動起動するのだ。
VOICEVOXの実行ファイルのパスを記載するのだ。この項目がない場合は、VOICEVOXのWindowsへの既定のインストール先が使われるのだ。
チャットのログはlogファルダに出力されるのだ。出力先はsettings.jsonファイルで変更することもできるのだ。アプリが起動してから終了するまでを1ファイルで出力するのだよ。
monthly_token_usage.json
ファイルは、このアプリで使用したOpenAI APIの利用量(トークン数)を月別に記録するファイルなのだ。利用料はトークン数(会話の量)で算出されるので、この値を参考にするといいのだ。
ただ、モデルによる利用料金の違いや、質問と回答に対する利用料金が異なるなどの細かい点は考慮していないので、あくまで参考までとして欲しいのだ。正確な使用量はOpenAIのサイトで確認してほしいのだ。
このアプリは無料だけど、OpenAI APIを使うには別途料金が発生するのだ(お試し用の無料枠もあるけど)。なので、使い過ぎには注意するのだ。定期的にOpenAIのサイトで現在の利用状況を確認するなどして自己管理して欲しいのだ。
そもそも自動チャージ設定を有効にしなければチャージされた分しか課金されないはずなので、そこまで心配する必要はないけれど、OpenAIのサイトでは月毎の利用上限なども設定できるのでそれらを活用して思わぬ出費を防ぐといいのだ。
APIキーはあなただけのものなので、人に教えたらダメなのだ。流出すると悪い人に勝手に使われてしまう可能性があるのだ。もし流出してしまったら、OpenAIのサイトで現在使っているAPIキーを削除して、別のAPIキーを作ればいいのだ。
ただ、APIキーをひとつしか持っていない場合、新しいAPIキーを作ってからじゃないと古いAPIキーを削除できないようなのだ。これはOpenAIの仕様のようなんだけど、ボク的にはちょっといただけない仕様だと思っているのだ。将来的に改善することを願っているけれど、最悪支払い情報(クレジットカード情報)を削除してしまえばいいような気もするのだ。
なにわともあれ、APIキーと利用料金には注意を払って欲しいのだ。
WindowsのIME設定で「以前のバージョンのMicrosoft IMEを使う」という項目がオンになっていると、日本語入力の最中にフリーズしたり、アプリが落ちたりする現象が確認されているのだ。既定値はオフなのでこの現象に遭遇することはあまりないだろうけど、もし同じ現象にあったら設定を確認してみるといいのだ。
いまのところ特に問題点は見つかっていないけど、バグなんてものは潜在的に必ずあるし、0になるなんてことはあり得ないのだ。また、もしバグがあってそのせいで貴方に損害を与えたとしても、著作権者はいかなる責任も負いかねるのでその点を理解して使って欲しいのだ。
ホームページ: https://github.com/openai/openai-python
ライセンス:Apache License 2.0
ホームページ: https://requests.readthedocs.io/en/latest/
ライセンス:Apache License 2.0
ホームページ: https://people.csail.mit.edu/hubert/pyaudio/
ライセンス:MIT License
ホームページ:https://psutil.readthedocs.io/en/latest/#
ライセンス:BSD 3-Clause License
© 2023 led-mirage
本アプリケーションは MITライセンス の下で公開されています。詳細については、プロジェクトに含まれる LICENSE ファイルを参照してください。
- ファーストリリース
- チャットのログを保存する機能を追加
- ユーザー(あなた)のメッセージを読み上げる機能を追加
- 設定用のコマンドを追加
- chat_history_sizeが効かないバグを修正
- VOICEVOX自動起動機能を追加
楽しいと感じてくれると嬉しいのだ。また、使った感想などをissueなどに書き込んでくれるともっと嬉しいのだ。不定期でバージョンアップしていく予定なのでよろしくお願いしますなのだ。
それでは、ハッピー・コーディング!