From 4ee715e70e36cdba7b05fe044fecab9cf4fa16ff Mon Sep 17 00:00:00 2001
From: 游雁 <zhifu.gzf@alibaba-inc.com>
Date: 星期一, 03 七月 2023 17:23:02 +0800
Subject: [PATCH] websocket bug

---
 funasr/runtime/python/websocket/wss_client_asr.py |   30 +++++++++++++++++++++++-------
 1 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/funasr/runtime/python/websocket/wss_client_asr.py b/funasr/runtime/python/websocket/wss_client_asr.py
index 2ea8a16..0f1d1d0 100644
--- a/funasr/runtime/python/websocket/wss_client_asr.py
+++ b/funasr/runtime/python/websocket/wss_client_asr.py
@@ -40,7 +40,7 @@
                     help="audio_in")
 parser.add_argument("--send_without_sleep",
                     action="store_true",
-                    default=False,
+                    default=True,
                     help="if audio_in is set, send_without_sleep")
 parser.add_argument("--test_thread_num",
                     type=int,
@@ -161,7 +161,8 @@
                 #voices.put(message)
                 await websocket.send(message)
  
-            sleep_duration = 0.001 if args.send_without_sleep else 60 * args.chunk_size[1] / args.chunk_interval / 1000
+            sleep_duration = 0.001 if args.mode == "offline" else 60 * args.chunk_size[1] / args.chunk_interval / 1000
+            
             await asyncio.sleep(sleep_duration)
     # when all data sent, we need to close websocket
     while not voices.empty():
@@ -175,9 +176,24 @@
          await asyncio.sleep(1)
     
     await websocket.close()
-     
- 
- 
+
+
+async def ws_send():
+    global voices
+    global websocket
+    print("started to sending data!")
+    while True:
+        while not voices.empty():
+            data = voices.get()
+            voices.task_done()
+            try:
+                await websocket.send(data)
+            except Exception as e:
+                print('Exception occurred:', e)
+                traceback.print_exc()
+                exit(0)
+            await asyncio.sleep(0.005)
+        await asyncio.sleep(0.005)
 
  
              
@@ -261,9 +277,9 @@
             task = asyncio.create_task(record_from_scp(i, 1))
         else:
             task = asyncio.create_task(record_microphone())
-        #task2 = asyncio.create_task(ws_send())
+        task2 = asyncio.create_task(ws_send())
         task3 = asyncio.create_task(message(str(id)+"_"+str(i))) #processid+fileid
-        await asyncio.gather(task, task3)
+        await asyncio.gather(task, task2, task3)
   exit(0)
     
 

--
Gitblit v1.9.1