From fe588bc508c0076bb007d6ed36c18ac8ecb341ac Mon Sep 17 00:00:00 2001
From: 王梦迪 <73778524+di-osc@users.noreply.github.com>
Date: 星期二, 20 五月 2025 16:10:59 +0800
Subject: [PATCH] Fsmn_vad支持多线程并发调用 (#2519)
---
runtime/python/websocket/funasr_wss_server.py | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/runtime/python/websocket/funasr_wss_server.py b/runtime/python/websocket/funasr_wss_server.py
index 1ff5856..1f957a9 100644
--- a/runtime/python/websocket/funasr_wss_server.py
+++ b/runtime/python/websocket/funasr_wss_server.py
@@ -179,7 +179,7 @@
websocket.status_dict_asr_online["decoder_chunk_look_back"] = messagejson[
"decoder_chunk_look_back"
]
- if "hotword" in messagejson:
+ if "hotwords" in messagejson:
websocket.status_dict_asr["hotword"] = messagejson["hotwords"]
if "mode" in messagejson:
websocket.mode = messagejson["mode"]
@@ -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