实现了本地部署FasterWhisper后,需要将本地服务发布为服务接口。
FastAPI 是一个用于构建 API
的现代、快速(高性能)的 web
框架,使用 Python 3.8+
并基于标准的 Python
类型提示,具体操作如下:
Terminal输入
$ pip install fastapi faster-whisper uvicorn
安装成功后,创建main.py文件
拷贝如下代码:
import argparse
from typing import Final, List
from faster_whisper import WhisperModel
from fastapi import FastAPI
import uvicorn
import numpy as np
from pydantic import BaseModel
class TranscribeRequestBody(BaseModel):
request_body: str
model = WhisperModel(model_size_or_path="d:/faster whisper model/faster-whisper-large-v2", device="cuda")
app: FastAPI = FastAPI()
@app.get("/")
def root():
"""Hello World"""
return {"message": "Hello World"}
@app.post("/transcribe")
def transcribe(request_body):
try:
segments, info = model.transcribe("d:/"+request_body, beam_size=5)
list_segments = []
for seg in segments:
list_segments.append({"text": seg.text})
return {"language": info.language, "segments": list_segments};
except Exception as result:
return {"error":result};
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--port", type=int, default=17860)
args = parser.parse_args()
uvicorn.run(app, host="127.0.0.1", port=8082)
通过执行python main.py,出现如下运行界面
(fwhisper) C:\Users\Administrator>python C:\ProgramData\anaconda3\envs\fwhisper\main.py
INFO: Started server process [29612]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8082 (Press CTRL+C to quit)
此时代表api服务启动成功
打开浏览器,出现Hello World代表运行成功
验证接口服务可以用postman
执行成功!