点「按下说话」开始,再点一次结束。灰字 = 实时(第①遍),黑字 = 句尾修正后(第②遍)。
需要管理员钥匙。录音保留 3 天后自动删除。在「正确文本」里写下实际说的话并保存,自动计算错字率(按字,忽略标点与空白),汇总成正确率。
| 时间 / 调用方 | 录音 | 识别结果 | 正确文本 |
|---|
鉴权(一个调用方一把钥匙):服务端直连用请求头 Authorization: Bearer ak_…;浏览器不能持有钥匙,由你的后端先换一次性令牌,前端用 ?token= 连接(5 分钟内有效、只能用一次)。
# 1) 后端换令牌(sub 填你的终端用户标识,只用于日志与录音归属)
curl -X POST https://asr.alpha.mytongche.com/v1/token \
-H "Authorization: Bearer ak_…" -d '{"sub":"chat:alpha:u123"}'
# → {"code":0,"data":{"token":"…","expires_in":300,"ws_url":"wss://asr.alpha.mytongche.com/v1/stream"}}
# 2) 浏览器连接 wss://asr.alpha.mytongche.com/v1/stream?token=…
# 首帧 JSON:{"mode":"2pass","chunk_size":[5,10,5],"chunk_interval":10,"wav_name":"x","is_speaking":true,"itn":true}
# 之后每 60ms 发一包 16kHz/16bit/单声道 PCM(1920 字节,二进制帧)
# 结束发 {"is_speaking":false},收到 is_final=true 后关闭
# 3) 收到的消息:
# {"mode":"2pass-online","text":"增量文字"} —— 第①遍,追加显示(灰)
# {"mode":"2pass-offline","text":"整句修正结果"} —— 第②遍,替换自上次修正以来的灰字(黑)
# {"error":{"code":4401|4429|4408|4502,"message":"…"}} —— 鉴权失败 / 繁忙 / 超时长 / 引擎不可用
限制:每把钥匙默认同时 2 路、全局 4 路;单次最长 5 分钟;20 秒无数据自动断开。健康检查:GET /healthz。