| funasr/runtime/html5/static/main.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| funasr/runtime/html5/static/wsconnecter.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| funasr/runtime/python/websocket/wss_srv_asr.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
funasr/runtime/html5/static/main.js
@@ -145,7 +145,9 @@ isRec = false; info_div.innerHTML="请等候..."; btnStop.disabled = true; setTimeout(function(){btnStart.disabled = false;info_div.innerHTML="请点击开始";}, 3000 ); setTimeout(function(){ console.log("call stop ws!"); wsconnecter.wsStop();btnStart.disabled = false;info_div.innerHTML="请点击开始";}, 3000 ); rec.stop(function(blob,duration){ console.log(blob); funasr/runtime/html5/static/wsconnecter.js
@@ -28,7 +28,11 @@ if ( 'WebSocket' in window ) { speechSokt = new WebSocket( Uri ); // 定义socket连接对象 speechSokt.onopen = function(e){onOpen(e);}; // 定义响应函数 speechSokt.onclose = function(e){onClose(e);}; speechSokt.onclose = function(e){ console.log("onclose ws!"); speechSokt.close(); onClose(e); }; speechSokt.onmessage = function(e){onMessage(e);}; speechSokt.onerror = function(e){onError(e);}; return 1; @@ -42,6 +46,7 @@ // 定义停止与发送函数 this.wsStop = function () { if(speechSokt != undefined) { console.log("stop ws!"); speechSokt.close(); } }; funasr/runtime/python/websocket/wss_srv_asr.py
@@ -62,13 +62,32 @@ update_model='v1.0.4' mode='paraformer_streaming') print("model loaded") print("model loaded! only support one client at the same time now!!!!") async def ws_reset(websocket): print("ws reset now, total num is ",len(websocket_users)) websocket.param_dict_asr_online = {"cache": dict()} websocket.param_dict_vad = {'in_cache': dict(), "is_final": True} websocket.param_dict_asr_online["is_final"]=True audio_in=b''.join(np.zeros(int(16000),dtype=np.int16)) inference_pipeline_vad(audio_in=audio_in, param_dict=websocket.param_dict_vad) inference_pipeline_asr_online(audio_in=audio_in, param_dict=websocket.param_dict_asr_online) await websocket.close() async def clear_websocket(): for websocket in websocket_users: await ws_reset(websocket) websocket_users.clear() async def ws_serve(websocket, path): frames = [] frames_asr = [] frames_asr_online = [] global websocket_users await clear_websocket() websocket_users.add(websocket) websocket.param_dict_asr = {} websocket.param_dict_asr_online = {"cache": dict()} @@ -140,7 +159,8 @@ except websockets.ConnectionClosed: print("ConnectionClosed...", websocket_users) print("ConnectionClosed...", websocket_users,flush=True) await ws_reset(websocket) websocket_users.remove(websocket) except websockets.InvalidState: print("InvalidState...")