@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.
Files changed (160) hide show
  1. package/README.md +139 -0
  2. package/dist/agent/__tests__/agent.test.d.ts +1 -0
  3. package/dist/agent/audio-debug.d.ts +3 -0
  4. package/dist/agent/audio-uplink.d.ts +62 -0
  5. package/dist/agent/avatar.cjs +2 -0
  6. package/dist/agent/avatar.cjs.map +1 -0
  7. package/dist/agent/avatar.modern.js +2 -0
  8. package/dist/agent/avatar.modern.js.map +1 -0
  9. package/dist/agent/avatar.module.js +2 -0
  10. package/dist/agent/avatar.module.js.map +1 -0
  11. package/dist/agent/avatar.umd.js +2 -0
  12. package/dist/agent/avatar.umd.js.map +1 -0
  13. package/dist/agent/e2e-client.d.ts +32 -0
  14. package/dist/agent/fixed-audio-track.d.ts +48 -0
  15. package/dist/agent/index.cjs +5 -0
  16. package/dist/agent/index.d.ts +104 -0
  17. package/dist/agent/index.umd.js +10 -0
  18. package/dist/agent/microphone.d.ts +49 -0
  19. package/dist/agent/types.d.ts +153 -0
  20. package/dist/baseRender/AudioRenderer.d.ts +46 -0
  21. package/dist/baseRender/AudioWorklet.d.ts +78 -0
  22. package/dist/baseRender/AvatarRenderer.d.ts +226 -0
  23. package/dist/baseRender/MSEAudioPlayer.d.ts +51 -0
  24. package/dist/baseRender/UIRenderer.d.ts +39 -0
  25. package/dist/baseRender/pcm-audio-processor.d.ts +63 -0
  26. package/dist/control/APIForwarder.d.ts +23 -0
  27. package/dist/control/DataCacheQueue.d.ts +69 -0
  28. package/dist/control/EventDispatcher.d.ts +35 -0
  29. package/dist/control/RenderScheduler.d.ts +162 -0
  30. package/dist/control/SaveAndDownload.d.ts +14 -0
  31. package/dist/control/StreamingClient.d.ts +33 -0
  32. package/dist/control/VideoPlayer.d.ts +47 -0
  33. package/dist/control/ttsa.d.ts +111 -0
  34. package/dist/encoding/media-recorder-encoder.d.ts +33 -0
  35. package/dist/encoding/pcm-webm-encoder.d.ts +13 -0
  36. package/dist/encoding/webcodec-opus-encoder.d.ts +41 -0
  37. package/dist/encoding/webm-muxer.d.ts +90 -0
  38. package/dist/index.cjs +2 -0
  39. package/dist/index.cjs.map +1 -0
  40. package/dist/index.d.ts +231 -0
  41. package/dist/index.modern.js +2 -0
  42. package/dist/index.modern.js.map +1 -0
  43. package/dist/index.module.js +2 -0
  44. package/dist/index.module.js.map +1 -0
  45. package/dist/index.umd.js +2 -0
  46. package/dist/index.umd.js.map +1 -0
  47. package/dist/modules/Composition.d.ts +28 -0
  48. package/dist/modules/ResourceManager.d.ts +295 -0
  49. package/dist/modules/TrackRenderer/base-track.d.ts +4 -0
  50. package/dist/modules/TrackRenderer/index.d.ts +12 -0
  51. package/dist/modules/TrackRenderer/render-implements.d.ts +19 -0
  52. package/dist/modules/TrackRenderer/track-pic.d.ts +8 -0
  53. package/dist/modules/TrackRenderer/track-subtitle.d.ts +8 -0
  54. package/dist/modules/cache-manager.d.ts +5 -0
  55. package/dist/modules/decoder.d.ts +84 -0
  56. package/dist/modules/error-handle.d.ts +17 -0
  57. package/dist/modules/network.d.ts +21 -0
  58. package/dist/proto/face_data_pb.d.ts +0 -0
  59. package/dist/types/capability.d.ts +15 -0
  60. package/dist/types/error.d.ts +70 -0
  61. package/dist/types/event.d.ts +25 -0
  62. package/dist/types/frame-data.d.ts +107 -0
  63. package/dist/types/index.d.ts +187 -0
  64. package/dist/types/render.d.ts +18 -0
  65. package/dist/utils/DataInterface.d.ts +113 -0
  66. package/dist/utils/GLDevice.d.ts +46 -0
  67. package/dist/utils/GLPipeline.d.ts +84 -0
  68. package/dist/utils/GLPipelineDebugTools.d.ts +5 -0
  69. package/dist/utils/Math.d.ts +21 -0
  70. package/dist/utils/__tests__/capability-checker.test.d.ts +1 -0
  71. package/dist/utils/audio-session.d.ts +11 -0
  72. package/dist/utils/audio.d.ts +1 -0
  73. package/dist/utils/capability-checker.d.ts +23 -0
  74. package/dist/utils/encodeToken.d.ts +7 -0
  75. package/dist/utils/face.d.ts +1 -0
  76. package/dist/utils/float32-decoder.d.ts +26 -0
  77. package/dist/utils/fpsTracker.d.ts +27 -0
  78. package/dist/utils/index.d.ts +22 -0
  79. package/dist/utils/logger.d.ts +9 -0
  80. package/dist/utils/media-recorder-timestamp.d.ts +15 -0
  81. package/dist/utils/pcmAnalyzer.d.ts +40 -0
  82. package/dist/utils/perfermance.d.ts +15 -0
  83. package/dist/utils/request.d.ts +19 -0
  84. package/dist/utils/requestAnimateFrames.d.ts +31 -0
  85. package/dist/utils/time.d.ts +9 -0
  86. package/dist/view/DebugOverlay.d.ts +54 -0
  87. package/dist/worker/streaming-video.d.ts +1 -0
  88. package/package.json +82 -0
  89. package/src/agent/__tests__/agent.test.ts +3787 -0
  90. package/src/agent/audio-debug.ts +36 -0
  91. package/src/agent/audio-uplink.ts +392 -0
  92. package/src/agent/e2e-client.ts +215 -0
  93. package/src/agent/fixed-audio-track.ts +547 -0
  94. package/src/agent/index.ts +1393 -0
  95. package/src/agent/microphone.ts +534 -0
  96. package/src/agent/types.ts +197 -0
  97. package/src/baseRender/AudioRenderer.ts +317 -0
  98. package/src/baseRender/AudioWorklet.ts +776 -0
  99. package/src/baseRender/AvatarRenderer.ts +1559 -0
  100. package/src/baseRender/MSEAudioPlayer.ts +243 -0
  101. package/src/baseRender/UIRenderer.ts +195 -0
  102. package/src/baseRender/pcm-audio-processor.js +267 -0
  103. package/src/control/APIForwarder.ts +67 -0
  104. package/src/control/DataCacheQueue.ts +372 -0
  105. package/src/control/EventDispatcher.ts +106 -0
  106. package/src/control/RenderScheduler.ts +945 -0
  107. package/src/control/SaveAndDownload.js +77 -0
  108. package/src/control/StreamingClient.ts +138 -0
  109. package/src/control/VideoPlayer.ts +306 -0
  110. package/src/control/ttsa.ts +676 -0
  111. package/src/encoding/media-recorder-encoder.ts +175 -0
  112. package/src/encoding/pcm-webm-encoder.ts +72 -0
  113. package/src/encoding/webcodec-opus-encoder.ts +258 -0
  114. package/src/encoding/webm-muxer.ts +337 -0
  115. package/src/global.d.ts +105 -0
  116. package/src/index.ts +1920 -0
  117. package/src/modules/Composition.ts +79 -0
  118. package/src/modules/ResourceManager.ts +899 -0
  119. package/src/modules/TrackRenderer/base-track.ts +7 -0
  120. package/src/modules/TrackRenderer/index.ts +40 -0
  121. package/src/modules/TrackRenderer/render-implements.ts +269 -0
  122. package/src/modules/TrackRenderer/track-pic.ts +19 -0
  123. package/src/modules/TrackRenderer/track-subtitle.ts +16 -0
  124. package/src/modules/cache-manager.ts +10 -0
  125. package/src/modules/decoder.ts +515 -0
  126. package/src/modules/error-handle.ts +20 -0
  127. package/src/modules/network.ts +71 -0
  128. package/src/proto/face_data.proto +45 -0
  129. package/src/proto/face_data_pb.js +1297 -0
  130. package/src/proto/protobuf.min.js +8 -0
  131. package/src/types/capability.ts +23 -0
  132. package/src/types/error.ts +211 -0
  133. package/src/types/event.ts +38 -0
  134. package/src/types/frame-data.ts +121 -0
  135. package/src/types/index.ts +207 -0
  136. package/src/types/render.ts +18 -0
  137. package/src/utils/DataInterface.ts +746 -0
  138. package/src/utils/GLDevice.ts +286 -0
  139. package/src/utils/GLPipeline.ts +1293 -0
  140. package/src/utils/GLPipelineDebugTools.ts +174 -0
  141. package/src/utils/Math.ts +266 -0
  142. package/src/utils/__tests__/capability-checker.test.ts +159 -0
  143. package/src/utils/audio-session.ts +144 -0
  144. package/src/utils/audio.ts +44 -0
  145. package/src/utils/blueimp-md5.d.ts +3 -0
  146. package/src/utils/capability-checker.ts +379 -0
  147. package/src/utils/encodeToken.ts +100 -0
  148. package/src/utils/face.ts +29 -0
  149. package/src/utils/float32-decoder.js +130 -0
  150. package/src/utils/fpsTracker.ts +100 -0
  151. package/src/utils/index.ts +182 -0
  152. package/src/utils/logger.js +36 -0
  153. package/src/utils/media-recorder-timestamp.ts +79 -0
  154. package/src/utils/pcmAnalyzer.ts +154 -0
  155. package/src/utils/perfermance.ts +141 -0
  156. package/src/utils/request.ts +95 -0
  157. package/src/utils/requestAnimateFrames.ts +195 -0
  158. package/src/utils/time.ts +32 -0
  159. package/src/view/DebugOverlay.ts +404 -0
  160. 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
+ }