架构#
Tokkio 系统是多个管道的集成,每个管道由多个微服务组成。Tokkio 是一个典型的事件驱动系统,由消息总线促进。流式传输管道通过在 WebRTC 流连接或断开连接时触发事件来驱动 Tokkio 事务的生命周期。随后,所有管道并行运行并为来自用户的传入请求提供服务。
下图描绘了 Tokkio 系统内各种微服务之间的互连概述。Tokkio 内的每个组件都建模为微服务,使其可以灵活地进行更改或自定义以适应需求。

Tokkio 可以分为 6 个管道:流式传输、视觉、语音、交互、履行和动画。
流式传输管道
流式传输管道促进用户网络摄像头和 Tokkio 后端之间,以及随后从 Tokkio 后端到 Tokkio 用户界面之间的无缝视频和音频通信。此过程从 Web 客户端开始,Google Chrome 特别支持该客户端,Tokkio 用户界面在该客户端中呈现。用户必须授予摄像头和麦克风访问权限才能启动管道。一旦授予权限,视频和音频数据将使用 WebRTC 协议在用户设备和视频存储工具包 (VST) 之间双向传输。此传输发生在通过入口网关的 REST API 完成初始信令过程之后。为了确保可靠的数据传输,尤其是在具有严格安全措施的环境中,这些措施可能会阻止直接连接,因此采用了反向代理或 TURN 服务器。
视觉管道
视觉管道实时处理视频流,提供对用户存在和注意力水平的即时分析。它生成视觉警报,以根据检测到的活动和参与度通知相关系统或用户,确保及时准确地响应用户交互。
语音管道
聊天控制器操作服务器是一个复杂音频推理微服务,旨在实时运行。它利用 NVIDIA 的 Riva 技术来执行语音活动检测 (VAD)、自动语音识别 (ASR) 和文本到语音 (TTS)。此微服务通过提供符合 UMIM(统一多模态交互管理)标准的事件与系统无缝集成,确保不同组件之间的兼容性和高效通信。
交互管道
交互管理系统通过智能地解释和响应通过视觉和语音分析检测到的用户事件来协调头像的响应。这种动态过程确保头像进行有意义且在上下文中适当的交互。
履行管道
履行管道旨在通过 REST 接口促进与第三方应用程序或 API 的交互,如 Tokkio 插件服务器文档(插件服务器)中所详述。此组件通过用户界面服务器与 Tokkio 用户界面无缝集成,从而实现直接通信和交互。该管道非常灵活,可以自定义或完全替换以适应特定用例,从而提供适应性以满足各种需求。
动画管道
动画管道负责根据来自交互管理系统的输入生成和动画化头像。它包含 Audio2Face-3D 和动画图微服务。此外,Tokkio 还提供多个渲染微服务,可以根据特定需求进行切换