Copyright (c) 2024 led-mirage
この追加資料では、より詳しい情報を記載しているのだ。
チャットの部分はOpenAIのAIを使用しているので、OpenAIのアカウントとAPIの利用登録(課金およびAPIキーの作成)が必要なのだ。
アカウントを作成すると、作ってから3ヵ月間有効な無料枠($18)があるようなので、それを使ってもいいのだ。ボクの場合は利用開始から3ヵ月以上経ってしまっていたので、無料枠は利用できなくて、仕方ないから$10課金したのだ。
APIキーの作成は特に難しくないのだ。OpenAI APIの設定画面に入って、左側のAPI Keys
というメニューから新しいAPIキーを作成すればいいのだ。作成するときに表示されるAPIキーは、作成後には2度と表示できないからメモ帳などにコピペして保存しておくといいのだ。このキーはあとから設定に必要になるのだ。
OpenAI … https://platform.openai.com/
バージョン0.11.0からGoogle Gemini APIにも対応したので、OpenAIの代わりにGoogle Gemini APIを使用することもできるのだ。
現時点でGoogle Gemini APIには無料プランが設定されているので、OpenAIのAPIよりも気軽に利用することができるのだ。Google Gemini APIを使用したい場合は、専用の資料を用意したので、それを参照して欲しいのだ。
ずんだもんやVOICEVOXに入っている他のキャラクターの声でチャットを読み上げてもらうには、あらかじめVOICEVOXをインストールしておく必要があるのだ。VOICEVOXは公式サイトからダウンロードして簡単にインストールできるのだ。
VOICEVOXのユーザーインターフェイスが不要な人は、VOICEVOX Engineを利用することもできるのだ。少し玄人向けなので、分からない人は素直にVOICEVOXを利用するのがお勧めなのだ。
VOICEVOX … https://voicevox.hiroshiba.jp/
VOICEVOX Engine … https://github.com/VOICEVOX/voicevox_engine
COEIROINKはVOICEVOXと同じ無料のテキスト読み上げソフトウェアなのだ。COEIROINKをダウンロードしてインストールしておけば、ZundaGPT2でも使えるのだ。
COEIROINK … https://coeiroink.com/
A.I.VOICEで話してもらうにはA.I.VOICEを購入してインストールしておく必要があるのだ。購入方法、インストール方法などは公式ページを見て欲しいのだ。もうすでに持っている人は使ってみて欲しいのだ。
ちなみにA.I.VOICE2には対応していないので注意してなのだ。
A.I.VOICE … https://aivoice.jp/
Google製のTTSエンジンなのだ。Googleとサーバーと通信して発音する音声データを取得するのだ。そのため、他のローカルPC上で動作するTTSエンジンと比べると、発音するまでに時間がかかるのだ。いい点としては、非常に多くの言語に対応していることが挙げられるのだ。
作者の環境では動作が遅くてこのアプリには不向きだと思ったけど、せっかく作ったから搭載しておくのだ。
Google Text-to-Speechを使うには、FFmepgを別途インストールしておく必要があるのだ。公式サイトのリンクからダウンロードして、保存したフォルダにパスを通しておくのだ。
SAPI5は、Microsoftの音声認識や音声合成のAPIなのだ。Windowsの標準機能だから、何もインストールしなくても使えるのだ。ただし、日本語の声質はそこまでよくないので、ほかのアプリをインストールしたくない人向きの選択肢なのだ。
設定ファイルは2つあるのだ。ひとつはシステムの設定が書かれているapp_config.json。もうひとつはチャットするキャラクターの情報が書かれているsettings.jsonなのだ。
チャットのログファイルを保存するフォルダを指定するのだ。この値が空文字の場合はログは保存されないのだ。
新規チャットを開始したときに使われるキャラクター設定ファイルを指定するのだ。GUIから変更できるのだ。
会話を読み上げるかどうかの設定なのだ。GUIから変更できるのだ。
ウィンドウの幅の初期値なのだ。
ウィンドウの高さの初期値なのだ。
Chat APIのタイムアウト値を秒数で指定するのだ。
✨ tts/voicevox_server(既定値 http://127.0.0.1:50021)
VOICEVOXのサーバーのURLを記載するのだ。これがVOICEVOXのデフォルトなので、普通はここを変更する必要はないのだ。分かる人はわかると思うんだけど、このIPは自PCのIPになっているのだ。他のPCで実行しているVOICEVOXに声を生成してもらう場合は、このURLを変更すればいいのだ。ただ、ファイアウォールの設定とかいろいろ面倒なので、分からない人は気にする必要はないのだ。
VOICEVOXの実行ファイルのパスを記載するのだ。この項目がない場合は、VOICEVOXのWindowsへの既定のインストール先が使われるのだ。
✨ tts/coeiroink_server(既定値 http://127.0.0.1:50032)
VOICEVOXのサーバーのURLを記載するのだ。これがVOICEVOXのデフォルトなので、普通はここを変更する必要はないのだ。分かる人はわかると思うんだけど、このIPは自PCのIPになっているのだ。他のPCで実行しているVOICEVOXに声を生成してもらう場合は、このURLを変更すればいいのだ。ただ、ファイアウォールの設定とかいろいろ面倒なので、分からない人は気にする必要はないのだ。
COEIROINKの実行ファイルのパスを記載するのだ。COEIROINKは既定のインストール場所がないから、自分がインストールした場所(解凍した場所)を記載するのだ。例えば次のように記載するのだ。
"coeiroink_path": "C:/Program Files/COEIROINK_GPU/COEIROINKv2.exe"
なんのことかわからない人は、COEIROINKを起動してから、ずんだGPTを使えば問題ないのだ。
A.I.VOICEのDLLのパスを記載するのだ。この項目がない場合は、A.I.VOICEの既定のインストール先の設定が使われるのだ。
Gemini用の安全性フィルタ設定なのだ。ハラスメントに関するしきい値を設定できるのだ。詳しくはこちらの資料を参照して欲しいのだ。
Gemini用の安全性フィルタ設定なのだ。ヘイトスピーチに関するしきい値を設定できるのだ。詳しくはこちらの資料を参照して欲しいのだ。
Gemini用の安全性フィルタ設定なのだ。性表現に関するしきい値を設定できるのだ。詳しくはこちらの資料を参照して欲しいのだ。
Gemini用の安全性フィルタ設定なのだ。危険な内容に関するしきい値を設定できるのだ。詳しくはこちらの資料を参照して欲しいのだ。
settings.jsonはsettingsフォルダの中に格納されているのだ。声のキャラクターを変えたいときなどは、このファイルを編集するといいのだ。また、このファイルをコピーして別の名前を付けて保存することで、複数の設定を保存しておくことができるのだ。設定を切り替えるには、ウィンドウの設定ボタンを押すといいのだ。
あなたの名前の設定なのだ。
あなたの名前の色の設定なのだ。
あなたのメッセージのテキスト読み上げに使用するソフトウェアを選択するのだ。設定できる値は、"VOICEVOX"、"COEIROINK"、"AIVOICE"、"GTTS"、"SAPI5"、もしくはテキストを読み上げない場合に使用する""の6つなのだ。
あなたの声のIDなのだ。VOICEVOXの場合、"13"は青山龍星を意味しているのだ。VOICEVOXに収録されている他のキャラクターの声で話して欲しいときは、この値を変更すればいいのだ。キャラクターのIDを調べるには、この資料を参考にするといいのだ。
COEIROINKの場合、ここにはキャラクターのStyleIdを指定するのだ。StyleIdはこの資料を参考にしてほしいのだ。ただこの資料に載っているのは一部のキャラクターのみなのだ。使いたいキャラのStyleIdを調べるには、tool/coeiroink_speaker_list.pyを実行してほしいのだ。
A.I.VOICEの場合、ここにはキャラクターの名前かプリセットの名前を設定すればいいのだ。例えば、"琴葉 茜"とかを設定すればいいのだ。
Google Text-to-Speech(GTTS)の場合は、キャラクターが選択できないので空欄でいいのだ。
SAPI5の場合は、"Haruka"や"Ayumi"、"Sayaka"などのキャラクター名を設定するのだ。英語を発音させたい場合は"Zira"なども使えるのだ。
あなたの声の読み上げの速さの設定なのだ。VOICEVOXのデフォルトは1.0なんだけど、ボクは少し早く読み上げさせたかったので1.2としているのだ。遅くしたい場合はこの値を減らせばいいのだ。
A.I.VOICEの場合、この設定は無効なのだ。読み上げ方はA.I.VOICE Editor側のプリセットで調整して欲しいのだ。
GTTSの場合、この設定は無効なのだ。
SAPIの場合は話速を-10~10の範囲で指定できるのだ。0が標準速度なのだ。
あなたの声の高さの設定なのだ。この値を増やすと、声の高さが上がるのだ。ただ、少しの変化で大きく変わるので、0.1とか0.2とか小刻みに調整するといいのだ。
A.I.VOICEの場合、この設定は無効なのだ。読み上げ方はA.I.VOICE Editor側のプリセットで調整して欲しいのだ。
GTTS、SAPI5の場合も、この設定は無効なのだ。
チャットアシスタントの名前の設定なのだ。
チャットアシスタントの名前の色の設定なのだ。
チャットアシスタントのテキスト読み上げに使用するソフトウェアを選択するのだ。設定できる値は、"VOICEVOX"、"COEIROINK"、"AIVOICE"、"GTTS"、"SAPI5"、もしくはテキストを読み上げない場合に使用する""の6つなのだ。
チャットアシスタントの声のIDなのだ。VOICEVOXの場合、"3"はずんだもんを意味しているのだ。VOICEVOXに収録されている他のキャラクターの声で話して欲しいときは、この値を変更すればいいのだ。キャラクターのIDを調べるには、この資料を参考にするといいのだ。
COEIROINKの場合、ここにはキャラクターのStyleIdを指定するのだ。StyleIdはこの資料を参考にしてほしいのだ。ただこの資料に載っているのは一部のキャラクターのみなのだ。使いたいキャラのStyleIdを調べるには、tool/coeiroink_speaker_list.pyを実行してほしいのだ。
A.I.VOICEの場合、ここにはキャラクターの名前かプリセットの名前を設定すればいいのだ。例えば、"琴葉 茜"とかを設定すればいいのだ。
Google Text-to-Speech(GTTS)の場合は、キャラクターが選択できないので空欄でいいのだ。
SAPI5の場合は、"Haruka"や"Ayumi"、"Sayaka"などのキャラクター名を設定するのだ。英語を発音させたい場合は"Zira"なども使えるのだ。
チャットアシスタントの読み上げの速さの設定なのだ。VOICEVOXのデフォルトは1.0なんだけど、ボクは少し早く読み上げさせたかったので1.2としているのだ。遅くしたい場合はこの値を減らせばいいのだ。
A.I.VOICEの場合、この設定は無効なのだ。読み上げ方はA.I.VOICE Editor側のプリセットで調整して欲しいのだ。
GTTSの場合、この設定は無効なのだ。
SAPIの場合は話速を-10~10の範囲で指定できるのだ。0が標準速度なのだ。
チャットアシスタントの声の高さの設定なのだ。この値を増やすと、声の高さが上がるのだ。ただ、少しの変化で大きく変わるので、0.1とか0.2とか小刻みに調整するといいのだ。
A.I.VOICEの場合、この設定は無効なのだ。読み上げ方はA.I.VOICE Editor側のプリセットで調整して欲しいのだ。
GTTS、SAPI5の場合も、この設定は無効なのだ。
使用するAPIの設定なのだ。設定できる値はOpenAI
とAzureOpenAI
とGemini
の3つなのだ。
使用するAPIによって設定しないといけない環境変数が異なるから注意して欲しいのだ。
OpenAI
変数名 | 値 |
---|---|
OPENAI_API_KEY | OpenAIで取得したAPIキー |
AzureOpenAI
変数名 | 値 |
---|---|
AZURE_OPENAI_ENDPOINT | Azure OpenAI Serviceの通信先(エンドポイント) |
AZURE_OPENAI_API_KEY | Azureで取得したAPIキー |
Gemini
変数名 | 値 |
---|---|
GEMINI_API_KEY | Googleで取得したAPIキー |
使用するAIのモデル名を指定するのだ。使用するAPIによって指定できるモデル名が異なるので注意して欲しいのだ。
OpenAI
既定はリーズナブルなGTP3.5を使用しているのだ。もっと賢くしたい場合はGPT4.0系も使えるけれど、その分利用量が上がるので注意するのだ。使用できるモデルの一覧と利用料金は以下のリンクで確認できるのだ。
モデルの一覧 … https://platform.openai.com/docs/models
利用料金 … https://openai.com/pricing#language-models
AzureOpenAI
Azure上でモデルをデプロイする際につけてモデル名を指定するのだ。
Gemini
Geminiでは以下のモデル名を指定できるのだ。詳しくは、こちらの資料を参照して欲しいのだ。
- gemini-1.0-pro-latest
- gemini-1.5-flash-latest
- gemini-1.5-pro-latest
AIのキャラづけの設定なのだ。ここで、AIの台詞をずんだもんっぽくするようお願いしているのだ。ここを変更することで、ずんだもん以外のキャラクターっぽい回答を生成することも可能なのだ。
何らかの原因でAIが回答できなかった場合に表示するセリフを設定するのだ。無理なお願いをするとAIが答えてくれない場合があるから気を付けるといいのだ。
AIに送信する過去の会話の履歴数を設定するのだ。この値が大きいほど前の回答、質問を考慮した回答をAIが生成するようになって、会話のつながりがよくなるのだ。ただ、その分利用料金も増えるので注意が必要なのだ。
この設定がある理由を考えればわかるけど、AIは過去の会話を覚えていないのだ。質問をするたびに、過去の会話もAIに送信することで、AIは会話のつながりを知ることができるのだ。ただ利用料金は送信するデータ量が増えるとその分加算されるので、バランスをとることが大事なのだ。
このアプリの通信先は以下の通りなのだ。
chat/apiにOpenAI
を指定した場合は、チャットの回答を取得するために OpenAIのサーバーと通信を行うのだ。通信方法は、OpenAIのライブラリを使用しているのだ。
chat/apiにAzureOpenAI
を指定した場合は、チャットの回答を取得するために Microsoft Azure OpenAI Serviceと通信を行うのだ。通信方法は、OpenAIのライブラリを使用しているのだ。
chat/apiにGemini
を指定した場合は、チャットの回答を取得するために Googleのサーバーと通信を行うのだ。通信方法は、Googleのライブラリを使用しているのだ。
tts_softwareにGTTSを指定した場合は、テキストを音声データの変換するためにGoogleのサーバーと通信を行うのだ。通信方法は、gTTSライブラリを使用しているのだ。
テキストを音声データに変換するために、VOICEVOXのローカルサーバーと通信を行っているのだ。既定のエンドポイントは http://127.0.0.1:50021
なのだ。
テキストを音声データに変換するために、VOICEVOXのローカルサーバーと通信を行っているのだ。既定のエンドポイントは http://127.0.0.1:50032
なのだ。
テキストを音声データに変換するために、A.I.VOICE Editor APIを使用しているのだ。通信方法は明記されていないけど、名前付きパイプかなにかを使っているんじゃないかな(てきとー)。
このアプリではGUIをpywebviewで作ってるんだけど、UI(HTML)とバックエンドのPythonプログラムとの連携をとるのにTCPでリスニングしているみたい。詳しいことはわからないのだ。
システムの設定を記載したファイル。初回起動時に自動的に作成されるのだ。
チャットするキャラクターの情報を記載したファイル。これも、初回起動時に自動的に作成されるのだ。
チャットの内容を記載したファイル。ファイル名の日時はチャットを開始した日時なのだ。