实时转写
已上线边说边看到文字出现,支持多种语言,自动检测。
实时转写
按音频秒数计费,每次预留 1 分钟。余额不足、长时间静音或到达时长上限时,会话会自动结束。
真实示例一段录制的实时会话
语言:泰语 · 这是该工具的真实运行结果,你自己的运行结果会替换它。
说话内容
转写
- สวัสดีค่ะ ยินดีต้อนรับสู่ร้านกาแฟของเรา วันนี้เรามีเค้กช็อกโกแลตตอบใหม่ๆ ลองชิมดูไหมคะ
实时转写 API
一个 WebSocket:发送麦克风音频,边说边收到文字,以及每句完成的话和它的语言。
https:/ / api.opennan.com/ v1/ realtime/ stt获取 API 密钥
在控制台创建密钥。它与试用区使用同一余额。
创建密钥发送第一个请求
与试用区发送的请求相同。把 OPENNAN_KEY 设为你的密钥。
const ws = new WebSocket("wss://api.opennan.com/v1/realtime/stt"); ws.binaryType = "arraybuffer"; ws.onopen = () => { ws.send(JSON.stringify({ type: "auth", ticket: session.ticket })); ws.send(JSON.stringify({ "type": "session.config", "language": "auto" })); }; mic.ondata = (pcm16) => ws.send(pcm16); // 16 kHz mono 16-bit PCM, <= 65536 bytes a frame ws.onmessage = (e) => { const msg = JSON.parse(e.data); if (msg.type === "transcript.partial") showDraft(msg.text); if (msg.type === "transcript.final") addLine(msg.sentence_id, msg.text, msg.language); if (msg.type === "session.end") console.log("ended:", msg.reason); }; stop.onclick = () => ws.send(JSON.stringify({ type: "session.end" }));读取事件
你说话时,服务器会发送 JSON 事件;语音以带格式说明的 base64 音频片段发送。
- session.started
- 会话已打开,附带价格和限制
- transcript.partial
- 你还在说话时的文字
- transcript.final
- 一句完成的话及其语言
- usage
- 目前的秒数和费用
- error
- 出现问题,附带代码和易懂的说明
- session.end
- 结束原因:你停止、余额、静音或时长上限
错误及解决方法
401缺少密钥或密钥错误
用 Authorization: Bearer 请求头发送控制台中的密钥。
402余额不足
在账单页面充值,然后重新发送同一请求。
400有值不被接受
查看 error.message,它会指出字段。请使用参数表中的值。
429请求过多
等几秒再试,每次遇到 429 都等得更久一些。
实时转写:常见问题
实时转写怎么收费?
$0.00846/分钟,按音频秒数计费。每次预留一分钟并随用随结;余额不足以支付下一分钟时,会话会平稳停止。
怎么调用?
打开到 WSS https://api.opennan.com/v1/realtime/stt 的 WebSocket。在浏览器中,请在 5 秒内把带密钥的 auth 消息作为第一条消息发送;在服务器上可以使用 Authorization 请求头。然后发送会话配置和 16 kHz 单声道 16 位 PCM 音频。密钥绝不放在 URL 中。
出错时会收费吗?
不会。失败的步骤不收费,并会用通俗的话说明原因。
可以用别人的声音吗?
不可以。你只能克隆自己的声音,并需要录下你朗读我们提供的同意句子。声音绝不会在账户之间共享。
我的 AI 智能体能用吗?
可以,通过 API。让它阅读 https://api.opennan.com/llms.txt 了解用法。



