From d20c030e5b75306dd67e8fe9924d5d94eac1bf30 Mon Sep 17 00:00:00 2001
From: wusong <63332221+wusong1128@users.noreply.github.com>
Date: 星期三, 25 九月 2024 15:11:50 +0800
Subject: [PATCH] 解决python ws服务针对尾部非人声录音无结束标识返回的问题 (#2102)

---
 runtime/python/websocket/funasr_wss_server.py |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/runtime/python/websocket/funasr_wss_server.py b/runtime/python/websocket/funasr_wss_server.py
index 1ff5856..9de120e 100644
--- a/runtime/python/websocket/funasr_wss_server.py
+++ b/runtime/python/websocket/funasr_wss_server.py
@@ -187,7 +187,7 @@
             websocket.status_dict_vad["chunk_size"] = int(
                 websocket.status_dict_asr_online["chunk_size"][1] * 60 / websocket.chunk_interval
             )
-            if len(frames_asr_online) > 0 or len(frames_asr) > 0 or not isinstance(message, str):
+            if len(frames_asr_online) > 0 or len(frames_asr) >= 0 or not isinstance(message, str):
                 if not isinstance(message, str):
                     frames.append(message)
                     duration_ms = len(message) // 32
@@ -291,6 +291,17 @@
             )
             await websocket.send(message)
 
+    else:
+        mode = "2pass-offline" if "2pass" in websocket.mode else websocket.mode
+        message = json.dumps(
+            {
+                "mode": mode,
+                "text": "",
+                "wav_name": websocket.wav_name,
+                "is_final": websocket.is_speaking,
+            }
+        )
+        await websocket.send(message)    
 
 async def async_asr_online(websocket, audio_in):
     if len(audio_in) > 0:

--
Gitblit v1.9.1