Skip to content

Commit 6bfa6b3

Browse files
committed
fix slice bug
1 parent 19cfc16 commit 6bfa6b3

1 file changed

Lines changed: 17 additions & 8 deletions

File tree

server-cloudflare/models/openai.ts

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ export class ElatoOpenAiVoiceAgent extends DurableObject<Env> {
141141
websocket.close(1011, "startup_failed");
142142
}
143143

144-
private ensureTranscriberSession(websocket: WebSocket) {
144+
private ensureTranscriberSession() {
145145
if (this.transcriberSession) {
146146
return;
147147
}
@@ -265,7 +265,7 @@ export class ElatoOpenAiVoiceAgent extends DurableObject<Env> {
265265
server.accept();
266266

267267
this.currentWebSocket = server;
268-
this.ensureTranscriberSession(server);
268+
this.ensureTranscriberSession();
269269

270270
server.send(JSON.stringify(createAuthMessage()));
271271
void this.startInitialTurn(server);
@@ -277,12 +277,21 @@ export class ElatoOpenAiVoiceAgent extends DurableObject<Env> {
277277
return;
278278
}
279279

280-
const chunk = event.data instanceof ArrayBuffer
281-
? event.data
282-
: event.data.buffer.slice(
283-
event.data.byteOffset,
284-
event.data.byteOffset + event.data.byteLength,
285-
);
280+
const chunk =
281+
event.data instanceof ArrayBuffer
282+
? event.data
283+
: event.data instanceof Uint8Array
284+
? event.data.slice().buffer
285+
: event.data instanceof Blob
286+
? await event.data.arrayBuffer()
287+
: null;
288+
289+
if (!chunk) {
290+
console.error(
291+
`[cloudflare][stt] unsupported binary payload: ${Object.prototype.toString.call(event.data)}`,
292+
);
293+
return;
294+
}
286295

287296
this.transcriberSession.feed(chunk);
288297
return;

0 commit comments

Comments
 (0)