你說:
https://linux.do/t/topic/1093418?u=joegodwanggod 運用你的搜索能力解決它的問題。
我看了你贴的帖子(“求一个开源 stt 网关项目”):对方想要像 one-api/new-api 之于 LLM那样,给多家语音转文字(STT)厂商(豆包语音、Qwen3-ASR、Sonix/ Soniox、ElevenLabs 等)统一一套调用接口。这个需求可以用下面几种开源方案直冲:
LiteLLM 是一个开源的 OpenAI-兼容网关,原生就提供 /v1/audio/transcriptions、/v1/audio/speech 等语音端点,并且能在多家服务之间做负载均衡、fallback,统一鉴权与日志,非常像 one-api 的定位。它已支持 OpenAI/Azure/Deepgram/ElevenLabs 等语音提供方,并保持 OpenAI 接口风格,迁移成本低。docs.litellm.ai+3docs.litellm.ai+3docs.litellm.ai+3
10 行就能起一个 STT 网关(示例 config.yaml):
yaml# 统一走 OpenAI 风格 /v1/audio/transcriptions
general_settings:
master_key: sk-test-123
model_list:
- model_name: whisper-openai
litellm_params:
model: openai/whisper-1
api_key: ${OPENAI_API_KEY}
model_info: { mode: audio_transcription }
- model_name: deepgram-stt
litellm_params:
model: deepgram/whisper # 走 Deepgram /listen
api_key: ${DEEPGRAM_API_KEY}
model_info: { mode: audio_transcription }
- model_name: elevenlabs-stt
litellm_params:
model: elevenlabs-transcription
api_key: ${ELEVENLABS_API_KEY}
model_info: { mode: audio_transcription }
启动:
bashexport OPENAI_API_KEY=...
export DEEPGRAM_API_KEY=...
export ELEVENLABS_API_KEY=...
litellm --config ./config.yaml # 默认监听 http://0.0.0.0:8000
调用(保持 OpenAI 样式):
bashcurl 'http://localhost:8000/v1/audio/transcriptions' \
-H 'Authorization: Bearer sk-test-123' \
-F 'file=@demo.mp3' \
-F 'model=deepgram-stt'
LiteLLM 的语音转写端点与受支持提供商列表、fallback/负载均衡配置见官方文档。docs.litellm.ai
Deepgram、ElevenLabs 的接入示例与说明分别在对应页面。docs.litellm.ai+1
关于你点名的厂商:
ElevenLabs:LiteLLM 已提供 STT(转写)示例与 OpenAI-兼容调用。docs.litellm.ai
Deepgram:LiteLLM 走其
/listen端点,支持文件与流式能力对接(LiteLLM 端以表单上传为主,流式可直连 Deepgram)。docs.litellm.aiQwen3-ASR(阿里):阿里云文档确认提供 Qwen3-ASR 模型(HTTP/SDK、含流式/文件识别),但非 OpenAI-兼容;可在 LiteLLM 里用“自定义 Provider/兼容适配”方式挂载,或在网关前加一个极薄的 FastAPI 适配层,把
/v1/audio/transcriptions转发到阿里接口。help.aliyun.com豆包语音(火山引擎):同样有完善的 ASR API(流式/录音文件/极速版),做法与 Qwen3-ASR 类似走自定义适配。volcengine.com+1
Sonix / Soniox:两者都有 API(Sonix 侧重异步文件转写;Soniox 同时有流式 WebSocket)。LiteLLM未内置时,可按“自定义 Provider”方式接。Sonix+1
这是一个开源多提供商 STT 网关(Apache-2.0),面向 Deepgram、AssemblyAI、Amazon Transcribe 等,提供统一的 /v1/transcript API,并可串接说话人分离/情感/摘要等 NLP 处理,适合批处理转写与多任务流水线。GitHub
一键本地起服务(Node/Serverless),配置多家 API Key 后即可用 provider: deepgram|assemblyai|aws 切换。GitHub
如果你偏好纯开源引擎(Vosk/Kaldi/DeepSpeech…)且要实时流式,SEPIA 的 STT Server 提供标准化 WebSocket 接口,适合离线/边缘部署;可在你的业务网关里把外部统一成 OpenAI 形态,再后接 SEPIA。GitHub
VoiceKit(C++):统一 STT/TTS 的流式库,走高性能 C++ 路线;项目较新、星数不多,但理念契合“网关聚合”。GitHub
openai-proxy / openedai-whisper:若你只想把 OpenAI /v1/audio/transcriptions 透明代理到本地 Whisper/Whisper.cpp 或单一厂商,可用 HAProxy 或轻量 FastAPI 实现;胜在简单,但不是多提供商聚合。GitHub+1
如果你要“像 one-api 一样”的 开源 STT 网关,建议直接用 LiteLLM 起一个 OpenAI-兼容的语音网关:
1)原生支持/v1/audio/transcriptions,能把 OpenAI / Azure / Deepgram / ElevenLabs 等统一到一套接口,还支持负载均衡与失败回退;
2)Qwen3-ASR 与 豆包语音可通过 LiteLLM 的自定义 Provider或前置一个极薄的适配层接入;
3)如果你侧重批量转写 + NLP 后处理,也可以上 ExemplaryAI/ai-engine;
4)偏好离线/自托管开源引擎 + 实时流式,用 SEPIA STT Server。
(文档:LiteLLM 语音端点与 Provider、Deepgram/ElevenLabs 接入示例、Qwen3-ASR 与豆包语音官方 ASR 文档)volcengine.com+4docs.litellm.ai+4docs.litellm.ai+4
思路:写一个不到百行的 FastAPI 路由 /v1/audio/transcriptions,把 multipart 的 file 转成厂商 API 需要的 JSON/表单,然后返回 { "text": "..." } 即可;再把这个路由注册为 LiteLLM 的 custom provider,就统一进你的网关(LiteLLM 的“自定义提供商”说明里有参考做法)。GitHub
需要我把 LiteLLM 的最小可用仓库 + Docker Compose(含 Deepgram/ElevenLabs 示例、以及一个 Qwen3-ASR 适配器)打包成一份示例给你吗?我可以直接给出配置文件与脚本,拿走即用。