# Audio2Face 3D 口型：把原创配音变成带时间码的3D面部表情系数

把同一音频上传后得到的hash用于按时间码请求表情系数，再映射到自有角色blendshape。

## 练习边界

本包没有调用收费平台或登录账号。官方图片仅作署名的教学功能示例；作者原生文件、合成声音和imagegen参考均按身份标明，不是目标平台实测结果。

## 七步操作

1. **准备自有角色和音频**

   使用author-face-blendshapes.glb和原创合成语音，确认角色有Basis和jawOpen等可映射形变。作者系数是手工参考，不是NVIDIA推理。

2. **配置Authoring服务**

   按NVIDIA Audio2Face-3D Authoring官方部署要求准备服务与资源。没有实际部署时只编辑请求模板，不假称已调用。

3. **上传音频取hash**

   调用UploadAudioClip，保存服务返回的音频hash和可用blendshape键。不要把本地文件名当成返回hash。

4. **按时间码请求姿态**

   在GetAvatarFacePose中使用同一个hash与明确timeCode，例如1.2秒，读取face和emotion相关系数。

5. **建立名称映射**

   将服务系数名映射到角色实际shape key。角色缺少某个形变时先补映射或角色资产，不盲目按数组顺序套用。

6. **检查闭口与张口**

   分别查看静音和元音时刻的嘴型，检查时间起点与系数范围。页面开合口参考来自真实作者GLB手工值。

7. **保存可复现输入**

   归档音频、hash、请求、返回和角色映射；导出动画时保持同一时间基准。不要假设所有服务都提供同一个导出按钮。

## 文件

- README.md
- asset-identity.json
- audio-input.png
- author-face-blendshapes.glb
- author-face-coefficients.json
- avatar-owned-audio.wav
- closed.png
- operation-plan.json
- rpc-requests.json
- vowel.png

## 配图身份

- closed.png：作者真实GLB的闭口形态，jawOpen手工设为0。
- vowel.png：同一作者GLB的张口形态参考，未执行NVIDIA推理。
- audio-input.png：原创合成配音实际波形，是Authoring请求的输入参考。

## 官方来源

- [Audio2Face-3D Authoring Microservice](https://docs.nvidia.com/ace/audio2face-3d-authoring-microservice/latest/text/architecture/audio2face-authoring-ms.html)
