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:
zhaomingwork 2023-06-02 13:02:29 +08:00 committed by GitHub
parent 5072bba12d
commit 6f3b508485
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 4 deletions

View File

@ -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);

View File

@ -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();
}
};

View File

@ -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...")