CoolFace
Apppublic

Carl19/sfwllldoubaolllfew

sourceHugging Facemitupdated 7mo agoView on Hugging Face
0likes
App README

Doubao ASR API

OpenAI 兼容的语音转文字 API,基于豆包输入法 ASR 服务。

快速开始

API 端点

端点方法说明
/v1/audio/transcriptionsPOST语音转文字(OpenAI 兼容)
/healthGET健康检查
/v1/modelsGET模型列表
/docsGETAPI 文档(需开启 DEBUG 模式)

使用方法

基本请求

bash
curl -X POST "https://你的域名/v1/audio/transcriptions" \
  -F "file=@audio.wav" \
  -F "model=doubao-asr"

带 API 密钥的请求

如果设置了 DOUBAO_ASR_API_KEY 环境变量:

bash
curl -X POST "https://你的域名/v1/audio/transcriptions" \
  -H "Authorization: Bearer 你的API密钥" \
  -F "file=@audio.wav" \
  -F "model=doubao-asr"

请求参数

参数类型必填说明
filefile✅音频文件(支持 wav, mp3, m4a 等常见格式)
modelstring❌模型名称,填 doubao-asr(实际上填任何值都可以)
response_formatstring❌响应格式:json(默认)、text、srt、vtt、verbose_json
languagestring❌语言代码,如 zh(目前仅支持中文)
promptstring❌提示词(暂不支持,保留兼容性)
temperaturefloat❌温度参数(暂不支持,保留兼容性)

响应格式

JSON 格式(默认)

json
{
  "text": "识别出的文字内容"
}

verbose_json 格式

json
{
  "task": "transcribe",
  "language": "zh",
  "duration": 0.0,
  "text": "识别出的文字内容"
}

text 格式

识别出的文字内容

srt 格式

1
00:00:00,000 --> 00:00:00,000
识别出的文字内容

vtt 格式

WEBVTT

1
00:00:00.000 --> 00:00:00.000
识别出的文字内容

Python 示例

使用 requests

python
import requests

url = "https://你的域名/v1/audio/transcriptions"
headers = {
    "Authorization": "Bearer 你的API密钥"  # 如果设置了密钥
}
files = {
    "file": open("audio.wav", "rb")
}
data = {
    "model": "doubao-asr"
}

response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
# {"text": "识别出的文字内容"}

使用 OpenAI SDK

python
from openai import OpenAI

client = OpenAI(
    api_key="你的API密钥",  # 如果设置了密钥,否则填任意值
    base_url="https://你的域名/v1"
)

audio_file = open("audio.wav", "rb")
transcript = client.audio.transcriptions.create(
    model="doubao-asr",
    file=audio_file
)
print(transcript.text)

JavaScript 示例

javascript
const formData = new FormData();
formData.append('file', audioFile);
formData.append('model', 'doubao-asr');

const response = await fetch('https://你的域名/v1/audio/transcriptions', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer 你的API密钥'  // 如果设置了密钥
  },
  body: formData
});

const result = await response.json();
console.log(result.text);

环境变量配置

变量默认值说明
DOUBAO_ASR_HOST0.0.0.0监听地址
DOUBAO_ASR_PORT7860监听端口
DOUBAO_ASR_DEBUGfalse调试模式(启用 /docs 页面)
DOUBAO_ASR_LOG_LEVELINFO日志级别
DOUBAO_ASR_API_KEY—API 密钥(可选),不设置时允许所有请求
DOUBAO_ASR_CREDENTIAL_PATH./credentials.json凭据文件路径

关于凭据

  • —首次启动时,服务会自动注册虚拟设备并获取凭据
  • —凭据会自动缓存到 credentials.json 文件
  • —Token 会自动刷新,无需手动维护
  • —Space 重建后,凭据会丢失,需要重新注册(自动完成)

注意事项

  1. 1.这是非官方 API:基于逆向分析豆包输入法实现,可能随时失效
  2. 2.仅支持中文:目前只支持中文语音识别
  3. 3.免费层限制:Hugging Face 免费 Space 会休眠,首次请求可能较慢
  4. 4.建议设置 API 密钥:防止被滥用

错误处理

HTTP 状态码说明
200成功
400请求错误(如空音频文件)
401未授权(API 密钥错误或缺失)
500服务器内部错误

错误响应格式:

json
{
  "error": {
    "message": "错误描述"
  }
}