ESC
开源 更新于 2026-08-01 00:00 1 分钟阅读

persona — Bringing real-time voice to life.

让实时语音栩栩如生(JavaScript),⭐ 742

来源:GitHub

Persona 虚拟形象

Persona

用于桌面语音交互体验的实时虚拟角色。


Persona 是一个跨平台的桌面虚拟角色,它能在您工作时,为语音对话提供富有表现力的视觉形象。

平台支持

平台语音输出监听器分发方式
LinuxPipeWire 播放流捕获AppImage 和 DEB
WindowsWASAPI 进程回环捕获NSIS 安装程序
macOS 14.2+Core Audio 进程捕获DMG 和 ZIP,支持 arm64 和 x64

Linux 需要 pw-dumppw-recordPATH 中。Windows 进程回环捕获需要 Windows 10 build 20348 或更高版本。macOS 会请求一次系统音频录制权限。

每个监听器都作用于一个自动检测或用户选择的播放进程。Persona 不会捕获麦克风、保存音频、生成语音、转录内容或通过网络发送音频。

在本地尝试 Persona

要求:

  • Node.js 24 或更高版本
  • npm
  • 具有硬件加速图形功能的桌面会话

在分发默认值选定之前,打包的角色目录被有意留空。Persona 在首次启动时会打开“设置”,以便您可以导入本地 .vrm 模型;public/assets/ 下被忽略的媒体文件,除非在目录中声明,否则不会被加载。

要使用当前被忽略的本地测试媒体来验证打包库路径,请将提供的示例复制到活动的空目录中:

cp public/assets/library.json.example public/assets/library.json
cp public/assets/manifest.json.example public/assets/manifest.json

这两个示例文件可直接使用,同时也记录了完整的目录格式。它们的媒体文件仅用于测试:示例清单有意禁用了分发功能,并且其许可证字段不完整。

打包的 VRM 文件应位于 public/assets/models/ 下;打包的 VRMA 文件应位于 public/assets/animations/ 下。一个目录可以声明多个打包模型。当 default_model_idnull 时,Persona 会选择第一条模型记录作为打包默认模型。

npm install
npm run demo

npm run demo 会构建当前渲染器并启动 Persona,同时启用正常的自动语音输出检测。

若要以后台模式启动:

npm start -- --background

自定义 Persona

从 Persona 的托盘菜单中打开 “设置…” 以管理角色库、选择语音音频源和注册 MCP。您可以预览已安装的模型和动画动作,选择默认模型,设置角色的初始大小,并添加自己的 .vrm.vrma 文件。

在设置默认模型之前,Persona 不会创建虚拟形象窗口或启动其语音输出监听器。第一个导入的默认模型将立即触发窗口创建并启用监听器。