botasdk
v3.0.3
Published
数字人botasdk,仅提供es和umd版本。
Readme
介绍
数字人botasdk,仅提供es和umd版本。
项目架构
+------------------------------------------+
| BotaSDK |
| (index.ts) |
+--+----------------+-------------------+--+
| | |
v v v
+--------+------+ +------+------+ +------+-------+
| 数据库缓存 | | Unity交互 | | 语音处理 |
| 模块 | | 模块 | | 模块 |
+---+----+------+ +------+------+ +------+-------+
| | | |
| | | |
v v v v
+---+----+---+ +-----+------+ +------+-------+
| db-core.ts | | br-handler.ts| | only-speak.ts|
+------------+ +------+------+ +--------------+
| db-index.ts| |
+------------+ |
v
+------+-------+
| split-down.ts |
+--------------+模块说明
核心模块 (index.ts)
- SDK入口点,提供所有公共API
- 处理Unity实例的初始化和管理
- 协调各个模块之间的交互
数据库缓存模块 (db/)
- db-core.ts: 提供IndexedDB的基础操作
- db-index.ts: 实现缓存管理和资源存储
Unity交互模块
- br-handler.ts: 处理Brotli压缩文件的下载、解压和处理
- split-down.ts: 实现大文件的分片下载
语音处理模块
- only-speak.ts: 提供纯语音处理功能,当3D模型无法加载时作为备选方案
数据流向
- 用户调用
createBotaSDK创建实例 - 检查缓存中是否有可用资源
- 如果资源需要下载,处理BR压缩文件并解压
- 初始化Unity实例,准备数字人交互
- 提供Speak/SpeakAudio等方法与数字人交互
用法
import BotaSDK from "botasdk";
let botaSDK;
// 返回值是promise
try {
botaSDK = await BotaSDK.createBotaSDK({
canvas: unityCanvas.value,
dataUrl: webglData,
frameworkUrl: webglFrameWork,
codeUrl: webglWasm,
streamingAssetsUrl: webAssetsUrl,
isCache: true,
ttsUrl,
userId
})
if(botaSDK.onlySpeakStatus) { // 说明返回初始化数字人失败
throw "only speak"
}
}catch (error) {
console.log('初始化数字人失败',error)
// 在这里初始化,没有unity数字人操作
botaSDK = BotaSDK.createNotSupportBotaSDK({
canvas: unityCanvas.value,
dataUrl: webglData,
frameworkUrl: webglFrameWork,
codeUrl: webglWasm,
streamingAssetsUrl: webAssetsUrl,
isCache: true,
ttsUrl,
userId
})
}