diff --git a/app/fastwhisper.py b/app/fastwhisper.py index 36061f7..a4a3df6 100644 --- a/app/fastwhisper.py +++ b/app/fastwhisper.py @@ -17,14 +17,19 @@ async def get_status(request, *args, **kw): env = request._run_ns debug(f'get_status():{env.params_kw.task_id=}') data = await env.fastwhisper.get_status(env.params_kw.task_id) - if isinstance(data['result'], str): + if data['status'] == 'SUCCEEDED' and isinstance(data['result'], str): data['result'] = json.loads(data['result']) - return ret + return data async def asr(request, *args, **kw): env = request._run_ns ret = await env.fastwhisper.submit_task(env.params_kw) - data = await env.fastwhisper.get_status(ret['task_id']) + data = None + while True: + data = await env.fastwhisper.get_status(ret['task_id']) + if data['status'] in ['SUCCEEDED', 'FAILED']: + break + await asyncio.sleep(0.2) if data['status'] == 'SUCCEEDED': s = data.get('result') if s: