@memori.ai/memori-react 7.7.1 → 7.8.0-rc.0
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/CHANGELOG.md +22 -0
- package/dist/components/Avatar/Avatar.js +2 -2
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.d.ts +6 -3
- package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js +10 -6
- package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js.map +1 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.d.ts +13 -17
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.js +110 -111
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.js.map +1 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.d.ts +3 -4
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js +77 -52
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js.map +1 -1
- package/dist/components/Avatar/AvatarView/index.d.ts +7 -3
- package/dist/components/Avatar/AvatarView/index.js +2 -2
- package/dist/components/Avatar/AvatarView/index.js.map +1 -1
- package/dist/components/MemoriWidget/MemoriWidget.js +34 -22
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/components/layouts/ZoomedFullBody.js +1 -8
- package/dist/components/layouts/ZoomedFullBody.js.map +1 -1
- package/dist/components/layouts/zoomed-full-body.css +5 -1
- package/dist/context/visemeContext.d.ts +9 -15
- package/dist/context/visemeContext.js +73 -190
- package/dist/context/visemeContext.js.map +1 -1
- package/esm/components/Avatar/Avatar.js +2 -2
- package/esm/components/Avatar/Avatar.js.map +1 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.d.ts +6 -3
- package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js +10 -6
- package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js.map +1 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.d.ts +13 -17
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.js +112 -113
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.js.map +1 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.d.ts +3 -4
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js +81 -55
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js.map +1 -1
- package/esm/components/Avatar/AvatarView/index.d.ts +7 -3
- package/esm/components/Avatar/AvatarView/index.js +2 -2
- package/esm/components/Avatar/AvatarView/index.js.map +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.js +34 -22
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/components/layouts/ZoomedFullBody.js +1 -8
- package/esm/components/layouts/ZoomedFullBody.js.map +1 -1
- package/esm/components/layouts/zoomed-full-body.css +5 -1
- package/esm/context/visemeContext.d.ts +9 -15
- package/esm/context/visemeContext.js +74 -191
- package/esm/context/visemeContext.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Avatar/Avatar.tsx +5 -5
- package/src/components/Avatar/AvatarView/AvatarComponent/avatarComponent.tsx +33 -19
- package/src/components/Avatar/AvatarView/AvatarComponent/components/fullbodyAvatar.tsx +181 -158
- package/src/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.tsx +116 -71
- package/src/components/Avatar/AvatarView/AvatarView.stories.tsx +12 -24
- package/src/components/Avatar/AvatarView/index.tsx +9 -8
- package/src/components/MemoriWidget/MemoriWidget.tsx +45 -38
- package/src/components/layouts/ZoomedFullBody.tsx +6 -11
- package/src/components/layouts/zoomed-full-body.css +5 -1
- package/src/context/visemeContext.tsx +130 -283
- package/dist/components/AttachmentMediaModal/AttachmentMediaModal.d.ts +0 -14
- package/dist/components/AttachmentMediaModal/AttachmentMediaModal.js +0 -66
- package/dist/components/AttachmentMediaModal/AttachmentMediaModal.js.map +0 -1
- package/dist/components/Avatar/AvatarView/components/controls.d.ts +0 -23
- package/dist/components/Avatar/AvatarView/components/controls.js +0 -55
- package/dist/components/Avatar/AvatarView/components/controls.js.map +0 -1
- package/dist/components/Avatar/AvatarView/components/fullbodyAvatar.d.ts +0 -19
- package/dist/components/Avatar/AvatarView/components/fullbodyAvatar.js +0 -61
- package/dist/components/Avatar/AvatarView/components/fullbodyAvatar.js.map +0 -1
- package/dist/components/Avatar/AvatarView/components/halfbodyAvatar.d.ts +0 -9
- package/dist/components/Avatar/AvatarView/components/halfbodyAvatar.js +0 -39
- package/dist/components/Avatar/AvatarView/components/halfbodyAvatar.js.map +0 -1
- package/dist/components/Avatar/AvatarView/components/loader.d.ts +0 -5
- package/dist/components/Avatar/AvatarView/components/loader.js +0 -12
- package/dist/components/Avatar/AvatarView/components/loader.js.map +0 -1
- package/dist/components/Avatar/AvatarView/utils/useMouthSpeaking.d.ts +0 -2
- package/dist/components/Avatar/AvatarView/utils/useMouthSpeaking.js +0 -68
- package/dist/components/Avatar/AvatarView/utils/useMouthSpeaking.js.map +0 -1
- package/dist/components/AvatarView/components/avatar.d.ts +0 -9
- package/dist/components/AvatarView/components/avatar.js +0 -35
- package/dist/components/AvatarView/components/avatar.js.map +0 -1
- package/dist/components/AvatarView/components/fullbodyAvatar.d.ts +0 -10
- package/dist/components/AvatarView/components/fullbodyAvatar.js +0 -62
- package/dist/components/AvatarView/components/fullbodyAvatar.js.map +0 -1
- package/dist/components/AvatarView/components/loader.d.ts +0 -5
- package/dist/components/AvatarView/components/loader.js +0 -12
- package/dist/components/AvatarView/components/loader.js.map +0 -1
- package/dist/components/AvatarView/index.d.ts +0 -17
- package/dist/components/AvatarView/index.js +0 -35
- package/dist/components/AvatarView/index.js.map +0 -1
- package/dist/components/AvatarView/utils/useEyeBlink.d.ts +0 -2
- package/dist/components/AvatarView/utils/useEyeBlink.js +0 -40
- package/dist/components/AvatarView/utils/useEyeBlink.js.map +0 -1
- package/dist/components/AvatarView/utils/useHeadMovement.d.ts +0 -2
- package/dist/components/AvatarView/utils/useHeadMovement.js +0 -53
- package/dist/components/AvatarView/utils/useHeadMovement.js.map +0 -1
- package/dist/components/AvatarView/utils/useLoadingMorphAnim.d.ts +0 -2
- package/dist/components/AvatarView/utils/useLoadingMorphAnim.js +0 -34
- package/dist/components/AvatarView/utils/useLoadingMorphAnim.js.map +0 -1
- package/dist/components/AvatarView/utils/useMouthSpeaking.d.ts +0 -2
- package/dist/components/AvatarView/utils/useMouthSpeaking.js +0 -60
- package/dist/components/AvatarView/utils/useMouthSpeaking.js.map +0 -1
- package/dist/components/AvatarView/utils/useSmile.d.ts +0 -2
- package/dist/components/AvatarView/utils/useSmile.js +0 -30
- package/dist/components/AvatarView/utils/useSmile.js.map +0 -1
- package/dist/components/AvatarView/utils/utils.d.ts +0 -13
- package/dist/components/AvatarView/utils/utils.js +0 -42
- package/dist/components/AvatarView/utils/utils.js.map +0 -1
- package/dist/components/ImageUpload/ImageUpload.css +0 -168
- package/dist/components/ImageUpload/ImageUpload.d.ts +0 -28
- package/dist/components/ImageUpload/ImageUpload.js +0 -163
- package/dist/components/ImageUpload/ImageUpload.js.map +0 -1
- package/dist/components/layouts/Default.d.ts +0 -17
- package/dist/components/layouts/Default.js +0 -8
- package/dist/components/layouts/Default.js.map +0 -1
- package/dist/components/ui/Message.d.ts +0 -17
- package/dist/components/ui/Message.js +0 -13
- package/dist/components/ui/Message.js.map +0 -1
- package/esm/components/AttachmentMediaModal/AttachmentMediaModal.d.ts +0 -14
- package/esm/components/AttachmentMediaModal/AttachmentMediaModal.js +0 -63
- package/esm/components/AttachmentMediaModal/AttachmentMediaModal.js.map +0 -1
- package/esm/components/Avatar/AvatarView/components/controls.d.ts +0 -23
- package/esm/components/Avatar/AvatarView/components/controls.js +0 -52
- package/esm/components/Avatar/AvatarView/components/controls.js.map +0 -1
- package/esm/components/Avatar/AvatarView/components/fullbodyAvatar.d.ts +0 -19
- package/esm/components/Avatar/AvatarView/components/fullbodyAvatar.js +0 -57
- package/esm/components/Avatar/AvatarView/components/fullbodyAvatar.js.map +0 -1
- package/esm/components/Avatar/AvatarView/components/halfbodyAvatar.d.ts +0 -9
- package/esm/components/Avatar/AvatarView/components/halfbodyAvatar.js +0 -35
- package/esm/components/Avatar/AvatarView/components/halfbodyAvatar.js.map +0 -1
- package/esm/components/Avatar/AvatarView/components/loader.d.ts +0 -5
- package/esm/components/Avatar/AvatarView/components/loader.js +0 -9
- package/esm/components/Avatar/AvatarView/components/loader.js.map +0 -1
- package/esm/components/Avatar/AvatarView/utils/useMouthSpeaking.d.ts +0 -2
- package/esm/components/Avatar/AvatarView/utils/useMouthSpeaking.js +0 -65
- package/esm/components/Avatar/AvatarView/utils/useMouthSpeaking.js.map +0 -1
- package/esm/components/AvatarView/components/avatar.d.ts +0 -9
- package/esm/components/AvatarView/components/avatar.js +0 -31
- package/esm/components/AvatarView/components/avatar.js.map +0 -1
- package/esm/components/AvatarView/components/fullbodyAvatar.d.ts +0 -10
- package/esm/components/AvatarView/components/fullbodyAvatar.js +0 -58
- package/esm/components/AvatarView/components/fullbodyAvatar.js.map +0 -1
- package/esm/components/AvatarView/components/loader.d.ts +0 -5
- package/esm/components/AvatarView/components/loader.js +0 -9
- package/esm/components/AvatarView/components/loader.js.map +0 -1
- package/esm/components/AvatarView/index.d.ts +0 -17
- package/esm/components/AvatarView/index.js +0 -31
- package/esm/components/AvatarView/index.js.map +0 -1
- package/esm/components/AvatarView/utils/useEyeBlink.d.ts +0 -2
- package/esm/components/AvatarView/utils/useEyeBlink.js +0 -37
- package/esm/components/AvatarView/utils/useEyeBlink.js.map +0 -1
- package/esm/components/AvatarView/utils/useHeadMovement.d.ts +0 -2
- package/esm/components/AvatarView/utils/useHeadMovement.js +0 -50
- package/esm/components/AvatarView/utils/useHeadMovement.js.map +0 -1
- package/esm/components/AvatarView/utils/useLoadingMorphAnim.d.ts +0 -2
- package/esm/components/AvatarView/utils/useLoadingMorphAnim.js +0 -31
- package/esm/components/AvatarView/utils/useLoadingMorphAnim.js.map +0 -1
- package/esm/components/AvatarView/utils/useMouthSpeaking.d.ts +0 -2
- package/esm/components/AvatarView/utils/useMouthSpeaking.js +0 -57
- package/esm/components/AvatarView/utils/useMouthSpeaking.js.map +0 -1
- package/esm/components/AvatarView/utils/useSmile.d.ts +0 -2
- package/esm/components/AvatarView/utils/useSmile.js +0 -27
- package/esm/components/AvatarView/utils/useSmile.js.map +0 -1
- package/esm/components/AvatarView/utils/utils.d.ts +0 -13
- package/esm/components/AvatarView/utils/utils.js +0 -33
- package/esm/components/AvatarView/utils/utils.js.map +0 -1
- package/esm/components/ImageUpload/ImageUpload.css +0 -168
- package/esm/components/ImageUpload/ImageUpload.d.ts +0 -28
- package/esm/components/ImageUpload/ImageUpload.js +0 -160
- package/esm/components/ImageUpload/ImageUpload.js.map +0 -1
- package/esm/components/layouts/Default.d.ts +0 -17
- package/esm/components/layouts/Default.js +0 -5
- package/esm/components/layouts/Default.js.map +0 -1
- package/esm/components/ui/Message.d.ts +0 -17
- package/esm/components/ui/Message.js +0 -10
- package/esm/components/ui/Message.js.map +0 -1
|
@@ -96,8 +96,7 @@ Default.args = {
|
|
|
96
96
|
headMovement: false,
|
|
97
97
|
rotateAvatar: false,
|
|
98
98
|
speaking: false,
|
|
99
|
-
|
|
100
|
-
setMeshRef: () => {},
|
|
99
|
+
updateCurrentViseme: () => {},
|
|
101
100
|
url: 'https://assets.memori.ai/api/v2/asset/b791f77c-1a94-4272-829e-eca82fcc62b7.glb',
|
|
102
101
|
fallbackImg:
|
|
103
102
|
'https://assets.memori.ai/api/v2/asset/d8035229-08cf-42a7-a532-ab051df2603d.png',
|
|
@@ -105,8 +104,7 @@ Default.args = {
|
|
|
105
104
|
|
|
106
105
|
export const EyeBlink = Template.bind({});
|
|
107
106
|
EyeBlink.args = {
|
|
108
|
-
|
|
109
|
-
setMeshRef: () => {},
|
|
107
|
+
updateCurrentViseme: () => {},
|
|
110
108
|
eyeBlink: true,
|
|
111
109
|
headMovement: false,
|
|
112
110
|
rotateAvatar: false,
|
|
@@ -118,8 +116,7 @@ EyeBlink.args = {
|
|
|
118
116
|
|
|
119
117
|
export const HeadMovement = Template.bind({});
|
|
120
118
|
HeadMovement.args = {
|
|
121
|
-
|
|
122
|
-
setMeshRef: () => {},
|
|
119
|
+
updateCurrentViseme: () => {},
|
|
123
120
|
eyeBlink: false,
|
|
124
121
|
headMovement: true,
|
|
125
122
|
rotateAvatar: false,
|
|
@@ -131,8 +128,7 @@ HeadMovement.args = {
|
|
|
131
128
|
|
|
132
129
|
export const RotateAvatar = Template.bind({});
|
|
133
130
|
RotateAvatar.args = {
|
|
134
|
-
|
|
135
|
-
setMeshRef: () => {},
|
|
131
|
+
updateCurrentViseme: () => {},
|
|
136
132
|
eyeBlink: false,
|
|
137
133
|
headMovement: false,
|
|
138
134
|
rotateAvatar: true,
|
|
@@ -144,8 +140,7 @@ RotateAvatar.args = {
|
|
|
144
140
|
|
|
145
141
|
export const Speaking = Template.bind({});
|
|
146
142
|
Speaking.args = {
|
|
147
|
-
|
|
148
|
-
setMeshRef: () => {},
|
|
143
|
+
updateCurrentViseme: () => {},
|
|
149
144
|
eyeBlink: false,
|
|
150
145
|
headMovement: false,
|
|
151
146
|
rotateAvatar: false,
|
|
@@ -162,8 +157,7 @@ Fullbody.args = {
|
|
|
162
157
|
headMovement: true,
|
|
163
158
|
rotateAvatar: true,
|
|
164
159
|
speaking: false,
|
|
165
|
-
|
|
166
|
-
setMeshRef: () => {},
|
|
160
|
+
updateCurrentViseme: () => {},
|
|
167
161
|
url: 'https://models.readyplayer.me/63b55751f17e295642bf07a2.glb',
|
|
168
162
|
fallbackImg:
|
|
169
163
|
'https://assets.memori.ai/api/v2/asset/3049582f-db5f-452c-913d-e4340d4afd0a.png',
|
|
@@ -178,8 +172,7 @@ FullbodyZoomed.args = {
|
|
|
178
172
|
rotateAvatar: true,
|
|
179
173
|
speaking: false,
|
|
180
174
|
isZoomed: true,
|
|
181
|
-
|
|
182
|
-
setMeshRef: () => {},
|
|
175
|
+
updateCurrentViseme: () => {},
|
|
183
176
|
url: 'https://assets.memori.ai/api/v2/asset/3f5ef41c-6c4c-449c-888d-cf9c89782528.glb',
|
|
184
177
|
fallbackImg:
|
|
185
178
|
'https://assets.memori.ai/api/v2/asset/3049582f-db5f-452c-913d-e4340d4afd0a.png',
|
|
@@ -193,8 +186,7 @@ FullbodyAnimatedIdle.args = {
|
|
|
193
186
|
headMovement: true,
|
|
194
187
|
rotateAvatar: true,
|
|
195
188
|
speaking: false,
|
|
196
|
-
|
|
197
|
-
setMeshRef: () => {},
|
|
189
|
+
updateCurrentViseme: () => {},
|
|
198
190
|
url: 'https://models.readyplayer.me/63b55751f17e295642bf07a2.glb',
|
|
199
191
|
fallbackImg:
|
|
200
192
|
'https://assets.memori.ai/api/v2/asset/3049582f-db5f-452c-913d-e4340d4afd0a.png',
|
|
@@ -209,8 +201,7 @@ FullbodyAnimatedLoading.args = {
|
|
|
209
201
|
headMovement: true,
|
|
210
202
|
rotateAvatar: true,
|
|
211
203
|
speaking: false,
|
|
212
|
-
|
|
213
|
-
setMeshRef: () => {},
|
|
204
|
+
updateCurrentViseme: () => {},
|
|
214
205
|
url: 'https://models.readyplayer.me/63b55751f17e295642bf07a2.glb',
|
|
215
206
|
fallbackImg:
|
|
216
207
|
'https://assets.memori.ai/api/v2/asset/3049582f-db5f-452c-913d-e4340d4afd0a.png',
|
|
@@ -225,8 +216,7 @@ FullbodyAnimatedSpeaking.args = {
|
|
|
225
216
|
headMovement: true,
|
|
226
217
|
rotateAvatar: true,
|
|
227
218
|
speaking: true,
|
|
228
|
-
|
|
229
|
-
setMeshRef: () => {},
|
|
219
|
+
updateCurrentViseme: () => {},
|
|
230
220
|
url: 'https://models.readyplayer.me/63b55751f17e295642bf07a2.glb',
|
|
231
221
|
fallbackImg:
|
|
232
222
|
'https://assets.memori.ai/api/v2/asset/3049582f-db5f-452c-913d-e4340d4afd0a.png',
|
|
@@ -241,8 +231,7 @@ FullbodyFemale.args = {
|
|
|
241
231
|
headMovement: true,
|
|
242
232
|
rotateAvatar: true,
|
|
243
233
|
speaking: false,
|
|
244
|
-
|
|
245
|
-
setMeshRef: () => {},
|
|
234
|
+
updateCurrentViseme: () => {},
|
|
246
235
|
url: 'https://models.readyplayer.me/650d50c2663b19e0d2831b2b.glb',
|
|
247
236
|
fallbackImg:
|
|
248
237
|
'https://assets.memori.ai/api/v2/asset/3049582f-db5f-452c-913d-e4340d4afd0a.png',
|
|
@@ -256,8 +245,7 @@ FullbodyAnimatedFemale.args = {
|
|
|
256
245
|
headMovement: true,
|
|
257
246
|
rotateAvatar: true,
|
|
258
247
|
speaking: true,
|
|
259
|
-
|
|
260
|
-
setMeshRef: () => {},
|
|
248
|
+
updateCurrentViseme: () => {},
|
|
261
249
|
url: 'https://models.readyplayer.me/650d50c2663b19e0d2831b2b.glb',
|
|
262
250
|
fallbackImg:
|
|
263
251
|
'https://assets.memori.ai/api/v2/asset/3049582f-db5f-452c-913d-e4340d4afd0a.png',
|
|
@@ -23,8 +23,9 @@ export interface Props {
|
|
|
23
23
|
isZoomed?: boolean;
|
|
24
24
|
chatEmission?: any;
|
|
25
25
|
setMeshRef?: any;
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
stopProcessing: () => void;
|
|
27
|
+
resetVisemeQueue: () => void;
|
|
28
|
+
updateCurrentViseme: (currentTime: number) => { name: string; weight: number } | null;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
const defaultStyles = {
|
|
@@ -88,9 +89,9 @@ export default function ContainerAvatarView({
|
|
|
88
89
|
showControls = false,
|
|
89
90
|
isZoomed,
|
|
90
91
|
chatEmission,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
stopProcessing,
|
|
93
|
+
resetVisemeQueue,
|
|
94
|
+
updateCurrentViseme,
|
|
94
95
|
}: Props) {
|
|
95
96
|
return (
|
|
96
97
|
<Canvas
|
|
@@ -114,9 +115,9 @@ export default function ContainerAvatarView({
|
|
|
114
115
|
speaking={speaking || false}
|
|
115
116
|
halfBody={halfBody || false}
|
|
116
117
|
chatEmission={chatEmission}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
updateCurrentViseme={updateCurrentViseme}
|
|
119
|
+
stopProcessing={stopProcessing}
|
|
120
|
+
resetVisemeQueue={resetVisemeQueue}
|
|
120
121
|
/>
|
|
121
122
|
</Suspense>
|
|
122
123
|
</Canvas>
|
|
@@ -543,11 +543,13 @@ const MemoriWidget = ({
|
|
|
543
543
|
const [hideEmissions, setHideEmissions] = useState(false);
|
|
544
544
|
|
|
545
545
|
const {
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
546
|
+
updateCurrentViseme,
|
|
547
|
+
startProcessing,
|
|
548
|
+
resetAndStartProcessing,
|
|
549
|
+
isProcessing,
|
|
550
|
+
addViseme,
|
|
551
|
+
stopProcessing,
|
|
552
|
+
resetVisemeQueue,
|
|
551
553
|
} = useViseme();
|
|
552
554
|
|
|
553
555
|
useEffect(() => {
|
|
@@ -1961,15 +1963,12 @@ const MemoriWidget = ({
|
|
|
1961
1963
|
onEndSpeakStartListen();
|
|
1962
1964
|
};
|
|
1963
1965
|
|
|
1964
|
-
//
|
|
1965
|
-
|
|
1966
|
+
// Add this before starting new speech synthesis
|
|
1967
|
+
resetVisemeQueue();
|
|
1966
1968
|
|
|
1967
1969
|
// Set up the viseme event handler
|
|
1968
1970
|
speechSynthesizer.visemeReceived = function (_, e) {
|
|
1969
|
-
|
|
1970
|
-
visemeId: e.visemeId,
|
|
1971
|
-
audioOffset: e.audioOffset,
|
|
1972
|
-
});
|
|
1971
|
+
addViseme(e.visemeId, e.audioOffset);
|
|
1973
1972
|
};
|
|
1974
1973
|
|
|
1975
1974
|
const textToSpeak = escapeHTML(
|
|
@@ -1979,31 +1978,33 @@ const MemoriWidget = ({
|
|
|
1979
1978
|
speechSynthesizer.speakSsmlAsync(
|
|
1980
1979
|
`<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xmlns:emo="http://www.w3.org/2009/10/emotionml" xml:lang="${getCultureCodeByLanguage(
|
|
1981
1980
|
userLang
|
|
1982
|
-
)}"><voice name="${getTTSVoice(
|
|
1983
|
-
userLang
|
|
1984
|
-
)}"><prosody rate="0.95"><mstts:express-as style="${getAzureStyleForEmotion(
|
|
1985
|
-
emotion
|
|
1986
|
-
)}"><s>${replaceTextWithPhonemes(
|
|
1981
|
+
)}"><voice name="${getTTSVoice(userLang)}"><s>${replaceTextWithPhonemes(
|
|
1987
1982
|
textToSpeak,
|
|
1988
1983
|
userLang.toLowerCase()
|
|
1989
|
-
)}</s></
|
|
1984
|
+
)}</s></voice></speak>`,
|
|
1990
1985
|
result => {
|
|
1991
1986
|
if (result) {
|
|
1992
1987
|
setIsPlayingAudio(true);
|
|
1993
1988
|
memoriSpeaking = true;
|
|
1994
1989
|
|
|
1995
|
-
// Process the viseme data
|
|
1996
|
-
processVisemeQueue();
|
|
1997
|
-
|
|
1998
1990
|
try {
|
|
1999
1991
|
// Decode the audio data
|
|
2000
|
-
audioContext
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
1992
|
+
audioContext!.decodeAudioData(result.audioData, function (buffer) {
|
|
1993
|
+
console.log('decoded');
|
|
1994
|
+
const currentSource = audioContext!.createBufferSource();
|
|
1995
|
+
currentSource.buffer = buffer;
|
|
1996
|
+
currentSource.connect(audioContext!.destination);
|
|
1997
|
+
startProcessing();
|
|
1998
|
+
currentSource.start();
|
|
1999
|
+
|
|
2000
|
+
currentSource.onended = () => {
|
|
2001
|
+
console.log('ended');
|
|
2002
|
+
setIsPlayingAudio(false);
|
|
2003
|
+
memoriSpeaking = false;
|
|
2004
|
+
stopProcessing();
|
|
2005
|
+
resetVisemeQueue();
|
|
2006
|
+
emitEndSpeakEvent();
|
|
2007
|
+
};
|
|
2007
2008
|
});
|
|
2008
2009
|
|
|
2009
2010
|
// Handle the audio context state changes
|
|
@@ -2012,27 +2013,28 @@ const MemoriWidget = ({
|
|
|
2012
2013
|
audioContext.state === 'suspended' ||
|
|
2013
2014
|
audioContext.state === 'closed'
|
|
2014
2015
|
) {
|
|
2016
|
+
console.log('suspended');
|
|
2015
2017
|
source.disconnect();
|
|
2016
2018
|
setIsPlayingAudio(false);
|
|
2017
|
-
|
|
2019
|
+
stopProcessing();
|
|
2020
|
+
resetVisemeQueue();
|
|
2018
2021
|
memoriSpeaking = false;
|
|
2022
|
+
emitEndSpeakEvent();
|
|
2019
2023
|
} else if ((audioContext.state as string) === 'interrupted') {
|
|
2024
|
+
console.log('interrupted');
|
|
2025
|
+
stopProcessing();
|
|
2026
|
+
resetVisemeQueue();
|
|
2027
|
+
|
|
2020
2028
|
audioContext.resume();
|
|
2021
2029
|
}
|
|
2022
2030
|
};
|
|
2023
|
-
|
|
2024
|
-
audioContext.resume();
|
|
2025
|
-
|
|
2026
|
-
if (speechSynthesizer) {
|
|
2027
|
-
speechSynthesizer.close();
|
|
2028
|
-
speechSynthesizer = null;
|
|
2029
|
-
}
|
|
2030
2031
|
} catch (e) {
|
|
2031
2032
|
console.warn('speak error: ', e);
|
|
2032
2033
|
window.speechSynthesis.speak(new SpeechSynthesisUtterance(text));
|
|
2033
|
-
clearVisemes();
|
|
2034
2034
|
setIsPlayingAudio(false);
|
|
2035
2035
|
memoriSpeaking = false;
|
|
2036
|
+
stopProcessing();
|
|
2037
|
+
resetVisemeQueue();
|
|
2036
2038
|
|
|
2037
2039
|
if (speechSynthesizer) {
|
|
2038
2040
|
speechSynthesizer.close();
|
|
@@ -2042,7 +2044,8 @@ const MemoriWidget = ({
|
|
|
2042
2044
|
}
|
|
2043
2045
|
} else {
|
|
2044
2046
|
audioContext.resume();
|
|
2045
|
-
|
|
2047
|
+
stopProcessing();
|
|
2048
|
+
resetVisemeQueue();
|
|
2046
2049
|
setIsPlayingAudio(false);
|
|
2047
2050
|
memoriSpeaking = false;
|
|
2048
2051
|
emitEndSpeakEvent();
|
|
@@ -2053,6 +2056,8 @@ const MemoriWidget = ({
|
|
|
2053
2056
|
window.speechSynthesis.speak(new SpeechSynthesisUtterance(text));
|
|
2054
2057
|
setIsPlayingAudio(false);
|
|
2055
2058
|
memoriSpeaking = false;
|
|
2059
|
+
stopProcessing();
|
|
2060
|
+
resetVisemeQueue();
|
|
2056
2061
|
emitEndSpeakEvent();
|
|
2057
2062
|
}
|
|
2058
2063
|
);
|
|
@@ -2994,7 +2999,9 @@ const MemoriWidget = ({
|
|
|
2994
2999
|
|
|
2995
3000
|
const showFullHistory =
|
|
2996
3001
|
showOnlyLastMessages === undefined
|
|
2997
|
-
? layout !== 'TOTEM' &&
|
|
3002
|
+
? layout !== 'TOTEM' &&
|
|
3003
|
+
layout !== 'WEBSITE_ASSISTANT' &&
|
|
3004
|
+
layout !== 'HIDDEN_CHAT'
|
|
2998
3005
|
: !showOnlyLastMessages;
|
|
2999
3006
|
|
|
3000
3007
|
const headerProps: HeaderProps = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import Spin from '../ui/Spin';
|
|
3
3
|
import { LayoutProps } from '../MemoriWidget/MemoriWidget';
|
|
4
4
|
|
|
@@ -21,20 +21,15 @@ const ZoomedFullBodyLayout: React.FC<LayoutProps> = ({
|
|
|
21
21
|
loading = false,
|
|
22
22
|
poweredBy,
|
|
23
23
|
}) => {
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
document.body.style.overflow = 'hidden';
|
|
26
|
-
return () => {
|
|
27
|
-
document.body.style.overflow = '';
|
|
28
|
-
};
|
|
29
|
-
}, []);
|
|
30
|
-
|
|
31
24
|
return (
|
|
32
25
|
<>
|
|
33
26
|
{integrationStyle}
|
|
34
27
|
{integrationBackground}
|
|
35
28
|
|
|
36
|
-
<Spin className="memori-spin--zoomed-full-body"
|
|
37
|
-
{showInstruct && ChangeMode && changeModeProps &&
|
|
29
|
+
<Spin className="memori-spin--zoomed-full-body" spinning={loading}>
|
|
30
|
+
{showInstruct && ChangeMode && changeModeProps && (
|
|
31
|
+
<ChangeMode {...changeModeProps} />
|
|
32
|
+
)}
|
|
38
33
|
|
|
39
34
|
{Header && headerProps && <Header {...headerProps} />}
|
|
40
35
|
|
|
@@ -61,4 +56,4 @@ const ZoomedFullBodyLayout: React.FC<LayoutProps> = ({
|
|
|
61
56
|
);
|
|
62
57
|
};
|
|
63
58
|
|
|
64
|
-
export default ZoomedFullBodyLayout;
|
|
59
|
+
export default ZoomedFullBodyLayout;
|