FastGPT 调用本地Whisper模型进行语音转文字
import os
from fastapi import FastAPI
from transformers import WhisperProcessor, WhisperForConditionalGeneration
app = FastAPI()
# 加载本地的Whisper模型和处理器
model_dir = "path/to/whisper_model" # 替换为你的模型目录
processor = WhisperProcessor.from_pretrained(model_dir)
model = WhisperForConditionalGeneration.from_pretrained(model_dir).to("cuda" if torch.cuda.is_available() else "cpu")
@app.post("/transcribe")
async def transcribe(audio_file: UploadFile = File(...)):
# 保存上传的音频文件
file_path = os.path.join("path/to/save/audio", audio_file.filename)
with open(file_path, "wb") as f:
content = await audio_file.read()
f.write(content)
# 预处理音频文件以供模型使用
input_speech = processor.file_to_input_vector(file_path, padding=True, truncation=True)
# 使用模型进行转写
transcription = processor.post_process_text(model.generate(input_speech))
# 返回转写结果
return {"transcription": transcription}
这段代码展示了如何在FastAPI应用中接收音频文件,将其转换为模型可以理解的格式,并获取最终的转写文本。注意,这里假设你已经有了一个训练好的Whisper模型和处理器,并且它们已经保存在本地文件系统中。在实际部署时,你需要确保模型文件的路径是正确的,并且FastAPI服务器有足够的权限去读取这些文件。
评论已关闭