API 规范#

Ingress#

gRPC API#

动画图微服务可以接受来自动画数据源(例如 Audio2Face)的输入动画数据流。此动画数据流通过 PushAnimationDataStream 远程过程调用 (RPC) 提供。然后,动画图混合最终动画并生成新的动画数据流,该数据流可以流式传输到下游渲染器。这些渲染器通过 PullAnimationDataStream RPC 连接到动画图微服务渲染器。这两个 RPC 都在 动画数据服务 中定义。

动画数据流音频格式#

动画图微服务目前仅支持具有以下音频格式的动画数据流。

格式

PCM

通道数

1

采样率

16000 Hz

每样本位数

16

HTTP API#

除了动画数据流 API 之外,动画图微服务还公开了一个 HTTP API。通过此 API,您可以

  • 控制动画图变量的值,例如控制默认动画图的姿势和手势。

  • 向微服务添加和删除活动流。

您可以在 HTTP API 文档中找到更多信息。

一旦微服务启动,就可以在 http://127.0.0.1:8020/docs 访问交互式 HTTP API 概述。

动画图变量控制#

请注意,HTTP API 路由在动画图微服务启动时动态生成。它从 USD 场景文件中加载 自定义图层数据,并相应地生成端点路径。

因此,微服务公开的 HTTP API 取决于 USD 场景文件中包含的动画图变量配置。此处提供了 默认动画图HTTP API 文档作为参考。

有关更改动画图变量的示例 API 调用,请参阅 默认动画图部分

流管理#

动画图微服务是一个有状态的服务,仅在流注册了流 ID 后才生成输出动画数据流。

可以使用以下方式添加动画数据流

stream_id=$(uuidgen)
curl -X POST -s http://127.0.0.1:8020/streams/$stream_id

同样,可以使用以下方式删除动画数据流

curl -X DELETE -s http://127.0.0.1:8020/streams/$stream_id