fix slice bug

This commit is contained in:
akdeb 2026-04-17 13:23:31 +05:30
parent 19cfc1610d
commit 6bfa6b33e2

View file

@ -141,7 +141,7 @@ export class ElatoOpenAiVoiceAgent extends DurableObject<Env> {
websocket.close(1011, "startup_failed"); websocket.close(1011, "startup_failed");
} }
private ensureTranscriberSession(websocket: WebSocket) { private ensureTranscriberSession() {
if (this.transcriberSession) { if (this.transcriberSession) {
return; return;
} }
@ -265,7 +265,7 @@ export class ElatoOpenAiVoiceAgent extends DurableObject<Env> {
server.accept(); server.accept();
this.currentWebSocket = server; this.currentWebSocket = server;
this.ensureTranscriberSession(server); this.ensureTranscriberSession();
server.send(JSON.stringify(createAuthMessage())); server.send(JSON.stringify(createAuthMessage()));
void this.startInitialTurn(server); void this.startInitialTurn(server);
@ -277,12 +277,21 @@ export class ElatoOpenAiVoiceAgent extends DurableObject<Env> {
return; return;
} }
const chunk = event.data instanceof ArrayBuffer const chunk =
? event.data event.data instanceof ArrayBuffer
: event.data.buffer.slice( ? event.data
event.data.byteOffset, : event.data instanceof Uint8Array
event.data.byteOffset + event.data.byteLength, ? 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); this.transcriberSession.feed(chunk);
return; return;