見出し画像

3Dモデル姿のAIとお喋りできるソフト『VRM_AI』使い方

皆さん、AI美少女作ってますか?私は任意のVRM(3Dキャラクターモデル)姿のAIとお喋りできるソフトを作っています。
というわけで今回はそのソフトの紹介兼、使い方解説です。
まずは何をできるかを動画でどうぞ。

こんな感じです。
動画では音声認識をさせていますがテキスト入力もできますし、Pythonスクリプトと連携すればAITuberの配信なんかにも応用できます。
では早速、使い方を解説していきましょう。

【追記】
有志の方がAItuber用拡張スクリプトを作成してくださったので紹介です。

①VRM(3Dキャラクターモデル)を用意する

boothで好みのVRMを購入したり、VRoid Studioで自作したり、有償依頼等して好きな姿の3Dモデルを用意しましょう(余談ですが私も3Dモデル作成依頼受付しております)。
無料で配布されているVRMモデルもありますので、規約等読み込んだ上で使用してください。

②OpenAIのAPIキーを取得する

上記のURLを参照してください。
>OpenAIのAPIは無料ではなく料金がかかりますが、会員登録時に18ドル分クレジット(有効期限3ヶ月)が付与されるので、お試し程度は無料です。
ですので、とりあえず動かしてみたいという方でも安心して遊べます。

③音声合成ソフトをインストールする

無料だとVOICEVOXCOEIROINK
有料だとVOICEPEAK(v1.2.1以上)に対応しています。
VOICEVOXのインストールは以下を参照。

VOICEPEAKのインストールは以下を参照。

COEIROINKのインストールは以下を参照。

将来的にはボイスロイド等の合成音声ソフトにも対応したいと思っています(だから誰か便利なUnityと連携できるライブラリ作って……!)

④VRM_AIをDL

https://github.com/tori29umai0123/VRM_AI/releases

上記のURLから最新のVRM_AI_v〇〇.zipをDL。適当なディレクトリに解凍します。

⑤config.iniを設定

解凍してでてきたフォルダの中にconfig.iniがありますのでそれを編集していきます。

[VRM]
VRMpath = D:\Documents\3d\悪役令嬢\Akuyaku_Reijo.vrm

[AI_Setting]
InputMode = voice
pythonPath = C:\Users\ユーザー名\AppData\Local\Programs\Python\Python310\python.exe
scriptPath = D:/desktop/test_API.py
AI_URL = http://127.0.0.1:5000/

[AI_Voice]
VoiceApp = AssistantSeika
VoicePeak_exe = C:\Program Files\VOICEPEAK\voicepeak.exe
VoicePeak_narrator = Japanese Male 2
VoiceVox_exe = C:\Users\ユーザー名\AppData\Local\Programs\VOICEVOX\run.exe
VoiceVox_narrator = 20
COEIROINK_exe = C:\Program Files\COEIROINK-CPU-v.1.7.2\COEIROINK.exe
COEIROINK_narrator = 50

[AssistantSeika]
AssistantSeika_path = C:\Program Files\510Product\AssistantSeika
Seikactl_exe = C:\Program Files\510Product\SeikaCtl\Seikactl.exe
Seika_Voice_exe = C:\Program Files (x86)\AHS\VOICEROID+\KouEX\VOICEROID.exe
SeikaSay2_exe = C:\Program Files\510Product\SeikaSay2\SeikaSay2.exe
AssistantSeika_narrator = 1706
AudioDevice = CABLE Output (VB-Audio Virtual Cable)

[Other]
BackGround = #00FF00
;BackGround = D:\desktop\BackGround.png
Responce_display = true
Responce_frame = None
;Responce_frame = D:\desktop\Woodframe_2.png
frame_border = 65
fontColor = #FFFFFF
OutlineColor = #000000
Thickness = 0.2

[OpenAI_API]
CharactorName = お嬢様
host = 127.0.0.1
port = 5000
API_Key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

[Camera_setting]
pos_x=-0.000778390211053193
pos_y=1.29912412166595
pos_z=1.96742427349091
angle_x=7.70004224777222
angle_y=177.499954223633
angle_z=-3.36539869749686E-07

これだけだとわからない人もいると思いますので、一行ずつ解説していましょう。

VRMpath
①の手順で用意したVRMモデルのパスを指定してください。
ファイルのパスの確認の仕方は以下を参照。

InputMode
『voice』か『text』か『script』を指定します。
よくわからない人はとりあえずは『voice』でよいでしょう。
ボイスは音声入力ができ、テキストはテキスト入力のみ、scriptは独自のPythonスクリプトで拡張する際に使用します。
(以下は独自スクリプトを書いて拡張したい人向けの記事です)

pythonPath
InputModeで『script』を選んだ時に設定。Pythonのインストールされているパス。

scriptPath
InputModeで『script』を選んだ時に設定。実行する独自スクリプトのパス。

AI_URL

ローカルに立てるアプリサーバーのURLおよびポートです。わからない人は基本デフォルトのままでOKです。

VoiceApp
『VoicePeak』か『VoiceVox』か『COEIROINK』か『AssistantSeika(仮対応)』を指定します。
音声合成に使う使うソフトの設定になります。インストールされていないと使えませんので、③の手順でキャラクターのイメージあう合成音声ソフトをインストールしておいてください。

VoicePeak_exe
VoiceAppの設定で『VoicePeak』を指定したときに入力が必要です。
基本はデフォルトの『C:/Program Files/VOICEPEAK/voicepeak.exe』で大丈夫ですが、別のディレクトリにインストール等した人はそこを指定してください。

VoicePeak_narrator
VoiceAppの設定で『VoicePeak』を指定したときに入力が必要です。
合成音声のナレーターを指定します。
ナレーター一覧はコマンドプロンプトから『voicepeak --list-narrator』で確認できます。
https://takashiski.hatenablog.com/entry/2023/01/13/235249

VoiceVox_exe
VoiceAppの設定で『VoiceVox』を指定したときに入力が必要です。
VoiceVoxはインストールされる場所が特殊なので、
C:/Users/〇〇〇(ユーザー名)/AppData/Local/Programs/VOICEVOX/run.exe
のように各自、自分の環境に合わせて設定してください。

VoiceVox_narrator
VoiceAppの設定で『VoiceVox』を指定したときに入力が必要です。
合成音声のナレーターを指定します。
ナレーター一覧は以下のURL参照です。
https://happy-shibusawake.com/voicevox_engine/1004/

COEIROINK_exe
VoiceAppの設定で『COEIROINK』を指定したときに入力が必要です。

COEIROINK_narrator
ナレーターIDは『C:\Program Files\COEIROINK-CPU-v.〇〇\speaker_info\〇〇〇〇〇〇\metas.json』の"styleId"を参照してください。


AssistantSeika_exe
Seikactl_exe
Seika_Voice_exe
AssistantSeika_narrator
[AssistantSeika]以下の設定は↓に纏めました


BackGround
背景画像のパス(例:D:\desktop\BackGround.png)かカラーコード(例:#00FF00)を入力します。デフォルトだと黄緑です。
背景透過色の指定です。OBS StudioShoost等の配信、撮影ソフトと組み合わせて使う時に使います。
基本、VRM_AIは下の背景画像を指定しないと、カラーコード指定した色の背景で描画されます。

それをクロマキーとしてOBS StudioShoostと組みあわせて適当な背景に合成するのですが、やり方は以下のURLを参照してください。

Responce_display 
『true』『false』を入力します。
これはAIの返事ウインドウを表示するかの設定です。
trueで表示、falseで非表示になります。

Responce_frame
AIの発言ウインドウのフレームの設定。Noneだと黒半透明。
画像のパス(D:\desktop\Woodframe_2.png)だとその画像のフレームが生成される
画像のサイズは1024*1024のpng,jpeg。

frame_border
Responce_frameで画像のパスを指定したときに使用。フレームの枠の太さを指定する。

fontColor
AIの発言ウインドウの表示テキストの色を指定。カラーコードを使用。

OutlineColor
AIの発言ウインドウの表示テキストの縁取り色を指定。カラーコードを使用。

Thickness
AIの発言ウインドウの表示テキストの縁取りの太さを指定。0-1の間の値を指定する。

CharactorName
AIに演じてもらうキャラクターの名前です。

host
ローカルで立てるサーバーのURL。わからない人は基本デフォルトのままでOKです。

port
ローカルで立てるサーバーのport。わからない人は基本デフォルトのままでOKです。

API_Key
②の手順で入手したOpenAIのAPIキーを入力してください。

[Camera_setting]の項目はソフト上で操作するので設定不要です。

⑥Charactor_settings.txtを設定

[キャラクターの名前]様.
AI assistants can only output as [キャラクターの名前] from now on.
[キャラクターの名前]'s first person is [キャラクターの一人称] and his second person is  [キャラクターの二人称] .
[キャラクターの名前] outputs the most appropriate emotion from "Happy", "Angry", "Sad", "Relaxed", and "Surprised" and the weight of that emotion as a value between 0 and 1.
The tone of the response and the content of the utterance will change to reflect the most appropriate emotion and its weight.
[キャラクターの名前] played by AI assistants can only speak according to the output template.
The output template is as follows.

[キャラクターの名前]:[most appropriate emotion from "Happy"or"Angry"or"Sad"or"Relaxed"or"Surprised" , emotion weight , "発話の内容"]

Here are some examples of [キャラクターの名前]'s output templates.

[キャラクターの名前]:["Happy" , 0.8 , "キャラクターがハッピーなときの台詞"]
[キャラクターの名前]:["Angry" , 0.6 , "キャラクターが起こっているときの台詞"]
[キャラクターの名前]:["Sad" , 0.6 , "キャラクターが悲しんでいるときの台詞"]
[キャラクターの名前]:["Relaxed" , 0.4 , "キャラクターが落ち着いてるときの"]
[キャラクターの名前]:["Surprised" , 0.4 , "キャラクターが驚いてるときの台詞"]
[キャラクターの名前]:["Happy" , 0.6 , "(以下省略)"]
[キャラクターの名前]:["Angry" , 0.8 , "(以下省略)"]
[キャラクターの名前]:["Sad" , 0.4 : "(以下省略)"]
[キャラクターの名前]:["Relaxed" , 0.4 , "(以下省略)"]
[キャラクターの名前]:["Surprised" , 0.9 , "(以下省略)"]
[キャラクターの名前]:["Happy" , 0.6 , "(以下省略)"]
[キャラクターの名前]:["Angry" , 0.4 , "(以下省略)"]
[キャラクターの名前]:["Sad", 0.4 , "(以下省略)"]
[キャラクターの名前]:["Relaxed" , 0.6 , "(以下省略)"]
[キャラクターの名前]:["Surprised" , 0.9 , "(以下省略)"]

Above is the output template for [キャラクターの名前]
AI assistants can only output as [キャラクターの名前] from now on.

[キャラクターの名前]、 [キャラクターの一人称] 、 [キャラクターの二人称] 及び各種台詞を任意のもので埋めてください。
左の数値は感情のウェイトなので、その感情が高ぶっているときが1,そうでもないときは0のようなイメージです。

⑦VRM_AI.exeを実行

ここまで設定できたら準備OKです。
規定のデバイスのマイクやテキスト入力でキャラクターに話しかけてください。あなただけのキャラクターがきっと返事を返してくれるでしょう。
よきAI&3Dライフを!!!!


この記事が気に入ったらサポートをしてみませんか?