met4citizen/TalkingHead
Talking Head (3D): A JavaScript class for real-time lip-sync using full-body 3D avatars.
TalkingHead (3D)
一个浏览器端的 JavaScript 类,为实时 3D 头像提供语音和口型同步功能。它在浏览器中运行,使用 Three.js/WebGL 渲染,并内置物理引擎以支持头发等动态特性。它还将表情符号映射到面部表情,并支持全身头像(GLB 格式)和 Mixamo 风格动画(FBX)。
它实际做什么
- 说话和口型同步:将文本转换为语音音频(默认通过 Google Cloud TTS),并使用单词级时间戳同步移动头像的嘴巴。内置的口型同步语言模块涵盖英语、德语、法语、巴西葡萄牙语、芬兰语和立陶宛语——可以通过编写模块或使用直接提供 viseme ID 的外部 TTS(例如 Microsoft Azure Speech SDK)来添加更多语言。
- 增加生动性:保持空闲头部运动、眼神接触行为和情绪状态(中性、快乐、愤怒、悲伤等)。
- 处理音频播放:包括
speakText方法用于文本转语音,以及speakAudio方法用于播放音频文件并自动检测 viseme。
运行所需条件
- 一个头像:具有 Mixamo 兼容骨骼和 ARKit/Oculus viseme 混合形状的 GLB 3D 模型(README 中的附录 A 解释了如何创建)。
- 文本转语音后端:可以是 Google Cloud TTS(使用代理 + JWT 或 API 密钥),或任何返回单词级时间戳的外部 TTS。
- TalkingHead 模块:可通过发布页面、NPM(
@met4citizen/talkinghead)或 CDN 导入获取。
可自定义的内容
README 记录了数十种选项,包括:
- 语音和说话:语言、语速、音调、音量。
- 相机和视图:全身、半身、上身、头部——以及旋转/平移/缩放权限。
- 光照和渲染:环境光、方向光、聚光灯的颜色和强度。
- 头像行为:眼神接触频率、头部运动、初始情绪。
- 静音/活动检测:在头像聆听时触发事件。
为什么重要
README 列出了其他人的实际应用,包括研究项目(人机群体对话、数字约会孪生、临床试验招募支持)、Twitch 直播游戏、视频会议和回收顾问应用——所有这些都基于 TalkingHead 构建。
README 中的关键警告:内置的 Google TTS 路径建议使用单点登录(SSO)和代理,而不是在客户端代码中暴露 API 密钥(它明确警告在生产环境中不要这样做)。
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch