@@ -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