Giter Club home page Giter Club logo

kyaraai's Introduction

KyaraAI

誰でも簡単に複数のキャラクターAIの開発、運用、配信をするためのリポジトリです。

機能

複数の人格と記憶を持ったキャラクターを作成
複数キャラが会話するためのコントロールシステムを作成

  • 他のキャラの発言を記憶
  • 発言の順番をコントロール
  • systemロールの発言を全員に記憶させる

VOICEVOXによる会話の読み上げ
会話順に沿った音声の再生機能
キャラクターの立ち絵を表示、自動瞬き機能、自動口パク機能
発話の文字数調整機能
OBSとの連携

  • Youtubeのコメントを表示
  • キャラの発言を表示
  • 発言キャラ名を表示

requirements

Windows11を推奨(動作確認済み)
(Ubuntu22.04で動作検証した場合、立ち絵が表示されないバグを確認)

環境構築 anacondaで仮想環境を作成

conda create -n kyara python=3.9 anaconda
conda activate kyara
git clone [email protected]: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キーを登録します。

quick start

下記のコマンドを実行します。

python commandDebugTalk.py

キャラクターの立ち絵画面が4枚表示され、各キャラクターのボイスが出力されれば正常に動作しています。

会話に参加するキャラクターを選ぶ

characterAIs = [ruminesAI, rianAI, ranAI, neonAI]
この行のように作成されたキャラクターをcharacterAIsのリストに入れてください。

独自の人格を持ったキャラクターAIを作る

キャラクターに関する情報は characterConfig/ にあります。このディレクトリにはキャラクターの設定を記述するidentity.txtとキャラクターの立ち絵画像を入れるimagesディレクトリをおいてください。また、コードを実行するとキャラクターの記憶となるcontext.jsonが生成されます。

プロンプトの設定

プロンプトは

class PromptMaker(object):
で作成されます。
デフォルトではプロンプトは下記の構成となっております。

  • キャラ設定
  • f"下記はここまでの会話です\n"
  • 直前の会話以外の会話履歴(直近の会話を除く)
  • キャラの出力フォーマット指定
  • f"下記は直前の会話です。\n*{self.characterName}として必ず20字以内で発言すること!\n"
  • 直前の会話文

Future work

  • Talking Head Animeへの対応
  • 長期記憶の実装
  • Koeiromapへの対応

機能の要望があればissueでお知らせください。

ライセンス

このコードはMIT licenseで提供されています。ただし、characterConfigディレクトリの中の画像ファイル、テキストファイル、jsonファイルはMIT licenseではありません。ただ、開発やデバッグ用のサンプルデータとして使用することは可能です。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.