😺
AIアバター with Emotion + LipSync + VOICEVOX
何番煎じかわかりませんが、作ってたので記録。
結果
修正:gpt-3.5-turbo-0613がでたので対応してみる
アバター with LipSync
以下を参照
ChatGPT and VOICEVOX
以下のUnity版
Emotion
2並列で ChatGPT に投げます
system の prompt が違うだけで、user/assistant の会話履歴は同じものを投げます
1個目:普通に会話するスレッド
2個目:感情を JSON で返してという system の prompt
2個目の方は具体的な以下のような構造の JSON を返すようにお願いします
{
fun: 0.4,
angry: 0,
sad: 0,
surprised: 0,
angry: 0
}
そして、これらのパラメータをそのまま VRM の Expression に適用させます
var obj = GameObject.FindGameObjectWithTag("woman");
if (gpt3Result?.Fun >= 0)
{
obj?.GetComponent<Vrm10Instance>().Runtime.Expression.SetWeight(ExpressionKey.CreateFromPreset(ExpressionPreset.happy), gpt3Result.Fun);
}
if (gpt3Result?.Sad >= 0)
{
obj?.GetComponent<Vrm10Instance>().Runtime.Expression.SetWeight(ExpressionKey.CreateFromPreset(ExpressionPreset.sad), gpt3Result.Sad);
}
if (gpt3Result?.Surprise >= 0)
{
obj?.GetComponent<Vrm10Instance>().Runtime.Expression.SetWeight(ExpressionKey.CreateFromPreset(ExpressionPreset.surprised), gpt3Result.Surprise);
}
if (gpt3Result?.Angry >= 0)
{
obj?.GetComponent<Vrm10Instance>().Runtime.Expression.SetWeight(ExpressionKey.CreateFromPreset(ExpressionPreset.angry), gpt3Result.Angry);
}
以上
珍しそうなのは表情を数値で作ってるぐらいだと思います
当然ですがタイムラグが生まれるし、コストが倍になります
修正:gpt-3.5-turbo-0613に変えると、タイムラグが減りました
Discussion