API 文档

所有接口以 Bearer 方式鉴权:在请求头加上 Authorization: Bearer sk-xxx

鉴权

每次请求都需要带上你的 API Key:

Authorization: Bearer sk-xxx

一句话识别(同步)

用于 60 秒以内的短音频,立即返回识别文本。

POST /v1/audio/transcriptions

# 上传文件
curl -X POST https://asr.szchuyue.cn/api/v1/audio/transcriptions \
  -H "Authorization: Bearer sk-xxx" \
  -F file=@hello.mp3 -F engine=16k_zh

# 或传 URL
curl -X POST https://asr.szchuyue.cn/api/v1/audio/transcriptions \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://.../a.mp3","engine":"16k_zh"}'

# 响应
{ "text": "识别结果", "engine": "16k_zh", "request_id": "..." }
参数必填说明
file / url二选一上传音频文件(<5MB),或公网可访问的音频 URL
engine可选识别引擎,默认 16k_zh,见下方语言列表
format可选音频格式(mp3/wav/m4a…),传 url 时建议指定,默认按扩展名推断
filter_dirty可选脏词过滤:0 不过滤(默认)、1 过滤、2 替换为 *
filter_modal可选语气词过滤:0 不过滤(默认)、1 部分、2 严格
filter_punc可选标点过滤:0 不过滤(默认)、1 过滤句末、2 过滤全部
convert_num_mode可选数字转换:0 中文数字、1 智能阿拉伯数字(默认)
hotword_id可选热词表 id,可提升专有名词识别准确率

录音文件识别(异步)

用于长音频。先提交任务拿到 task_id,再轮询结果。

# 1) 提交
POST /v1/audio/transcriptions/async
{ "url": "https://.../long.mp3", "engine": "16k_zh" }
=> { "task_id": "123456", "status": "processing" }

# 2) 查询
GET /v1/audio/transcriptions/async/123456
=> { "task_id": "123456", "status": "completed", "text": "..." }
# status: waiting | processing | completed | failed
参数必填说明
file / url二选一直传音频文件(≤30MB,会占网关带宽);或公网音频 URL(推荐大文件用,时长 ≤5 小时、≤1GB,不占网关带宽)
engine可选识别引擎,默认 16k_zh
callback_url可选识别完成后将结果 POST 到该地址(见下方回调说明)
res_text_format可选结果格式:0 纯文本(默认)、1 词级详情(无标点)、2 词级详情(含标点、语速)、3 按标点分段+词级详情;1/2/3 时结果额外返回 result_detail(词级时间戳)
channel_num可选声道数:1 单声道(默认);2 双声道(仅 8k 电话音频,通话双方各占一声道,推荐)
speaker_diarization可选说话人分离:0 关(默认)、1 开(需单声道且引擎支持)
speaker_number可选说话人数:0 自动(默认),或 1-10
filter_dirty可选脏词过滤:0 不过滤(默认)、1 过滤、2 替换为 *
filter_punc可选标点过滤:0 不过滤(默认)、1 过滤句末、2 过滤全部
convert_num_mode可选数字转换:0 中文数字、1 智能阿拉伯数字(默认)
hotword_id可选热词表 id

回调(免轮询):提交时带上 callback_url,识别完成后我们会把结果 POST 到你的地址,无需再轮询。

# 提交时指定回调地址
POST /v1/audio/transcriptions/async
{
  "url": "https://.../long.mp3",
  "engine": "16k_zh",
  "callback_url": "https://your.app/asr-result"
}

# 任务完成后,你的 callback_url 会收到 POST(application/json):
{
  "task_id": "123456",
  "status": "completed",        // completed | failed
  "text": "识别出的文本",
  "audio_duration": 12.5,        // 秒
  "result_detail": [ ... ]       // 仅提交时 res_text_format 为 1/2/3 时返回(词级时间戳)
}

用量查询

GET /v1/usage
=> { "calls": 12, "audio_seconds": 0 }

支持的语言 / 引擎

通过 engine 参数指定。大模型 / 多语种引擎建议配合录音文件识别使用。

通用 16k
  • 16k_zh中文普通话
  • 16k_zh_large中文(大模型·含方言)
  • 16k_zh_en中英文(大模型)
  • 16k_multi_lang多语种(大模型·15 种语言)
  • 16k_yue粤语
  • 16k_en英语
  • 16k_ja日语
  • 16k_ko韩语
  • 16k_vi越南语
  • 16k_ms马来语
  • 16k_id印尼语
  • 16k_fil菲律宾语
  • 16k_th泰语
  • 16k_pt葡萄牙语
  • 16k_tr土耳其语
  • 16k_ar阿拉伯语
  • 16k_es西班牙语
  • 16k_hi印地语
  • 16k_fr法语
  • 16k_de德语
电话 8k
  • 8k_zh中文(电话)
  • 8k_zh_large中文电话(大模型·含方言)
  • 8k_en英文(电话)

接入 AI 助手(MCP)

通过 MCP 把语音转文字接进 Claude Desktop / Claude Code / Cursor 等 AI 助手, 配置一次后,直接对它说「把这段音频转成文字」就行,不用写代码。 下面三步走,照做即可。

第一步:拿到 API Key

控制台注册登录 → 创建一个 API Key(形如 sk-xxxx),复制备用。新账号有免费体验额度。

第二步:接入你的 AI 助手

Claude Desktop:设置 → Developer → Edit Config,打开 claude_desktop_config.json,填入(把 key 换成你的):

{
  "mcpServers": {
    "fastasr": {
      "command": "npx",
      "args": ["-y", "fastasr-mcp"],
      "env": {
        "ASR_API_KEY": "sk-你的key",
        "ASR_BASE": "https://asr.szchuyue.cn/api"
      }
    }
  }
}

保存后重启 Claude Desktop

Claude Code:终端里一行命令即可:

claude mcp add fastasr \
  -e ASR_API_KEY=sk-你的key \
  -e ASR_BASE=https://asr.szchuyue.cn/api \
  -- npx -y fastasr-mcp

想所有项目都能用,加 -s user。新开一个会话后,输入 /mcp 看到 fastasr 为 connected 即接入成功。

Trae:设置 → 左侧 MCP → 点「+ 添加」进入市场 → 点市场页顶部的「手动配置」→ 粘贴上面那段相同的 JSON 并确认(MCP 是通用协议,配置格式一致)。Cursor、Windsurf 等其他客户端同理,在各自的 MCP 设置里粘同一段 JSON。

第三步:开始用

直接在对话里说要转什么,把文件的完整路径或 URL 给它,它会自动调用:

转写 /Users/你/Downloads/录音.mp3

把 ~/Desktop/会议.m4a 转成纯文字

把 ~/Downloads/采访.mp4 转成文字       # 视频,需本机装 ffmpeg

给 ~/Downloads/视频.mp4 生成 SRT 字幕   # 一步出字幕文件

识别这个音频 https://example.com/a.mp3

小技巧:把文件拖进终端会自动粘出完整路径;或在访达里选中文件, 右键按住 Option →「拷贝...为路径名称」。

提供的工具

  • transcribe —— 短音频(<60s)转文字,支持本地文件或 URL
  • transcribe_long —— 长音频/视频,异步自动轮询出结果;本地文件自动直传对象存储再识别(不限大小); 可传 plain_text: true 返回纯文本(默认保留 [开始,结束] 时间戳)
  • transcribe_to_subtitle —— 音视频一步生成字幕文件(SRT/VTT)并写入磁盘;format: "vtt" 切换格式,output_path 指定输出路径
  • list_engines —— 列出支持的语言/引擎

说明:转视频需本机装 ffmpeg(macOS:brew install ffmpeg), 会自动提取音频再上传;纯音频无需 ffmpeg。按识别时长计费,余额不足请到控制台充值。

接入方式二:Agent Skills(进阶)

Skills 是 AI 助手的「指令包」(一个 SKILL.md 文件 + 可选脚本),是 MCP 之外的另一种接入方式, 和 MCP 二选一即可。多数用户用上面的 MCP 就够了;Skills 适合两类人: ① 只想用 curl、不装 MCP server 的用户;② 想把「转写 + 自定义处理」做成固定流程的用户。

SKILL.md 是正在普及的开放标准,已被 ClaudeOpenAI Codex腾讯 CodeBuddy 等支持(Trae / 通义灵码等暂用各自的技能体系)。一份 skill 基本通用,只是放置目录不同:

  • Claude → ~/.claude/skills/<名字>/
  • OpenAI Codex → ~/.agents/skills/<名字>/
  • 腾讯 CodeBuddy → ~/.codebuddy/skills/<名字>/

放好对应文件、重启工具后,说「转写…」会自动触发。下面以 Claude 目录为例。

Skill 一:语音转写(asr-transcribe,纯 curl,无需 MCP)

仅适合音频文件(直传,不提取、不走对象存储)。视频 / 大文件请用上面的 MCP(自动 ffmpeg 提取 + 对象存储直传);直传文件有 30MB 上限。

  1. 控制台创建 API Key(sk-xxx)。
  2. 把上面下载的 SKILL.md 放到 ~/.claude/skills/asr-transcribe/SKILL.md
  3. 设置环境变量(可写进 ~/.zshrc):export ASR_API_KEY=sk-你的key
  4. 重启 Claude,说「转写 ~/Downloads/录音.mp3」即可。

Skill 二:生成字幕工作流(asr-subtitle,配合 MCP)

转写交给 fastasr MCP,自带脚本把时间戳转成 SRT/VTT。下载下面两个文件,分别放到~/.claude/skills/asr-subtitle/SKILL.md~/.claude/skills/asr-subtitle/scripts/to_subtitle.py

提示:只是想出字幕的话,直接用上面 MCP 的 transcribe_to_subtitle 工具一步到位、更省事; 本 skill 适合需要在转写后再做自定义处理的场景。