diff --git a/app/fastwhisper.py b/app/fastwhisper.py index a920bbf..dfaac94 100644 --- a/app/fastwhisper.py +++ b/app/fastwhisper.py @@ -1,4 +1,5 @@ import asyncio +import json from appPublic.worker import get_event_loop from appPublic.log import debug from fw.init import load_fastwhisper @@ -15,9 +16,18 @@ async def transcribe(request, *args, **kw): async def get_status(request, *args, **kw): env = request._run_ns debug(f'get_status():{env.params_kw.task_id=}') - ret = await env.fastwhisper.get_status(env.params_kw.task_id) + data = await env.fastwhisper.get_status(env.params_kw.task_id) + if isinstance(data['result'], str): + data['result'] = json.loads(data['result']) return ret +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['result'] = json.loads(data['result']) + return data + async def start_fw_server(*args, **kw): debug(f'start fastwhisper engine, {args=}, {kw=}') env = ServerEnv() @@ -30,6 +40,7 @@ async def ahapp_built(app): def init(): rf = RegisterFunction() + rf.register('asr', asr) rf.register('transcribe', transcribe) rf.register('ahapp_built', ahapp_built) rf.register('get_status', get_status) diff --git a/conf/config.json b/conf/config.json index bb44374..ef27520 100644 --- a/conf/config.json +++ b/conf/config.json @@ -26,6 +26,9 @@ { "leading":"/idfile", "registerfunction":"idfile" + },{ + "leading": "/v1/asr", + "registerfunction": "asr" },{ "leading": "/v1/transcribe", "registerfunction": "transcribe"