自托管 OpenAI Whisper API 替代方案:FunASR 一行起兼容 /v1/audio/transcriptions 服务

OpenAI 的 /v1/audio/transcriptions(Whisper API)按分钟计费、要把音频上传到云端、还有速率限制。如果你只是想把音频转成文字,完全可以在自己机器上起一个接口完全一致的服务——已有代码只改一个 base_url 就能切过来。FunASR 自带的 funasr-server 就是干这个的。下面每段代码都实测过。

一行启动 OpenAI 兼容服务

pip install -U funasr
funasr-server --model sensevoice --device cuda     # 监听 localhost:8000

启动后就有了和 OpenAI 一致的两个端点:POST /v1/audio/transcriptionsGET /v1/models

用 OpenAI 官方 SDK 直接调(只改 base_url)

你原来调 OpenAI 的代码,几乎一字不改,只把 base_url 指到本地服务、api_key 随便填:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")

with open("audio.wav", "rb") as f:
    r = client.audio.transcriptions.create(model="sensevoice", file=f)
print(r.text)
# -> 欢迎大家来体验达摩院推出的语音识别模型

列出可用模型也和 OpenAI 一样:

print([m.id for m in client.models.list().data])
# -> ['fun-asr-nano', 'sensevoice', 'paraformer']

或者用 curl / 任意 HTTP 客户端

curl http://localhost:8000/v1/audio/transcriptions \
  -F "file=@audio.wav" \
  -F "model=sensevoice"
# -> {"text": "欢迎大家来体验达摩院推出的语音识别模型"}

因为接口是 OpenAI 兼容的,Node 的 openai 包、LangChain、各种现成 SDK 都能直接连。

对比:OpenAI Whisper API vs FunASR 自托管

OpenAI Whisper APIFunASR 自托管
费用$0.006 / 分钟免费(自己的机器)
数据隐私音频上传到云端不出本地
速率限制
中文准确率一般更高(实测对比)
速度SenseVoice 非自回归,远快于 Whisper
接口/v1/audio/transcriptions完全一致

选哪个模型

请求里把 model= 换成对应名字即可,无需重启服务。

从 OpenAI 迁移要改什么

FunASR 是通义实验室开源的工业级语音识别工具包。

在 GitHub 上 Star FunASR ★