| | |
| | | websocket.speek_online = Queue() |
| | | ss_online = threading.Thread(target=asr_online, args=(websocket,)) |
| | | ss_online.start() |
| | | ss_ws_send = threading.Thread(target=ws_send, args=(websocket,)) |
| | | ss_ws_send.start() |
| | | try: |
| | | async for message in websocket: |
| | | message = json.loads(message) |
| | |
| | | websocket.speek_online.put(audio_in) |
| | | frames_online = [] |
| | | |
| | | if not websocket.send_msg.empty(): |
| | | await websocket.send(websocket.send_msg.get()) |
| | | websocket.send_msg.task_done() |
| | | # if not websocket.send_msg.empty(): |
| | | # await websocket.send(websocket.send_msg.get()) |
| | | # websocket.send_msg.task_done() |
| | | |
| | | |
| | | except websockets.ConnectionClosed: |
| | |
| | | |
| | | |
| | | |
| | | def asr_online(websocket): # ASR推理 |
| | | def ws_send(websocket): # ASR推理 |
| | | global inference_pipeline_asr_online |
| | | global websocket_users |
| | | while websocket in websocket_users: |
| | | if not websocket.speek_online.empty(): |
| | | await websocket.send(websocket.send_msg.get()) |
| | | websocket.send_msg.task_done() |
| | | time.sleep(0.005) |
| | | |
| | | |
| | | def asr_online(websocket): # ASR推理 |
| | | global websocket_users |
| | | while websocket in websocket_users: |
| | | if not websocket.send_msg.empty(): |
| | | audio_in = websocket.speek_online.get() |
| | | websocket.speek_online.task_done() |
| | | if len(audio_in) > 0: |
| | |
| | | audio_in = load_bytes(audio_in) |
| | | # print(audio_in.shape) |
| | | print(websocket.param_dict_asr_online["is_final"]) |
| | | rec_result = inference_pipeline_asr_online(audio_in=audio_in, param_dict=websocket.param_dict_asr_online) |
| | | rec_result = inference_pipeline_asr_online(audio_in=audio_in, |
| | | param_dict=websocket.param_dict_asr_online) |
| | | if websocket.param_dict_asr_online["is_final"]: |
| | | websocket.param_dict_asr_online["cache"] = dict() |
| | | |