同声传译Beta
通过 WebSocket 连接实现实时音频流翻译,毫秒级低延迟,适用于在线会议、直播同传等场景。
⚠️ Beta 功能
同声传译目前处于 Beta 阶段,接口可能发生变化。
连接端点
Endpoint
WSSwss://api.itranslator.cc/v1/realtime/translate
查询参数: ?token={access_token}&source_lang={lang}&target_lang={lang}
认证
Authentication
通过查询参数传递 Bearer Token。
WebSocket 协议
WebSocket Protocol
连接参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | required | Access Token |
| source_lang | string | required | 源语言代码 |
| target_lang | string | required | 目标语言代码 |
| sample_rate | integer | optional | 采样率(Hz),默认 16000 |
消息格式
客户端 → 服务端:发送二进制音频数据(PCM 16-bit,小端)
服务端 → 客户端:返回 JSON 消息
{
"type": "translation",
"is_final": false,
"source_text": "我们今天要讨论的是...",
"translated_text": "What we're going to discuss today is...",
"timestamp": 12.45
}
{
"type": "translation",
"is_final": true,
"source_text": "我们今天要讨论的是人工智能在医疗领域的应用。",
"translated_text": "What we're going to discuss today is the application of AI in the medical field.",
"timestamp": 15.82
}请求示例
Request Examples
const ws = new WebSocket(
`wss://api.itranslator.cc/v1/realtime/translate?token=${token}&source_lang=zh&target_lang=en`
);
ws.onopen = () => {
// Start sending audio chunks
navigator.mediaDevices.getUserMedia({ audio: true })
.then(stream => {
const ctx = new AudioContext({ sampleRate: 16000 });
const source = ctx.createMediaStreamSource(stream);
const processor = ctx.createScriptProcessor(4096, 1, 1);
processor.onaudioprocess = e => {
ws.send(e.inputBuffer.getChannelData(0).buffer);
};
source.connect(processor);
processor.connect(ctx.destination);
});
};
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.is_final) {
console.log(`Final: ${msg.translated_text}`);
} else {
console.log(`Partial: ${msg.translated_text}`);
}
};限制说明
Limitations
| 项目 | 限制 |
|---|---|
| 单连接最长时长 | 60 分钟 |
| 音频采样率 | 8000 ~ 48000 Hz |
| 并发连接数 | 企业版 50,基础版 5 |
| 平均延迟 | < 500ms |
错误码
Error Codes
| HTTP Code | 错误码 | 说明 |
|---|---|---|
| 200 | 0 | 成功 |
| 400 | 1001 | 参数错误,请检查必填参数和参数格式 |
| 400 | 1002 | 不支持的语言代码 |
| 401 | 2001 | 认证失败,Token 无效或已过期 |
| 403 | 2003 | 无权限访问该资源 |
| 413 | 3001 | 请求文本超出长度限制(最大 50,000 字符) |
| 429 | 4001 | 请求频率超限,请稍后重试 |
| 500 | 5001 | 服务器内部错误,请重试或联系技术支持 |
使用说明
- 所有 API 请求均使用 HTTPS,建议开启 HTTP Keep-Alive 以提高性能。
- 请勿在客户端代码中暴露 Access Token,建议通过后端代理调用。
- 推荐设置合理的超时时间(30 秒),并实现指数退避重试策略。
iTranslator