mirror of
https://github.com/modelscope/FunASR
synced 2025-09-15 14:48:36 +08:00
For python ws online asr slow problem (#582)
* for python online ws srv become slow problem * little change for message
This commit is contained in:
parent
5072bba12d
commit
6f3b508485
@ -145,7 +145,9 @@ function stop() {
|
||||
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);
|
||||
|
||||
@ -28,7 +28,11 @@ function WebSocketConnectMethod( config ) { //定义socket连接方法类
|
||||
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 @@ function WebSocketConnectMethod( config ) { //定义socket连接方法类
|
||||
// 定义停止与发送函数
|
||||
this.wsStop = function () {
|
||||
if(speechSokt != undefined) {
|
||||
console.log("stop ws!");
|
||||
speechSokt.close();
|
||||
}
|
||||
};
|
||||
|
||||
@ -62,13 +62,32 @@ inference_pipeline_asr_online = pipeline(
|
||||
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 @@ async def ws_serve(websocket, path):
|
||||
|
||||
|
||||
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...")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user