Skip to content

Instantly share code, notes, and snippets.

@recursivecodes
Last active April 24, 2024 19:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save recursivecodes/2a5823aa9990b8b7431dd846049d9ddb to your computer and use it in GitHub Desktop.
Save recursivecodes/2a5823aa9990b8b7431dd846049d9ddb to your computer and use it in GitHub Desktop.

Project Ivy: Creating a Real-Time Live Streaming Vtube Virtual Assistant

Ivy is a virtual assitant that joins your Amazon IVS (get it? Ivy? IVS?) real-time stage, listens for chat messages that are prefixed with "Hey Ivy", and responds!

Objectives

  • ☒ Build a Virtual Assistant in Unity using a VRoid VRM model
  • ☒ Join Amazon IVS Real-Time Stage
  • ☒ Join Amazon IVS Chat Room
  • ☒ Respond to "Hey Ivy!" chat messages by passing the prompt to Amazon Bedrock
  • ☒ Animate model based on response sentiment and display response text in UI

Stretch Objectives

  • ☒ Convert response to audio with Amazon Polly
  • ☒ Play response audio and sync model's mouth based on audio phonemes
  • ☐ Multiple language support?

Tasks

  • ☒ Create and export VR model with VRoid Studio
  • ☒ Create Unity project and import VRM (with UniVRM)
  • ☒ Broadcast Unity project to real-time stage and connect to Amazon IVS chat room
    • ☒ Create architecture (CDK)
      • ☒ Stage & Chat room
      • ☒ Stage token serverless endpoint
      • ☒ Chat token serverless endpoint
      • ☒ Invoke Bedrock endpoint
    • ☐ Create front-end application
  • ☒ Parse incoming chat messages for prompt
    • ☒ Invoke LLM with prompt
      • ☒ Animate model "thinking" while model is invoked?
      • ☒ Return response, phoneme, sentiment (and image?)
  • ☒ Display response in UI (typewriter effect)
    • ☒ Animate model while "speaking" response and change face based on sentiment

Stretch Tasks

  • ☒ Convert response to audio (wav)
  • ☒ Play audio in Unity

Scope Creep

It always happens, doesn't it... 😆

☒ Complete all objectives!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment