Quickstart
三种接入方式,按需选择
所有示例均为演示用途,需替换为您在控制台申请的应用 ID 与密钥。
在页面里插入下面这段代码,即可获得一个可对话的数字人窗口。它会自动处理音视频采集、流式识别、合成与唇形驱动。
<!-- 引入智宇数字人 Web 组件 -->
<script src="https://cdn.zhiyu-ai.example.com/sdk/zhiyu-dh.min.js"></script>
<zhiyu-digital-human
app-id="app_demo_001"
agent-id="agt_xingyao"
avatar="avt_xingyao_2d"
locale="zh-CN"
theme="dark"
width="420"
height="640"
auto-start="false"
></zhiyu-digital-human>
<script>
// 通过事件监听拿到会话数据
const dh = document.querySelector('zhiyu-digital-human');
dh.addEventListener('session:start', (e) => {
console.log('会话已建立', e.detail.sessionId);
});
dh.addEventListener('message:final', (e) => {
console.log('数字人回复:', e.detail.text);
});
</script>
适合服务端集成:由后端创建会话、下发欢迎语,或把数字人能力嵌入已有客服系统。
# 1. 创建一次数字人会话
curl -X POST https://api.zhiyu-ai.example.com/v1/sessions \
-H "Authorization: Bearer $ZHIYU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"app_id": "app_demo_001",
"agent_id": "agt_xingyao",
"avatar_id": "avt_xingyao_2d",
"ttl_seconds": 600,
"metadata": { "channel": "web", "user_tier": "gold" }
}'
# 2. 下发一轮文本对话,返回合成音频与口型驱动数据
curl -X POST https://api.zhiyu-ai.example.com/v1/sessions/$SID/turns \
-H "Authorization: Bearer $ZHIYU_API_KEY" \
-d '{"input": {"type": "text", "text": "帮我查一下上个月的账单"}}'
# 3. 结束会话,回收算力
curl -X DELETE https://api.zhiyu-ai.example.com/v1/sessions/$SID
当你已有自己的对话逻辑与音频链路,只用 SDK 做实时驱动与渲染,把「声音」变成「会说的人」。
import { ZhiyuDigitalHuman } from '@zhiyu/digital-human-sdk';
const dh = new ZhiyuDigitalHuman({
apiKey: process.env.ZHIYU_API_KEY,
avatarId: 'avt_xingyao_2d',
container: '#stage',
resolution: '1080p',
fps: 30,
});
await dh.ready();
// 1) 音频驱动:传入任意 PCM / MP3 音频流
dh.driveByAudio(audioStream);
// 2) 文本驱动:由平台内置 TTS 合成并驱动
dh.speak('您好,欢迎来到云启银行。', {
speaker: 'spk_xingyao',
emotion: 'gentle',
speed: 1.0,
});
// 3) 打断:立即停止当前播报并转入聆听
dh.interrupt();
// 4) 实时事件
dh.on('audience:speaking', () => console.log('用户开始说话,已打断'));
dh.on('lip:sync', (m) => console.log('唇形误差(ms):', m.latency));
提供 iOS / Android / 鸿蒙 SDK,适配一体机、自助终端与移动 App 场景。
// Android 一体机示例
val client = ZhiyuClient.Builder()
.appId("app_demo_001")
.agentId("agt_xingyao")
.avatarId("avt_xingyao_3d")
.audioMode(AudioMode.FULL_DUPLEX) // 全双工,支持打断
.enableVad(true)
.build()
client.attach(stageView) // 绑定渲染视图
client.onEvent { event ->
when (event) {
is ZhiyuEvent.Ready -> client.speak(welcomeText)
is ZhiyuEvent.IntentHit -> trackAnalytics(event.intent, event.confidence)
is ZhiyuEvent.NeedHuman -> transferToDesk()
}
}
API Reference
核心接口一览
全部接口遵循 REST 规范,请求与响应体均为 JSON,鉴权使用 Bearer Token。
| 方法 | 路径 | 说明 | 典型耗时 |
|---|---|---|---|
| POST | /v1/sessions | 创建一个数字人会话,返回 WebRTC 接入凭据 | ~180ms |
| POST | /v1/sessions/{id}/turns | 提交一轮输入(文本 / 音频 / 图片),返回回复与驱动数据 | ~200ms 首响 |
| POST | /v1/sessions/{id}/interrupt | 打断当前播报,数字人立即转入聆听 | <50ms |
| DELETE | /v1/sessions/{id} | 结束会话并释放算力 | ~80ms |
| POST | /v1/avatars | 提交形象克隆任务(照片或视频素材) | 返回任务 ID |
| GET | /v1/avatars/{id} | 查询建模进度与产物地址 | ~60ms |
| POST | /v1/voices | 提交音色克隆任务 | 返回任务 ID |
| POST | /v1/tts/stream | 流式语音合成,返回音频分片与音素时间戳 | ~120ms 首包 |
| POST | /v1/knowledge/bases | 创建知识库并导入文档 | 异步 |
| POST | /v1/knowledge/search | 知识库检索(支持混合检索与重排序) | ~90ms |
| GET | /v1/analytics/sessions | 查询会话统计、意图分布与满意度 | ~150ms |
Webhook 事件
数字人跑在用户屏幕上时,服务端通过 webhook 同步关键事件,便于接入工单、CRM 与数据仓库。
session.started
会话建立,携带渠道、用户标识与首问内容。
intent.missed
意图未命中或置信度低于阈值,可触发人工介入或补充知识库。
handoff.requested
数字人请求转人工,携带完整上下文与情绪评分。
guardrail.triggered
触发合规护栏,记录命中规则与原始话术,供审计复查。
avatar.ready
形象建模完成,返回可用形象 ID 与预览视频地址。
session.ended
会话结束,携带轮次、时长、满意度与转人工标记。
SDK & Tools
官方 SDK 与工具链
| 名称 | 语言 / 平台 | 用途 |
|---|---|---|
| @zhiyu/digital-human-sdk | TypeScript / Web | 实时驱动、渲染与会话管理 |
| zhiyu-dh | 原生 Web Component | 零构建嵌入,一行引入 |
| zhiyu-server-sdk | Java / Go / Python / Node | 服务端会话与知识库管理 |
| zhiyu-ios / zhiyu-android | Swift / Kotlin / ArkTS | 移动端与一体机接入 |
| zhiyu-cli | 命令行 | 批量建模、话术导入与压测 |
Limits & Status
配额、限流与状态
默认并发路数(标准 SaaS)20 路 / 应用
接口限流600 次 / 分钟 / 应用
单次会话最长时长60 分钟
知识库单次导入文件上限500 MB
API 版本策略兼容两个大版本
全部服务正常
近 90 天可用性 99.97%
会话接口
正常
建模服务
正常
合成服务
正常
以上数据为演示站示例值,实际配额以控制台与商务合同为准。
不会。组件基于原生 Web Component 封装,使用 Shadow DOM 隔离样式,可与 React / Vue / Angular 或纯 HTML 共存;也提供对应的框架包装组件。
不需要。组件与 SDK 内部使用 WebRTC 与 Opus / H.264 完成采集、降噪、传输与解码,你只需要处理业务事件。如果你已有音频链路,也可以用音频驱动接口直接推流。
不建议。Web 组件使用短时效的会话 Token(默认 10 分钟),由你的服务端用 API Key 换取;API Key 只应保存在服务端环境变量中。
支持。会话接口提供 SSE 与 WebSocket 两种流式通道,按句返回文本分片、音频分片与音素时间戳,前端可实现“边说边渲染”。
完全一致,只替换 endpoint 与鉴权方式(支持对接企业统一身份)。模型版本与能力矩阵可按合同锁定,避免云端升级带来的行为漂移。
有。注册后可获得沙箱应用与每月免费额度,包含 1 个定制形象与 60 分钟会话时长,用于功能验证与压测。