Spphire / Virtual-AI-Streamer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Virtual-AI-Streamer

C4Context
title Virtual AI Streamer

Person(Administer, "Administer", "Administer of frontend")


System(Unity, "Unity Frontend", "Control character and background")
System(Rtmp, "Rtmp server", "Receives stream from Unity, and give out to stream platform")

Person_Ext(Audio, "Audio")
Boundary(b1, "Stream platform", ""){
  System_Ext(SystemCC, "Stream platform website")
  System(SystemDD, "Stream platform api")
}

BiRel(Administer, Unity, "Administer")
UpdateRelStyle(Administer, Unity, $offsetX="-30")

Rel(Unity, Rtmp, "Render streaming")
UpdateRelStyle(Unity, Rtmp, $offsetX="-50")

Rel(Rtmp, SystemCC, "Stream")
UpdateRelStyle(Rtmp, SystemCC, $offsetX="150", $offsetY="-70")

Rel(SystemCC, Audio, "Stream")
UpdateRelStyle(SystemCC, Audio, $offsetY="-50")

Boundary(b2, "AI") {

  System_Ext(SystemE, "ChatGPT api", "make reaction to chats")

  Boundary(b3, "GPU required") {
    System(SystemF, "Text to voice")
    System(SystemG, "Voice to face")
    System(SystemH, "Voice to pose")
  }
}


Rel(SystemDD, SystemE, "Chats message")
UpdateRelStyle(SystemDD, SystemE, $offsetX="-50")

Rel(SystemE, SystemF, "Get voice")
UpdateRelStyle(SystemE, SystemF, $offsetX="-10", $offsetY="-80")

Rel(SystemF, Rtmp, "Respose")
UpdateRelStyle(SystemF, Rtmp, $offsetX="50", $offsetY="-150")

Rel(SystemF, SystemG, "Get face")
Rel(SystemF, SystemH, "Get pose")
UpdateRelStyle(SystemF, SystemH, $offsetY="70")

Rel(SystemG, Unity, "Face control")
UpdateRelStyle(SystemG, Unity, $offsetX="-20", $offsetY="-300")
Rel(SystemH, Unity, "Pose control")
UpdateRelStyle(SystemH, Unity, $offsetX="-120", $offsetY="-380")

About