背景
目前nas负责处理音频转为文字,由于没有gpu稍微长一点的音频就需要处理几个小时。将一台装有4060显卡的台式机中的whisper通过api服务的方式提供出来,提供nas调用。
封装
编写一个FastAPI应用,将Whisper模型包装成API接口,并且能够处理外部传入的音频文件请求。
from fastapi import FastAPI, UploadFile, File, HTTPException, Form
import whisper
import os
app = FastAPI()
# 加载Whisper模型,这里使用 medium 模型
model = whisper.load_model("medium")
@app.post("/transcribe/")
async def transcribe_audio(
file: UploadFile = File(...),
language: str = Form(...), # 接收语言类型参数
initial_prompt: str = Form(default="以下是普通话的句子,这是一段新闻播报。") # 接收初始提示参数,默认为简体中文
):
try:
# 将上传的音频文件保存到本地
file_location = f"temp/{file.filename}"
with open(file_location, "wb+") as file_object:
file_object.write(file.file.read())
# 使用Whisper模型进行转录,指定语言和初始提示
result = model.transcribe(file_location, language=language, initial_prompt=initial_prompt)
# 删除临时文件
os.remove(file_location)
# 返回转录的文本
return {"text": result["text"]}
except Exception as e:
raise HTTPException(status_code=500, detail=f"An error occurred during transcription: {str(e)}")
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
由于只开放家庭局域网访问,因此没有配置token鉴权。
《谜宅》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/781.html
轩辕传奇私服安装步骤详解及常见问题答疑:https://501h.com/fugu/16880.html
兄弟写的非常好 https://www.cscnn.com/
想想你的文章写的特别好https://www.ea55.com/
想想你的文章写的特别好https://www.237fa.com/