From 6bfa6b33e2f00347a83feddf0faf8af164dd0ecc Mon Sep 17 00:00:00 2001 From: akdeb Date: Fri, 17 Apr 2026 13:23:31 +0530 Subject: [PATCH] fix slice bug --- server-cloudflare/models/openai.ts | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/server-cloudflare/models/openai.ts b/server-cloudflare/models/openai.ts index ba45d45..2a68801 100644 --- a/server-cloudflare/models/openai.ts +++ b/server-cloudflare/models/openai.ts @@ -141,7 +141,7 @@ export class ElatoOpenAiVoiceAgent extends DurableObject { websocket.close(1011, "startup_failed"); } - private ensureTranscriberSession(websocket: WebSocket) { + private ensureTranscriberSession() { if (this.transcriberSession) { return; } @@ -265,7 +265,7 @@ export class ElatoOpenAiVoiceAgent extends DurableObject { server.accept(); this.currentWebSocket = server; - this.ensureTranscriberSession(server); + this.ensureTranscriberSession(); server.send(JSON.stringify(createAuthMessage())); void this.startInitialTurn(server); @@ -277,12 +277,21 @@ export class ElatoOpenAiVoiceAgent extends DurableObject { return; } - const chunk = event.data instanceof ArrayBuffer - ? event.data - : event.data.buffer.slice( - event.data.byteOffset, - event.data.byteOffset + event.data.byteLength, - ); + const chunk = + event.data instanceof ArrayBuffer + ? event.data + : event.data instanceof Uint8Array + ? event.data.slice().buffer + : event.data instanceof Blob + ? await event.data.arrayBuffer() + : null; + + if (!chunk) { + console.error( + `[cloudflare][stt] unsupported binary payload: ${Object.prototype.toString.call(event.data)}`, + ); + return; + } this.transcriberSession.feed(chunk); return;