誰でも簡単に複数のキャラクターAIの開発、運用、配信をするためのリポジトリです。
複数の人格と記憶を持ったキャラクターを作成
複数キャラが会話するためのコントロールシステムを作成
- 他のキャラの発言を記憶
- 発言の順番をコントロール
- systemロールの発言を全員に記憶させる
VOICEVOXによる会話の読み上げ
会話順に沿った音声の再生機能
キャラクターの立ち絵を表示、自動瞬き機能、自動口パク機能
発話の文字数調整機能
OBSとの連携
- Youtubeのコメントを表示
- キャラの発言を表示
- 発言キャラ名を表示
Windows11を推奨(動作確認済み)
(Ubuntu22.04で動作検証した場合、立ち絵が表示されないバグを確認)
環境構築 anacondaで仮想環境を作成
conda create -n kyara python=3.9 anaconda
conda activate kyara
git clone git@github.com:friku/KyaraAI.git
pip install -r requirements.txt
VOICEVOXのインストール
https://voicevox.hiroshiba.jp/
VOICEVOXをインストールし起動してください。(VOICEVOXはGUIを起動すると自動的に、APIサーバーが立ち上がります。KyaraAIではVOICEVOXのAPIを利用しています。)
OPENAIのAPIキーを環境変数に追加する。
https://platform.openai.com/account/api-keys
でAPIキーを作成します。
WINDOWSの場合、「環境変数の設定」で環境変数名を「OPENAI_API_KEY」とし、変数値に作成したAPIキーを登録します。
下記のコマンドを実行します。
python commandDebugTalk.py
キャラクターの立ち絵画面が4枚表示され、各キャラクターのボイスが出力されれば正常に動作しています。
Line 42 in a25e0c8
キャラクターに関する情報は characterConfig/ にあります。このディレクトリにはキャラクターの設定を記述するidentity.txtとキャラクターの立ち絵画像を入れるimagesディレクトリをおいてください。また、コードを実行するとキャラクターの記憶となるcontext.jsonが生成されます。
プロンプトは
Line 11 in a25e0c8
デフォルトではプロンプトは下記の構成となっております。
- キャラ設定
- f"下記はここまでの会話です\n"
- 直前の会話以外の会話履歴(直近の会話を除く)
- キャラの出力フォーマット指定
- f"下記は直前の会話です。\n*{self.characterName}として必ず20字以内で発言すること!\n"
- 直前の会話文
- Talking Head Animeへの対応
- 長期記憶の実装
- Koeiromapへの対応
機能の要望があればissueでお知らせください。
このコードはMIT licenseで提供されています。ただし、characterConfigディレクトリの中の画像ファイル、テキストファイル、jsonファイルはMIT licenseではありません。ただ、開発やデバッグ用のサンプルデータとして使用することは可能です。