@xmov/avatar 2.0.0-alpha.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +139 -0
- package/dist/agent/__tests__/agent.test.d.ts +1 -0
- package/dist/agent/audio-debug.d.ts +3 -0
- package/dist/agent/audio-uplink.d.ts +62 -0
- package/dist/agent/avatar.cjs +2 -0
- package/dist/agent/avatar.cjs.map +1 -0
- package/dist/agent/avatar.modern.js +2 -0
- package/dist/agent/avatar.modern.js.map +1 -0
- package/dist/agent/avatar.module.js +2 -0
- package/dist/agent/avatar.module.js.map +1 -0
- package/dist/agent/avatar.umd.js +2 -0
- package/dist/agent/avatar.umd.js.map +1 -0
- package/dist/agent/e2e-client.d.ts +32 -0
- package/dist/agent/fixed-audio-track.d.ts +48 -0
- package/dist/agent/index.cjs +5 -0
- package/dist/agent/index.d.ts +104 -0
- package/dist/agent/index.umd.js +10 -0
- package/dist/agent/microphone.d.ts +49 -0
- package/dist/agent/types.d.ts +153 -0
- package/dist/baseRender/AudioRenderer.d.ts +46 -0
- package/dist/baseRender/AudioWorklet.d.ts +78 -0
- package/dist/baseRender/AvatarRenderer.d.ts +226 -0
- package/dist/baseRender/MSEAudioPlayer.d.ts +51 -0
- package/dist/baseRender/UIRenderer.d.ts +39 -0
- package/dist/baseRender/pcm-audio-processor.d.ts +63 -0
- package/dist/control/APIForwarder.d.ts +23 -0
- package/dist/control/DataCacheQueue.d.ts +69 -0
- package/dist/control/EventDispatcher.d.ts +35 -0
- package/dist/control/RenderScheduler.d.ts +162 -0
- package/dist/control/SaveAndDownload.d.ts +14 -0
- package/dist/control/StreamingClient.d.ts +33 -0
- package/dist/control/VideoPlayer.d.ts +47 -0
- package/dist/control/ttsa.d.ts +111 -0
- package/dist/encoding/media-recorder-encoder.d.ts +33 -0
- package/dist/encoding/pcm-webm-encoder.d.ts +13 -0
- package/dist/encoding/webcodec-opus-encoder.d.ts +41 -0
- package/dist/encoding/webm-muxer.d.ts +90 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +231 -0
- package/dist/index.modern.js +2 -0
- package/dist/index.modern.js.map +1 -0
- package/dist/index.module.js +2 -0
- package/dist/index.module.js.map +1 -0
- package/dist/index.umd.js +2 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/modules/Composition.d.ts +28 -0
- package/dist/modules/ResourceManager.d.ts +295 -0
- package/dist/modules/TrackRenderer/base-track.d.ts +4 -0
- package/dist/modules/TrackRenderer/index.d.ts +12 -0
- package/dist/modules/TrackRenderer/render-implements.d.ts +19 -0
- package/dist/modules/TrackRenderer/track-pic.d.ts +8 -0
- package/dist/modules/TrackRenderer/track-subtitle.d.ts +8 -0
- package/dist/modules/cache-manager.d.ts +5 -0
- package/dist/modules/decoder.d.ts +84 -0
- package/dist/modules/error-handle.d.ts +17 -0
- package/dist/modules/network.d.ts +21 -0
- package/dist/proto/face_data_pb.d.ts +0 -0
- package/dist/types/capability.d.ts +15 -0
- package/dist/types/error.d.ts +70 -0
- package/dist/types/event.d.ts +25 -0
- package/dist/types/frame-data.d.ts +107 -0
- package/dist/types/index.d.ts +187 -0
- package/dist/types/render.d.ts +18 -0
- package/dist/utils/DataInterface.d.ts +113 -0
- package/dist/utils/GLDevice.d.ts +46 -0
- package/dist/utils/GLPipeline.d.ts +84 -0
- package/dist/utils/GLPipelineDebugTools.d.ts +5 -0
- package/dist/utils/Math.d.ts +21 -0
- package/dist/utils/__tests__/capability-checker.test.d.ts +1 -0
- package/dist/utils/audio-session.d.ts +11 -0
- package/dist/utils/audio.d.ts +1 -0
- package/dist/utils/capability-checker.d.ts +23 -0
- package/dist/utils/encodeToken.d.ts +7 -0
- package/dist/utils/face.d.ts +1 -0
- package/dist/utils/float32-decoder.d.ts +26 -0
- package/dist/utils/fpsTracker.d.ts +27 -0
- package/dist/utils/index.d.ts +22 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/media-recorder-timestamp.d.ts +15 -0
- package/dist/utils/pcmAnalyzer.d.ts +40 -0
- package/dist/utils/perfermance.d.ts +15 -0
- package/dist/utils/request.d.ts +19 -0
- package/dist/utils/requestAnimateFrames.d.ts +31 -0
- package/dist/utils/time.d.ts +9 -0
- package/dist/view/DebugOverlay.d.ts +54 -0
- package/dist/worker/streaming-video.d.ts +1 -0
- package/package.json +82 -0
- package/src/agent/__tests__/agent.test.ts +3787 -0
- package/src/agent/audio-debug.ts +36 -0
- package/src/agent/audio-uplink.ts +392 -0
- package/src/agent/e2e-client.ts +215 -0
- package/src/agent/fixed-audio-track.ts +547 -0
- package/src/agent/index.ts +1393 -0
- package/src/agent/microphone.ts +534 -0
- package/src/agent/types.ts +197 -0
- package/src/baseRender/AudioRenderer.ts +317 -0
- package/src/baseRender/AudioWorklet.ts +776 -0
- package/src/baseRender/AvatarRenderer.ts +1559 -0
- package/src/baseRender/MSEAudioPlayer.ts +243 -0
- package/src/baseRender/UIRenderer.ts +195 -0
- package/src/baseRender/pcm-audio-processor.js +267 -0
- package/src/control/APIForwarder.ts +67 -0
- package/src/control/DataCacheQueue.ts +372 -0
- package/src/control/EventDispatcher.ts +106 -0
- package/src/control/RenderScheduler.ts +945 -0
- package/src/control/SaveAndDownload.js +77 -0
- package/src/control/StreamingClient.ts +138 -0
- package/src/control/VideoPlayer.ts +306 -0
- package/src/control/ttsa.ts +676 -0
- package/src/encoding/media-recorder-encoder.ts +175 -0
- package/src/encoding/pcm-webm-encoder.ts +72 -0
- package/src/encoding/webcodec-opus-encoder.ts +258 -0
- package/src/encoding/webm-muxer.ts +337 -0
- package/src/global.d.ts +105 -0
- package/src/index.ts +1920 -0
- package/src/modules/Composition.ts +79 -0
- package/src/modules/ResourceManager.ts +899 -0
- package/src/modules/TrackRenderer/base-track.ts +7 -0
- package/src/modules/TrackRenderer/index.ts +40 -0
- package/src/modules/TrackRenderer/render-implements.ts +269 -0
- package/src/modules/TrackRenderer/track-pic.ts +19 -0
- package/src/modules/TrackRenderer/track-subtitle.ts +16 -0
- package/src/modules/cache-manager.ts +10 -0
- package/src/modules/decoder.ts +515 -0
- package/src/modules/error-handle.ts +20 -0
- package/src/modules/network.ts +71 -0
- package/src/proto/face_data.proto +45 -0
- package/src/proto/face_data_pb.js +1297 -0
- package/src/proto/protobuf.min.js +8 -0
- package/src/types/capability.ts +23 -0
- package/src/types/error.ts +211 -0
- package/src/types/event.ts +38 -0
- package/src/types/frame-data.ts +121 -0
- package/src/types/index.ts +207 -0
- package/src/types/render.ts +18 -0
- package/src/utils/DataInterface.ts +746 -0
- package/src/utils/GLDevice.ts +286 -0
- package/src/utils/GLPipeline.ts +1293 -0
- package/src/utils/GLPipelineDebugTools.ts +174 -0
- package/src/utils/Math.ts +266 -0
- package/src/utils/__tests__/capability-checker.test.ts +159 -0
- package/src/utils/audio-session.ts +144 -0
- package/src/utils/audio.ts +44 -0
- package/src/utils/blueimp-md5.d.ts +3 -0
- package/src/utils/capability-checker.ts +379 -0
- package/src/utils/encodeToken.ts +100 -0
- package/src/utils/face.ts +29 -0
- package/src/utils/float32-decoder.js +130 -0
- package/src/utils/fpsTracker.ts +100 -0
- package/src/utils/index.ts +182 -0
- package/src/utils/logger.js +36 -0
- package/src/utils/media-recorder-timestamp.ts +79 -0
- package/src/utils/pcmAnalyzer.ts +154 -0
- package/src/utils/perfermance.ts +141 -0
- package/src/utils/request.ts +95 -0
- package/src/utils/requestAnimateFrames.ts +195 -0
- package/src/utils/time.ts +32 -0
- package/src/view/DebugOverlay.ts +404 -0
- package/src/worker/streaming-video.ts +4647 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import type XmovAvatar from "../index"
|
|
2
|
+
import type { IRawWidgetData } from "./frame-data"
|
|
3
|
+
import type { SDKError } from "./error"
|
|
4
|
+
import type { TDownloadProgress } from "../modules/ResourceManager"
|
|
5
|
+
import { FPSStats } from "../utils/fpsTracker";
|
|
6
|
+
|
|
7
|
+
export { ERROR_CODE_MAP, ERROR_NAME_MAP } from './error';
|
|
8
|
+
|
|
9
|
+
export type {
|
|
10
|
+
CapabilitySeverity,
|
|
11
|
+
CapabilityName,
|
|
12
|
+
ICapabilityCheckItem,
|
|
13
|
+
ICapabilityCheckReport,
|
|
14
|
+
} from './capability';
|
|
15
|
+
|
|
16
|
+
export enum AvatarStatus {
|
|
17
|
+
// initialized = 0,
|
|
18
|
+
online = 0, // 在线可见状态(合并了原来的 playing)
|
|
19
|
+
offline = 1,
|
|
20
|
+
network_on = 2, // 已废弃
|
|
21
|
+
network_off = 3, // 已废弃
|
|
22
|
+
close = 4,
|
|
23
|
+
visible = 5, // 可见状态
|
|
24
|
+
invisible = 6, // 隐身状态(原来的 paused)
|
|
25
|
+
stopped = 7, // 已废弃
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 渲染状态枚举
|
|
31
|
+
* 用于表示渲染器的状态,与数字人状态(AvatarStatus)分离
|
|
32
|
+
*/
|
|
33
|
+
export enum RenderState {
|
|
34
|
+
init = 'init', // 开始渲染(初始状态,准备开始)
|
|
35
|
+
rendering = 'rendering', // 渲染中(正在渲染)
|
|
36
|
+
pausing = 'pausing', // 暂停渲染中(正在暂停渲染)
|
|
37
|
+
paused = 'paused', // 暂停渲染(暂停但保留数据)
|
|
38
|
+
resumed = 'resumed', // 恢复渲染(从暂停恢复)
|
|
39
|
+
stopped = 'stopped', // 渲染停止(完全停止)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* 网络情况
|
|
45
|
+
* @params downlink 下载速率(Mbps)
|
|
46
|
+
* @params rtt 延迟(毫秒)
|
|
47
|
+
*/
|
|
48
|
+
export interface INetworkInfo {
|
|
49
|
+
downlink: number
|
|
50
|
+
rtt: number
|
|
51
|
+
networkStatus: boolean
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export enum InitModel {
|
|
55
|
+
normal = 'normal',
|
|
56
|
+
invisible = 'invisible',
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface IInitParams {
|
|
60
|
+
scaleDownBy?: any
|
|
61
|
+
useAlphaMask?: any
|
|
62
|
+
initModel?: InitModel
|
|
63
|
+
onDownloadProgress: TDownloadProgress;
|
|
64
|
+
}
|
|
65
|
+
export interface IAvatarOptions {
|
|
66
|
+
sdkInstance?: XmovAvatar
|
|
67
|
+
containerId: string
|
|
68
|
+
container?: HTMLElement
|
|
69
|
+
appId: string
|
|
70
|
+
appSecret: string
|
|
71
|
+
gatewayServer: string // back
|
|
72
|
+
tag?: string // 标签 指定特定房间
|
|
73
|
+
gateway_type?: string // gateway类型,默认为default
|
|
74
|
+
asr_id?: number // Agent ASR 配置 ID
|
|
75
|
+
llm_id?: number // Agent LLM 配置 ID
|
|
76
|
+
session_speak_req_id?: 0 | 1 // Agent 会话播报序号起始值:0 无开场白,1 有开场白
|
|
77
|
+
headers?: Record<string, string> // 自定义请求头
|
|
78
|
+
cacheServer?: string
|
|
79
|
+
env?: string
|
|
80
|
+
config?: any
|
|
81
|
+
hardwareAcceleration?: string
|
|
82
|
+
enableClientInterrupt?: boolean
|
|
83
|
+
enableLogger?: boolean // 是否启用日志
|
|
84
|
+
enableDebugger?: boolean // 是否启用调试模式
|
|
85
|
+
audioOnlyMode?: boolean // 音频+事件模式(无渲染模式):仅保留音频播放和UI事件,不执行数字人渲染
|
|
86
|
+
renderMode?: 'client' | 'server' // 渲染模式:client=薄客户端(video播放),server/undefined=完整渲染
|
|
87
|
+
streamingServer?: string // 薄客户端模式下,Streaming Server 的 WebSocket 地址
|
|
88
|
+
useAlphaMask?: boolean // 是否启用 alpha mask 透明背景(双路流方案)
|
|
89
|
+
scaleDownBy?: number
|
|
90
|
+
onMessage: (error: SDKError) => void
|
|
91
|
+
onStartSessionWarning?: (message: Object) => void
|
|
92
|
+
onAAFrameHandle?: (data: any) => void
|
|
93
|
+
onNetworkInfo?(networkInfo: INetworkInfo): void
|
|
94
|
+
onWidgetEvent?(data: IRawWidgetData): void
|
|
95
|
+
proxyWidget?: {
|
|
96
|
+
[key: string]: (data: any) => void
|
|
97
|
+
}
|
|
98
|
+
onStateChange?(state: string): void;
|
|
99
|
+
onStateRenderChange?(state: string, duration: number): void;
|
|
100
|
+
onSpeakStateChange?(state: string, client_speak_id: string | number): void;
|
|
101
|
+
onRenderChange?(state: RenderState): void;
|
|
102
|
+
onVoiceStateChange?(state: string, duration?: number, client_speak_id?: string | number): void;
|
|
103
|
+
onStatusChange?(status: AvatarStatus): void;
|
|
104
|
+
onWalkStateChange?(state: string): void;
|
|
105
|
+
onFPSUpdate?(stats: FPSStats): void;
|
|
106
|
+
/**
|
|
107
|
+
* 数字人音频实时播放数据回调
|
|
108
|
+
* - MSE/WebM 模式(raw_audio=false):通过 AudioWorklet + WebCodecs 捕获和编码
|
|
109
|
+
* - PCM 模式(raw_audio=true):通过 capture worklet + WebCodecs/MediaRecorder 编码
|
|
110
|
+
* 两种模式输出格式完全一致(WebM/Opus),业务侧无需区分
|
|
111
|
+
*/
|
|
112
|
+
onAudioPlaybackData?(data: IAudioPlaybackData): void;
|
|
113
|
+
/**
|
|
114
|
+
* 每帧数据回调
|
|
115
|
+
* 返回当前帧的 face + body 原始数据(帧号、body_id 等)
|
|
116
|
+
*/
|
|
117
|
+
onFrameDataUpdate?(data: IFrameDataUpdate): void;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* 音频播放数据回调参数(farend 格式)
|
|
122
|
+
* 用于 ASR 回声消除(AEC),由 Agent 封装为 AU v1 farend Binary 帧
|
|
123
|
+
*/
|
|
124
|
+
export interface IAudioPlaybackData {
|
|
125
|
+
data: ArrayBuffer; // opus 音频原始数据(WebM 容器)
|
|
126
|
+
codec: string; // 编码格式,固定 "opus"
|
|
127
|
+
isFirstChunk: boolean; // 是否为该 speak 段的首段数据(包含 WebM 容器头)
|
|
128
|
+
sampleRate: number; // 采样率
|
|
129
|
+
samples: number; // 等效采样点数(100ms 对应的采样数)
|
|
130
|
+
timestamp: number; // 当前 100ms 音频块起点的 epoch 毫秒时间戳
|
|
131
|
+
speech_id: number; // 当前轮次id
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* 帧数据回调参数
|
|
136
|
+
* 用于返回每一帧的 face + body 原始数据(不包含渲染数据)
|
|
137
|
+
*/
|
|
138
|
+
export interface IFrameDataUpdate {
|
|
139
|
+
/** 客户端帧号 */
|
|
140
|
+
frameIndex: number;
|
|
141
|
+
/** body 数据 */
|
|
142
|
+
body: {
|
|
143
|
+
/** body_id */
|
|
144
|
+
body_id: number;
|
|
145
|
+
/** 视频名称 */
|
|
146
|
+
name: string;
|
|
147
|
+
/** 视频内帧号(相对于视频起始的帧偏移) */
|
|
148
|
+
video_frame: number;
|
|
149
|
+
/** 起始帧号 */
|
|
150
|
+
sf: number;
|
|
151
|
+
/** 当前状态 */
|
|
152
|
+
state: string;
|
|
153
|
+
} | null;
|
|
154
|
+
/** face 数据(不包含骨骼渲染数据) */
|
|
155
|
+
face: {
|
|
156
|
+
/** body_id */
|
|
157
|
+
body_id: number;
|
|
158
|
+
/** 起始帧号 */
|
|
159
|
+
sf: number;
|
|
160
|
+
/** 结束帧号 */
|
|
161
|
+
ef: number;
|
|
162
|
+
/** 状态 */
|
|
163
|
+
state: string;
|
|
164
|
+
/** face 帧类型:0=原始数据,1=实时数据 */
|
|
165
|
+
face_frame_type: number;
|
|
166
|
+
} | null;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export interface DeviceInfo {
|
|
170
|
+
device_id: string
|
|
171
|
+
device_brand: string
|
|
172
|
+
device_model: string
|
|
173
|
+
os_version: string
|
|
174
|
+
browser: string
|
|
175
|
+
browser_version: string
|
|
176
|
+
browser_ua: string
|
|
177
|
+
sdk_version: string
|
|
178
|
+
resolution: {
|
|
179
|
+
width: number
|
|
180
|
+
height: number
|
|
181
|
+
}
|
|
182
|
+
download_speed: number
|
|
183
|
+
decode_speed: number
|
|
184
|
+
render_speed: number
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export interface Layout {
|
|
188
|
+
container: {
|
|
189
|
+
size: number[]
|
|
190
|
+
},
|
|
191
|
+
avatar: {
|
|
192
|
+
v_align: string //'left' | 'center' | 'right'
|
|
193
|
+
h_align: string //'top' | 'center' | 'bottom'
|
|
194
|
+
scale: number | string
|
|
195
|
+
offset_x: number
|
|
196
|
+
offset_y: number
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export interface WalkConfig {
|
|
201
|
+
min_x_offset: number
|
|
202
|
+
max_x_offset: number
|
|
203
|
+
walk_points: {
|
|
204
|
+
[key: string]: number
|
|
205
|
+
}
|
|
206
|
+
init_point?: number
|
|
207
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface IBackgroundRender {
|
|
2
|
+
render(): HTMLElement
|
|
3
|
+
}
|
|
4
|
+
export interface IImgRender {
|
|
5
|
+
render(): HTMLElement
|
|
6
|
+
}
|
|
7
|
+
export interface ITextRender {
|
|
8
|
+
render(): HTMLElement
|
|
9
|
+
}
|
|
10
|
+
export interface IVideoRender {
|
|
11
|
+
render(): HTMLElement
|
|
12
|
+
}
|
|
13
|
+
export interface I3DRender {
|
|
14
|
+
render(): HTMLCanvasElement
|
|
15
|
+
}
|
|
16
|
+
export interface ISubtitleRender {
|
|
17
|
+
render(): HTMLElement
|
|
18
|
+
}
|