FunASR/runtime/python/onnxruntime/funasr_server_http.py
zhifu gao 861147c730
Dev gzf exp (#1654)
* sensevoice finetune

* sensevoice finetune

* sensevoice finetune

* sensevoice finetune

* sensevoice finetune

* sensevoice finetune

* sensevoice finetune

* sensevoice finetune

* sensevoice finetune

* sensevoice finetune

* bugfix

* update with main (#1631)

* update seaco finetune

* v1.0.24

---------

Co-authored-by: 维石 <shixian.shi@alibaba-inc.com>

* sensevoice

* sensevoice

* sensevoice

* update with main (#1638)

* update seaco finetune

* v1.0.24

* update rwkv template

---------

Co-authored-by: 维石 <shixian.shi@alibaba-inc.com>

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sensevoice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* sense voice

* whisper

* whisper

* update style

* update style

---------

Co-authored-by: 维石 <shixian.shi@alibaba-inc.com>
2024-04-24 16:03:38 +08:00

44 lines
1.3 KiB
Python

import argparse
import base64
import io
import soundfile as sf
import uvicorn
from fastapi import FastAPI, Body
app = FastAPI()
from funasr_onnx import Paraformer
model_dir = "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx"
model = Paraformer(model_dir, batch_size=1, quantize=True)
async def recognition_onnx(waveform):
result = model(waveform)[0]["preds"][0]
return result
@app.post("/api/asr")
async def asr(item: dict = Body(...)):
try:
audio_bytes = base64.b64decode(bytes(item["wav_base64"], "utf-8"))
waveform, _ = sf.read(io.BytesIO(audio_bytes))
result = await recognition_onnx(waveform)
ret = {"results": result, "code": 0}
except:
print("请求出错,这里是处理出错的")
ret = {"results": "", "code": 1}
return ret
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="API Service")
parser.add_argument("--listen", default="0.0.0.0", type=str, help="the network to listen")
parser.add_argument("--port", default=8888, type=int, help="the port to listen")
args = parser.parse_args()
print("start...")
print("server on:", args)
uvicorn.run(app, host=args.listen, port=args.port)