@ririxin/talking-avatar-sdk
v1.0.3
Published
文本驱动数字人的js sdk, typescript 版本
Maintainers
Readme
Talking Avatar SDK
文本驱动数字人的js sdk。使用 TypeScript 实现,提供完整类型定义(.d.ts)。
安装
npm install @ririxin/talking-avatar-sdk或直接使用打包后的单文件(无需构建工具):
- ESM:
dist/talking-avatar-sdk.js(配合import) - IIFE:
dist/talking-avatar-sdk.global.js(<script src="">,全局TalkingAvatarSDK.TalkingAvatar)
本地打包:npm run build。
使用方式
npm / ESM 单文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Talking Avatar SDK Demo</title>
</head>
<body>
<video id="video" autoplay muted></video>
<script type="module">
import { TalkingAvatar } from 'talking-avatar-sdk';
// 或单文件: import { TalkingAvatar } from './dist/talking-avatar-sdk.js';
const avatar = new TalkingAvatar({
token: 'your-token',
videoElement: document.getElementById('video'),
onStatusChange: (status, text) => console.log('status', status, text),
onMessage: (type, text) => console.log(type, text),
onData: (msg) => console.log('raw', msg)
});
avatar.connect();
avatar.sendText('你好');
avatar.disconnect();
</script>
</body>
</html>IIFE 单文件(无构建):
<script src="./dist/talking-avatar-sdk.global.js"></script>
<script>
const { TalkingAvatar } = TalkingAvatarSDK;
const avatar = new TalkingAvatar({ token: '…', videoElement: document.querySelector('video'), onMessage: () => {} });
avatar.connect('wss://…');
</script>TalkingAvatar 选项
| 选项 | 类型 | 说明 |
|------|------|------|
| token | string | 认证 Token,需要预先创建token,联系我们获取 |
| wsUrl | string | 可选,频道地址,也可在 connect(url) 时传入 |
| whepUrl | string | 可选,WHEP 拉流端点 URL |
| videoElement | HTMLVideoElement | 可选,渲染远程视频的DOM |
| onStatusChange | (status, text) => void | 连接状态变化回调:connecting / connected / disconnected |
| onMessage | (type, text) => void | 消息:system / sent / received |
| onData | (message) => void | 收到 JSON 时的原始对象 |
| config | object | 可选,覆盖 WS 默认 config 字段 |
| iceServers | array | 可选,ICE 服务器 |
方法
| 方法 | 说明 |
|------|------|
| connect(wsUrl?) | 发起连接 |
| disconnect() | 断开连接 |
| sendText(text, final?) | 发送对话文本(direct_drive) |
| send(message) | 发送任意 JSON 或字符串 |
| setToken(token) | 设置认证 Token |
| setVideoElement(element) | 设置视频元素 |
| setWsUrl(url) | 设置频道地址 |
| setWhepUrl(url) | 设置 WHEP 端点 |
| setOnConnectError(callback) | 连接失败时的回调 |
| isConnected() | 返回是否已连接 |
| getThreadId() | 返回当前 thread_id |
