explaingit

xszyou/fay

12,776PythonAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A Python framework for building talking AI avatar characters that bridges large language models, speech recognition, and text-to-speech to visual avatar software like Unity, Unreal Engine, or web pages, free for commercial use.

Mindmap

mindmap
  root((repo))
    What it does
      AI digital human
      Voice conversation
      Avatar bridge
    Connections
      OpenAI-compatible LLM
      TTS and ASR modules
      Unity Unreal web
    Modes
      Virtual teacher
      Live streamer
      Agent tool use
    Setup
      Python 3.12
      Web management UI
      Windows macOS Ubuntu
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a virtual live streamer character that listens, responds in real time, and syncs lip movements to a Unity or Unreal Engine avatar

USE CASE 2

Create a virtual teacher that wakes on a keyword, answers domain-specific questions from a custom knowledge base, and speaks with a swappable text-to-speech engine

Tech stack

PythonOpenAI API

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires Python 3.12, an LLM API endpoint, and separate avatar software such as Unity or a web page to display the character.

Free to use for any purpose, including commercial use, as stated in the project README.

In plain English

Fay is a Python framework for building AI-powered digital humans: virtual on-screen characters that can speak, listen, and carry on conversations. It acts as a bridge between visual avatar software (2.5D and 3D models, Unity, Unreal Engine, mobile apps, web pages) and the large language models that power the conversation. You set up a character appearance with one system and connect Fay to give it a voice, a personality, and real-time responses. On the language model side, Fay connects to any OpenAI-compatible API, including DeepSeek and locally hosted models, and lets you swap the model out without changing the rest of the setup. Speech recognition and text-to-speech modules are also interchangeable, so you can use different providers depending on quality or cost. The framework streams responses as they are generated, which means the character can begin speaking before the full reply is ready. Built-in modes include a virtual teacher, a virtual live streamer, and a news broadcast reader, where the character delivers prepared or generated content automatically on a schedule. There is also an interactive mode with voice and text input, wake-word detection to start conversations, and an agent mode where the character can call external tools on its own to answer questions or complete tasks. A knowledge base and a custom Q&A file let you shape what the character knows and how it responds. The framework runs on Windows, macOS, and Ubuntu with Python 3.12. A management interface is accessible via a local web page for configuration and control. The project is fully open source, and the README states it is free to use for commercial purposes.

Copy-paste prompts

Prompt 1
Connect Fay to a locally hosted LLM via OpenAI-compatible API, configure wake-word detection, and set up a virtual assistant that streams responses to a browser avatar
Prompt 2
Configure Fay's virtual live streamer mode to send lip-sync and motion data to a Unity 3D character via WebSocket in real time
Prompt 3
Add a custom Q&A knowledge base file to my Fay digital human so it answers domain-specific questions in character without calling the main LLM
Open on GitHub → Explain another repo

← xszyou on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.