openai-whisper-asr-webservice接入dify

openai-whisper-asr-webservice提供的asr的api其实并不兼容openai的api,所以在dify中是不能直接添加到语音转文字的模型中,对比了下两个api的传参情况,其实只要改动一处,就能支持:

openai兼容的asr调用中formdata中音频文件是file=XXX这样的,而openai-whisper-asr-webservice提供的asr的api中formdata中音频文件是audio_file=XXX这样的。感觉使用openresty的lua简单处理一下改formdata中的信息转发到后端就可以搞定,折腾了半天没有进展 😦 只好先用nodejs做个express服务来转发下,效果是ok的。

javascript 复制代码
const express = require("express");
const app = express();
const multer = require("multer");
const uploader = multer({ storage: multer.memoryStorage() });
const FormData = require('form-data');
const fetch = require('node-fetch');
const asrurl="http://127.0.0.1:9000/asr?output=json"

app.post("/v1/audio/transcriptions", uploader.single("file"), (req, res)=> {
	let newForm = new FormData();
	newForm.append('audio_file', req.file.buffer,{ filename: req.file.originalname, contentType: req.file.mimetype });
	fetch(asrurl, { method: 'POST', body: newForm, headers: newForm.getHeaders() }).then(resp=>resp.json()).then(response=> res.json({"text":response.text}) ).catch(error=>{ res.status(500).send(error.message); });
});


var server=app.listen(9100,()=>{ console.log("openai whisper 进程启动 "); });

这样可以在dify中添加openai兼容模型,选择speech2text模型,模型名称随便填,API endpoint URL

http://ip:9100/v1

又更新了下代码:采用内存存储上传文件,减少写入磁盘文件和读取磁盘文件环节

相关推荐
后端AI实验室7 分钟前
等保三级整改,敏感数据加密,数十个系统——3个人用Cursor一周搞定了
java·ai
weixin_4492900127 分钟前
LLM多轮对话优化方法_上下文_指代消解_记忆
ai
lbb 小魔仙31 分钟前
Portainer 实战:可视化管理 Docker并实现外网访问
运维·docker·容器
小陈工37 分钟前
Docker容器化部署Python应用——从开发到生产的全流程
运维·开发语言·python·docker·云原生·容器·数据挖掘
灰阳阳1 小时前
Docker实践-阿里云上创建私有仓库
阿里云·docker·容器
智算菩萨1 小时前
深度剖析GPT - 5.3 - Codex:技术架构、性能表现与国内API接入全攻略
人工智能·gpt·ai·chatgpt·架构·ai编程·codex
红云梦1 小时前
用大模型生成结构化面试评估报告:Prompt工程实战
ai·面试·职场和发展·prompt
Agent产品评测局1 小时前
2026 年企业自动化路线图:如何通过 LLM+RPA 实现全流程闭环?深度解析智能体架构与落地路径
人工智能·ai·chatgpt·架构·自动化·rpa
zhenxin01221 小时前
2024最新版Node.js下载安装及环境配置教程【保姆级】
node.js
xcLeigh1 小时前
告别 Excel 繁琐操作!Metabase让数据可视化触手可及
mysql·docker·信息可视化·excel·数据可视化·metabase·cpolar