9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AITuberの基礎開発 ChatGPTや音声合成からリップシンクまで

Last updated at Posted at 2023-03-08

はじめに

デモの動画はツイッターに貼ってますこちらです

AITuberを片手間で作っていまして、基礎部分をGithubにアップロードしました。

もともとAI先生作れないかな、ということをしていた経験もあわせて、作っています。
できたことは、Unityで、テキスト入力やボタンのUIをはりつけてそこに、入力していく形で、Sendボタンを押せば、ChatGPTの応答、返答から発話内容をVOICEVOXで音声合成、それを受け取って、音声再生と3Dアバターに口パクまでを行います。

ということは、いってしまえば、あとはYoutubeからのコメントを受け取ったり、ライブ配信での進行管理をどう行っていくのか、を作っていくと、一つのAITuberのひな型になるんじゃないかなと思い公開しました。

開発環境はWindows、Unityです。

ライセンスは私の作った範囲はMIT、その他はなるべく再利用・公開していただいて問題ないものを利用しています。

技術的な話

ChatGPT

APIが新しくなり、メッセージに役割を付与して、複数のメッセージをまとめて送る方式となりました。
役割は、system、assistant、user、の3つですね。

systemのメッセージであらかじめの設定を蓄積しておいて、userのメッセージを追加し通信して返答をもらっていくことで、ChatGPTからの返答が生成されます。

発言と、ポーズ設定を収集したかったので下記を参考にしました。
https://twitter.com/fladdict/status/1626936471969218560

下記2行のフォーマットで出力し、会話内容は改行しないこと。
【内部パラメータ】ポーズ:kawaii
【会話内容】おはようございます。それでは、今回は数学のお話をしていきます。

という指定や、キャラクター設定をsystemのメッセージで追加しておきます。

こちらを指定すると、上記のフォーマットで返答が返ってきますので、【内部パラメータ】のポーズからアバターのポーズを、【会話内容】は"。"で分離させて段階的に音声合成になげれるように加工しました。

VOICEVOX

VOICEVOXは、別アプリとして立ち上げておくと、通信して音声合成のやりとりができる機能がもともと存在します。

方式はWebAPIのRESTです。

  • to VOICEVOX : このセリフを音声合成してくださいよ
  • from VOICEVOX : それだと、こういう音の合成情報はこうなりますよ
  • to VOICEVOX : では、この音の合成情報で音声合成してください
  • from VOICEVOX : わかりました

という感じで音声が返ってきます。
いきなり音声データにならないので、ちょっと戸惑うかもしれません。

音声合成の中でも、VOICEVOXは、環境を再現しやすいという理由で選択しました。

VRM

アバターは3DのVRM形式、現在はとりまわしのいいVRMの0.x系を使ってます。

アバターを手軽に作れる AveterShop というソフトがありまして、こちらを購入して生成しました。こちらのVRMの形式が0.x系だったので、VRMのライブラリもそちらを利用しています。

長所としては以下2点です

  • アバターを簡易に作成しやすい環境が整っている
  • リップシンクのさせやすい

短所は、世界的なフォーマットではなく、あくまでも日本の3Dアバター規格にとどまっている点です。今後に期待です。

uLipSync

下記のように、uLipSyncという口パクを再生するUnity用のモジュールが公開されています。
https://tips.hecomi.com/entry/2022/01/30/152519

少し残念なことに、新しい記事はVRMアバターのリップシンクまで、手軽にやってくれるサンプルが入っていたのですが、こちらVRMのバージョンが1.x系だったので、かみ合わずでした。

ということで、そのへんは自作しました。

キャリブレーションもせず、もともとあるプロファイルの設定で、音声をわたしてVRMのリップシンクまで実現できてすばらしいですね。

リップシンクはほかにもいくつかあり、古くはOVRLipSync、他、有料であればCRIのものもあるでしょうか。
OVRLipSyncは、規約が良くわからない(英語…)ので公開したものに同梱するのは難しいと判断しました。

まとめ

以上の技術でもって、基礎部分ができましたので、共有したいと思い公開しました。

「Youtubeのコメントの取得」を実現し、アシスタントを自動化して、全自動でライブ配信1回をできるようにするにはどうしたらいいかと、いろいろ考えていくと面白そうです。

最初に、話すべき内容を伝えてしまうと、一回目にアシスタントとして「はじめてください」とつたえると、全部しゃべってすぐ終わっちゃいます。

OpenAIのAPIKeyと、VOICEVOX、Unityがあれば動きますので、いろいろいじって遊んでいたければと思います。

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?