Skip to content

Using OpenAI API (GPT) and Azure Speech Studio (Speech2Text and Text2Speech) for speech recognition, you can enjoy conversations with 3D(.vrm) characters.

License

Notifications You must be signed in to change notification settings

MITSUHIRO-KURIKI/DjangoOpenAIVRMChat

Repository files navigation

DjangoOpenAIVRMChat

上記サンプルイメージでは、フリー素材キャラクター「つくよみちゃん」 (© Rei Yumesaki)を使用しています。

What is this?

DjangoOpenAIStreamingChatをベースにOpenAI APIと音声認識にAzure Speech Studioを利用したVRMとの会話アプリを学習として作成しました

Warning

* 本コードはベータ版です。
* AZURE_SPEECH_SERVICE_API キーを現在直接Templateへ渡しており、本番環境ではサーバサイドからの呼び出しが必要です。(調査中)
* 即席のため不要なコードも多く、かなり汚いです。

設置

DjangoTemplateとの差分のみ表示

static > apps > chat > vrm へダウンロードした3Dモデル(.vrm)を格納します

3Dモデル(.vrm)はお好きなものをおいてください。モデルサイズ等に応じて、 templates/apps/chat/room/include/vrm_script.html のカメラ位置等を修正ください。
サンプルイメージに使用したのはつくよみちゃん公式3Dモデル タイプA「①通常版(VRM)」です。

config > settings.pyでの設定

RADISの使用
# RADIS(WebSoocket/Celery)
IS_USE_RADIS = True

.envファイル用意

AZURE_SPEECH_SERVICE の設定
AZURE_SPEECH_SERVICE_API_KEY='*** YOUR AZURE_SPEECH_SERVICE_API_KEY ***'  
AZURE_SPEECH_SERVICE_REGION='*** YOUR AZURE_SPEECH_SERVICE_REGION ***'  
AZURE_SPEECH_SERVICE_LANGUAGE='*** YOUR AZURE_SPEECH_SERVICE_LANGUAGE ***'
OpenAI API KEYの設定
OPENAI_API_KEY='*** YOUR OPENAI_API_KEY ***'
Radisの利用
RADIS_HOST='*** RADIS HOST ***'  
RADIS_PORT='*** RADIS PORT ***'

実行

  • terminal(0)
    ここでエラーがでる場合には python=3.9.18 を確認してみてください
$ pip install -r requirements-base.txt
$ ProjectSetupBat
$ python manage.py runserver
  • terminal(1)
$ RunRedisServer
  • terminal(2)
$ RunCeleryWorker

主な実行環境

詳細は requirements-base.txt をご覧ください

python=3.9.18
Django==4.2.1
channels==4.0.0
celery==5.4.0

Other

本アプリケーションで使われる各種ライブラリのライセンスは改変したものを含めて本ライセンスには含まれません。各種ライブラリの原ライセンスに従って利用してください。

suppl.

TREE
DjangoOpenAIVRMChat/
├─accounts
│  ├─forms
│  ├─models
│  │  └─receivers
│  └─views
│      └─send_mail
├─apps
│  ├─access_security
│  │  └─models
│  │      └─receivers
│  ├─chat
│  │  ├─models
│  │  │  ├─ajax
│  │  │  ├─ModelNameChoice
│  │  │  └─query_search
│  │  └─Utils
│  ├─inquiry
│  │  ├─models
│  │  │  └─receivers
│  │  └─views
│  └─user_properties
│      ├─models
│      └─views
├─common
│  ├─lib
│  │  ├─axes
│  │  ├─social_core
│  │  └─social_django
│  ├─scripts
│  │  ├─DjangoUtils
│  │  ├─LlmUtils
│  │  └─PythonCodeUtils
│  └─views
├─config
│  ├─acsess_logic
│  ├─admin_protect
│  ├─extra_settings
│  └─security
├─media
│  └─apps
│      ├─chat
│      │  └─ai_icon
│      └─user_profile
│          └─user_icon
├─static
│  ├─apps
│  │  ├─chat
│  │  │  │─ai_icon
│  │  │  │   └─default
│  │  │  └─vrm
│  │  └─user_profile
│  │      └─user_icon
│  │          └─default
│  └─templates
│      ├─apps
│      │  └─chat
│      │      └─css
│      ├─base
│      ├─common
│      │  ├─css
│      │  ├─func
│      │  └─lib
│      ├─meta_image
│      └─pages
│          └─home
├─templates
│  ├─accounts
│  │  ├─AccountDelete
│  │  ├─AccountLock
│  │  ├─EmailChange
│  │  │  └─mail_template
│  │  ├─LogIn
│  │  ├─PasswordChange
│  │  ├─PasswordReset
│  │  │  └─mail_template
│  │  ├─SignUp
│  │  │  └─mail_template
│  │  ├─TokenDelete
│  │  └─UserIdSet
│  ├─apps
│  │  ├─chat
│  │  │  ├─include
│  │  │  └─room
│  │  │      └─include
│  │  │          └─feedback
│  │  ├─inquiry
│  │  │  └─inquiry_form
│  │  │      └─notice_admin_mail_template
│  │  └─user_properties
│  │      ├─asset
│  │      │  └─sidenav
│  │      └─Settings
│  ├─common
│  │  ├─asset
│  │  └─debug
│  └─pages
│      ├─general
│      └─home
└─templatetags

About

Using OpenAI API (GPT) and Azure Speech Studio (Speech2Text and Text2Speech) for speech recognition, you can enjoy conversations with 3D(.vrm) characters.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published