当前位置: 首页 > news >正文

【尝试】本地部署openai-whisper,通过 http请求识别

安装whisper的教程,已在

https://blog.csdn.net/qq_23938507/article/details/149394418

https://blog.csdn.net/qq_23938507/article/details/149326290

中说明。

1、创建whisperDemo1.py

from fastapi import FastAPI, UploadFile, File
import whisper
import osapp = FastAPI()# 加载Whisper模型
model = whisper.load_model("medium")  # 可替换为 small/medium/large@app.post("/transcribe/")
async def transcribe_audio(file: UploadFile = File(...)):try:# 临时保存上传的文件[7](@ref)temp_path = f"temp_{file.filename}"with open(temp_path, "wb") as f:f.write(await file.read())# 使用Whisper转录[7](@ref)result = model.transcribe(temp_path)# 删除临时文件os.remove(temp_path)return {"text": result["text"]}except Exception as e:return {"error": str(e)}

2、创建request001.py

import requestsdef upload_file(file_path, server_url):try:# 以二进制模式打开文件并上传[8](@ref)[9](@ref)with open(file_path, 'rb') as f:files = {'file': f}response = requests.post(server_url, files=files, timeout=600)# 检查响应状态码[9](@ref)if response.status_code == 200:try:# 尝试解析JSON响应[3](@ref)result = response.json()print("上传成功,转录结果:", result['text'])except ValueError:print("服务器返回非JSON响应:", response.text)else:print(f"上传失败,状态码:{response.status_code}\n响应内容:{response.text}")except FileNotFoundError:print(f"错误:文件 {file_path} 不存在")except requests.exceptions.RequestException as e:print(f"网络请求失败:{e}")# 使用示例
if __name__ == "__main__":upload_file(file_path="001.mp3",server_url=" http://127.0.0.1:8000/transcribe/")

3、运行whisperDemo1

在终端输入:

uvicorn whisperDemo1:app --host 0.0.0.0 --port 8000

可以通过pip安装uvicorn、fastapi

可以验证服务是否 有开启成功

启动后,在浏览器输入:

127.0.0.1:8000/docs

http://www.lryc.cn/news/590425.html

相关文章:

  • C++-linux系统编程 11.常见问题与答案
  • 创建SprngBoot项目的四种方式
  • 降本增效利器:汽车制造中EtherCAT转PROFIBUS DP网关应用探析
  • 快速开发汽车充电桩的屏幕驱动与语音提示方案
  • 使用 SeaTunnel 建立从 MySQL 到 Databend 的数据同步管道
  • Mysql系列--1、库的相关操作
  • 在 IntelliJ IDEA 中添加框架支持的解决方案(没有出现Add Framework Support)
  • AI学习笔记三十一:YOLOv8 C++编译测试(OpenVINO)
  • 使用Telegraf从工业物联网设备收集数据的完整指南
  • Beautiful Soup(BS4)
  • ABP VNext + EF Core 二级缓存:提升查询性能
  • AI炒作,AGI或在2080年之前也无法实现,通用人工智能AGI面临幻灭
  • 【RTSP从零实践】13、TCP传输AAC格式RTP包(RTP_over_TCP)的RTSP服务器(附带源码)
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | AutoTextEffect(自动打字机)
  • 使用Whistle自定义接口返回内容:Mock流式JSON数据全解析
  • SQL性能分析
  • C# --- 单例类错误初始化 + 没有释放资源导致线程泄漏
  • 【Linux】如何使用nano创建并编辑一个文件
  • 动态规划题解_打家劫舍【LeetCode】
  • 编译原理第四到五章(知识点学习/期末复习/笔试/面试)
  • 部分排序算法的Java模拟实现(复习向,非0基础)
  • AWS ML Specialist 考试备考指南
  • 【Qt】麒麟系统安装套件
  • uniapp写好的弹窗组件
  • OWASP Top 10 攻击场景实战
  • 在 CentOS 8 上彻底卸载 Kubernetes(k8s)
  • 01 启动流程实例
  • ICMR-2025 | 杭电多智能体协作具身导航框架!MMCNav:基于MLLM的多智能体协作户外视觉语言导航
  • 钱包核心标准 BIP32、BIP39、BIP44:从助记词到多链钱包的底层逻辑
  • STM32F4踩坑小记——使用HAL库函数进入HardFault