From 428e1641d54cd62ff10dce886e89d880177b00d2 Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Sat, 28 Mar 2026 17:04:28 +0800 Subject: [PATCH] fix(stage-ui): aliyun nls result change event missing --- .../src/stores/providers/aliyun/index.ts | 22 +++++++++---------- .../providers/aliyun/stream-transcription.ts | 4 +--- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/packages/stage-ui/src/stores/providers/aliyun/index.ts b/packages/stage-ui/src/stores/providers/aliyun/index.ts index ccec3dbb1..cd65907a5 100644 --- a/packages/stage-ui/src/stores/providers/aliyun/index.ts +++ b/packages/stage-ui/src/stores/providers/aliyun/index.ts @@ -171,9 +171,8 @@ export function createAliyunNLSSession( function start(websocketConn: WebSocket, options?: { sessionId?: string } & EventStartTranscription['payload']) { - const mergedOptions = merge({ sessionId: providerSessionId }, options) - - websocketConn.send(JSON.stringify({ + const mergedOptions = merge<({ sessionId: string } & EventStartTranscription['payload'])>({ sessionId: providerSessionId }, options) + const jsonPayload = JSON.stringify({ header: { appkey: provider.appKey, message_id: nanoid(), @@ -181,18 +180,17 @@ export function createAliyunNLSSession( namespace: 'SpeechTranscriber', name: 'StartTranscription', }, - payload: { - format: 'wav', - }, - } satisfies EventStartTranscription)) + payload: mergedOptions, + } satisfies EventStartTranscription) + + websocketConn.send(jsonPayload) } function stop(websocketConn?: WebSocket, options?: { sessionId?: string }) { - const mergedOptions = merge({ sessionId: providerSessionId }, options) - - websocketConn?.send(JSON.stringify({ + const mergedOptions = merge<({ sessionId: string })>({ sessionId: providerSessionId }, options) + const jsonPayload = JSON.stringify({ header: { appkey: provider.appKey, message_id: nanoid(), @@ -201,7 +199,9 @@ export function createAliyunNLSSession( name: 'StopTranscription', }, payload: undefined, - } satisfies EventStopTranscription)) + } satisfies EventStopTranscription) + + websocketConn?.send(jsonPayload) } function onEvent(data: unknown, cb: (event: ServerEvent) => void) { diff --git a/packages/stage-ui/src/stores/providers/aliyun/stream-transcription.ts b/packages/stage-ui/src/stores/providers/aliyun/stream-transcription.ts index 1adf95f9c..3e81288f7 100644 --- a/packages/stage-ui/src/stores/providers/aliyun/stream-transcription.ts +++ b/packages/stage-ui/src/stores/providers/aliyun/stream-transcription.ts @@ -59,7 +59,7 @@ function createWaiter(timeoutMs: number, abortSignal?: AbortSignal) { } } -const DEFAULT_SESSION_OPTIONS: Pick = { +const DEFAULT_SESSION_OPTIONS: EventStartTranscription['payload'] = { format: 'pcm', sample_rate: 16000, } @@ -337,8 +337,6 @@ async function startRealtimeSession(options: InternalRealtimeOptions): Promise hooks?.onWebSocketOpen?.()) session.start(websocket!, { - enable_intermediate_result: true, - enable_punctuation_prediction: true, ...DEFAULT_SESSION_OPTIONS, ...sessionOptions, })