产品文档

语音识别

更新于 2026-09-04

蒙古语/中文语音转文字,支持音频文件转写与 WebSocket 实时流式识别。

能力与场景

语音识别提供音频文件转写与实时流式识别两种形态,对蒙古语多口音场景做过专项训练。典型场景:字幕生成、会议记录、语音输入法、呼叫中心质检。

端点列表

方法路径说明
POST/v1/asr/transcriptions音频文件转写(multipart 上传整段音频)
WSS/v1/asr/realtime实时流式识别(WebSocket,连续送入音频帧)

每个端点的请求参数、响应结构与可运行代码示例见本页下方「API 参考」(随接口定义自动生成,始终与线上一致)。

调用要点

  • 文件转写适合已录制完成的音频;实时识别适合边说边出字的交互场景。
  • 实时接口为原生 WebSocket:握手后先发 start 控制帧,再连续发送 16kHz / 16-bit / 单声道 PCM 音频帧,服务端持续返回中间结果与分句最终结果;完整帧协议与可运行示例见本页下方「API 参考」。
  • 文件转写的音频格式、大小与时长上限以 API 参考为准。
  • 按音频**时长(秒)**计费,实时识别按会话累计的音频时长计。

支持语种

  • 文件转写与实时流式(WebSocket)共用同一语种列表。
  • 传统蒙古文与西里尔蒙古文在语音上是同一种语言,mw / xle_mw 的区别只在识别结果的书写系统。

音频语言(参数 language):

代码语种说明
xle_mw西里尔蒙古文默认值;蒙古国通用的西里尔字母书写
mw传统蒙古文与西里尔蒙古文语音相同,差别只在识别结果的书写系统
zh中文简体中文
en英语
es西班牙语
fr法语
de德语
ja日语
ko韩语
ru俄语
pt葡萄牙语
ar阿拉伯语
hi印地语
id印尼语
yue粤语繁体书写

完整代码表与各产品对照见「语种与语言代码」。

计费

  • 计费单位:秒
  • 每月免费额度于月初重置,优先于余额抵扣;超出部分按单价从智能云余额扣费。
  • 仅对成功的调用计费;失败调用不扣费。
  • 实时单价与免费额度见本页下方「当前价格」(后台调价即时生效),总规则见「计费与免费额度」。

当前价格

以下为实时生效价,与定价页同源;调价后此处立即同步。仅对成功调用计费,免费额度优先抵扣。

计费单位单价每月免费额度
按秒计费¥0.01 / 秒360 秒 / 月

API 参考

本产品共 2 个接口,以下内容随接口定义自动生成。 需要跨产品查找接口时可前往接口索引

音频文件转写

POST/v1/asr/transcriptions

整段音频文件转文字(非实时)。支持 wav/mp3/m4a/aac/flac/ogg/opus/webm 等常见格式(不支持的格式服务端自动转码)。两种投递方式:multipart/form-data 上传 file 字段,或 application/json 提交 audioUrl 由服务端下载(超时 30 秒)。音频上限 100MB。按有效语音秒数计费。

请求参数application/json

参数类型说明
file可选
file音频文件(multipart 方式,与 audioUrl 二选一)
audioUrl可选
string音频公网 URL(JSON 方式,与 file 二选一)
示例:https://example.com/meeting.mp3
language可选
string音频语言(默认 xle_mw=西里尔蒙古文)
示例:xle_mw
diarization可选
boolean是否开启说话人分离
示例:false

响应示例200 · application/json

200 响应
{
  "text": "Сайн байна уу Би туслах байна",
  "segments": [
    {
      "start": 0.4,
      "end": 3.2,
      "text": "Сайн байна уу",
      "speaker": "说话人1"
    }
  ],
  "durationSeconds": 63
}

代码示例

curl -X POST "https://cloud.heimori.cn/v1/asr/transcriptions" \
  -H "Authorization: Bearer sk-heimori-..." \
  -F "file=@example.wav" \
  -F "audioUrl=https://example.com/meeting.mp3" \
  -F "language=xle_mw" \
  -F "diarization=false"

实时语音识别(WebSocket 流式)

WSSwss://cloud.heimori.cn/v1/asr/realtime

边说边出字的流式识别:客户端持续推送 PCM 音频帧,服务端持续返回中间结果与分句最终结果。协议为文本 JSON 控制帧 + 二进制音频帧,基址 wss://cloud.heimori.cn

鉴权:握手时携带 Authorization: Bearer sk-heimori-... 请求头; 浏览器原生 WebSocket 不能自定义请求头,可改用查询参数 ?key=sk-heimori-...(注意不要把密钥暴露在前端页面里,建议由你的服务端中转)。

音频格式:二进制帧为 16kHz / 16-bit / 单声道 PCM(小端), 单帧不超过 128KB 且字节数为偶数;建议每 100–200ms 发送一帧。

帧协议

方向说明
C→S{"type":"start","language":"xle_mw","sampleRate":16000,"format":"pcm"}开始会话;language 见下方取值,sampleRate / format 可省略(只支持 16000 / pcm)
S→C{"type":"started","requestId":"..."}会话就绪,可以开始发音频;requestId 用于对账与排障
C→S二进制 PCM 帧持续发送音频
S→C{"type":"result","text":"...","isFinal":false}中间结果(会被后续结果覆盖)
S→C{"type":"result","text":"...","isFinal":true}一个完整分句的最终结果
C→S{"type":"end"}音频发送完毕,等待剩余结果
S→C{"type":"done","durationSeconds":12.4}会话结束并给出计费时长,随后服务端以 1000 关闭连接
S→C{"type":"error","code":"...","message":"..."}任意阶段的错误,code 与 HTTP 接口错误码一致

language 取值xle_mw / mw / zh / en / es / fr / de / ja / ko / ru / pt / ar / hi / id / yue(默认 xle_mw),含义见「语种与语言代码」。

连接约束

  • 建立连接后 30 秒内必须发送 start,否则以 invalid_request 关闭;
  • 连续 120 秒无任何消息视为空闲,服务端主动关闭;
  • 单连接最长 60 分钟音频;
  • 每条连接占用一个并发席位(与密钥的并发上限共享)。

计费:按服务端实际接收的音频时长计秒(不足 1 秒进 1 秒),连接结束时一次性结算;上游识别失败的连接不扣费。

握手参数

参数类型说明
keyquery可选
stringAPI Key(仅当客户端无法设置 Authorization 请求头时使用,二选一)
示例:sk-heimori-...

代码示例

# 用 wscat 手工调试(npm install -g wscat);二进制音频帧无法在终端手敲,
# 这里只演示握手与控制帧,完整示例见 Python / JavaScript 标签
wscat -c "wss://cloud.heimori.cn/v1/asr/realtime" \
  -H "Authorization: Bearer sk-heimori-..."
> {"type":"start","language":"xle_mw"}
< {"type":"started","requestId":"..."}
> {"type":"end"}
< {"type":"done","durationSeconds":0}