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

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

相关推荐
牛油果子哥q15 分钟前
生产级AI项目上线全流程:Docker容器化、服务编排、监控告警、日志收集、容灾降级、线上运维闭环
人工智能·ai
星辰徐哥17 分钟前
本地视频预览别只自己看:把Remotion动效项目发给客户远程验收
docker·ai·node.js·html·音视频·react·remotion
HYDtomako3 小时前
Agent checkpoint设计
ai·agent·checkpoint·claude code
ID34610744204 小时前
【课程设计】基于Spring Boot+Vue的校园共享无人机服务系统设计与实现-计算机毕设 附源码44219
javascript·vue.js·spring boot·python·node.js·php·课程设计
fb_123454 小时前
Docker入门-第3章-容器镜像深度解析
运维·docker·容器
七灵微4 小时前
【AI】代码实战- 基于时间序列的轴承检测1
人工智能·机器学习·ai·pandas·matplotlib
RSABLOCKCHAIN4 小时前
读懂AI-Agent项目Career-ops项目的底层原理
ai
十正5 小时前
把表变成模型够得着的句柄
人工智能·ai·agent
IT摆渡者5 小时前
基于 Docker 部署 Nextcloud 私有云盘(外挂 Windows 共享)项目实践
运维·docker·容器
长谷深风1116 小时前
支付审批的智能风险控制设计
大数据·人工智能·ai·大模型·支付·aiagent·hitl