Fay数字人框架

6月3日发布在AI工具

Fay是集成了语言模型和数字字符的开源数字人类框架,为不同的应用程序提供零售、助手和代理版本,比如虚拟购物指南、广播、助手、服务员、教师和基于语音或文本的移动助手。

开发人员可以利用Fay就能构建各种类型的数字人或数字助理。Fay各模块之间耦合度非常低,包括声音来源、语音识别、情绪分析、NLP处理、情绪语音合成、语音输出和表情动作输出等模块。

模型适配层:向上兼容各类数字人模型(如三维真人驱动、Live2D二次元角色),向下支持主流大语言模型(含DeepSeek等thinking llm)

功能组件层:集成ASR语音识别、TTS语音合成、自然语言处理、表情控制等模块,各组件支持独立替换

终端适配层:提供标准化接口,可快速接入单片机、APP、网站、大屏等多个领域终端设备

Fay功能

• 离线运行,支持在没有网络的环境部署

• 全时流式交互,能实现低延迟语音对话

• 支持多用户并发操作,能满足不同的高负载场景

• 自定义知识库(qa.csv文件管理)

• 可配置唤醒词和交互逻辑

• 支持MCP协议的Agent自主决策系统

• 文字/语音交互接口

• 数字人驱动控制接口

• 自动播报任务接口

• 真人照片驱动(xuniren方案)

• Live2D二次元角色

• UE5/Unity三维模型集成

开发部署

开源协议友好:遵循MIT协议,可用于商用环境

环境依赖简单:基于Python 3.12开发,提供requirements.txt依赖清单

启动方式灵活

• 源码启动:通过main.py控制器管理

• 镜像启动:支持GPU加速的Docker镜像

远程通讯支持:集成Ngrok实现跨设备通信,适配手机/PC/智能穿戴设备

目录/文件 功能描述
核心模块
ai_module 人工智能算法模块,包含大语言模型集成逻辑
core 框架核心引擎,处理交互流程与状态管理
genagents 智能体管理模块,支持React Agent决策逻辑
simulation_engine 模拟引擎,用于数字人动作与表情驱动
功能组件
asr 语音识别模块
tts 语音合成模块,支持Azure晓晓等声音选择
gui 图形化配置界面,支持人设信息管理(如姓名/职业/唤醒词等)
工具与配置
utils 工具函数集,包含配置文件解析(config_util.py)
config.json 核心配置文件,管理模型路径与接口参数
system.conf.bak 系统配置备份文件
部署相关
requirements.txt Python依赖包清单,包含PyAudio等关键组件
fay_booter.py 启动脚本,支持后台静默启动模式
main.py 主控制器入口,负责初始化各模块

快速安装指南(以Windows系统为例)

环境准备

1、下载Python 3.12安装包

访问 https://www.python.org/downloads/release/python-3120/ 选择对应系统版本

2、安装Visual Studio Build Tools

• 下载地址:https://learn.microsoft.com/zh-cn/visualstudio/releases/2022/release-notes

• 安装时需勾选“使用C++的桌面开发”工作负载,确保包含MSVC编译器

框架部署步骤

1、克隆代码仓库

git clone https://github.com/xszyou/Fay.git
cd Fay

2、安装依赖组件

pip install -r requirements.txt

Ubuntu系统需先安装编译工具:sudo apt install build-essential portaudio19-dev

3、配置系统参数

• 复制system.conf.baksystem.conf

• 修改以下关键配置:

"llm_model_path": "本地大语言模型路径",  // 如使用离线模型需指定路径
"asr_provider": "本地ASR服务地址",        // 可替换为阿里云/腾讯云等第三方服务
"tts_voice": "晓晓"                     // 支持Azure语音库中的其他声音

4、启动框架服务

python main.py  // 启动主控制器

如需后台运行:nohup python main.py &(Linux/macOS)

应用场景使用示例

数字人类型扩展

1、三维真人驱动

使用 https://github.com/xszyou/fay-ue5 集成UE5引擎,通过真人照片生成写实数字人模型

2、二次元角色交互

基于Live2D技术加载二次元模型,配合面部捕捉实现表情驱动,具体集成指南见 https://qqk9ntwbcit.feishu.cn/wiki/Se9xw04hUiss00kb2Lmci1BVnM9

(二)跨设备通信方案

通过Ngrok实现远程访问:

1、注册Ngrok账号并获取Auth Token

2、启动穿透服务:

ngrok http 6000  // 将本地6000端口映射到公网

3、在移动端APP或智能设备中使用Ngrok生成的公网地址连接框架

自定义人设配置

在GUI界面中完成以下设置:

基础信息:姓名(如“菲菲”)、职业(助理)、性别(女)

交互逻辑

• 唤醒词:“你好”(前置词唤醒模式)

• 敏感度设置:控制对话响应的主动程度

多媒体配置

• 声音选择:Azure语音库“晓晓”

• 自动播报地址:http://127.0.0.1:6000(本地测试地址)

通过以上步骤,开发者可快速搭建出一个具备语音交互、自动播报、多终端适配能力的数字人系统,能用于智能客服、虚拟教学、品牌营销等不同的场景。