在线翻译链路
TmkTranslationSDK 的在线语音翻译支持两种处理方式:端到端翻译、三段式翻译。
选择翻译链路时,主要考虑实时性、翻译风格和结果稳定性。三段式翻译进一步分为 FAST 和 ACCURATE 两种策略。两种策略共用相同的 ASR 和语义断句逻辑,区别只在翻译阶段。
处理流程
其中,这里的 “PARTIAL/STABLE” 指的是可以存在中间态翻译结果,是由 翻译下发模式 参数控制(见下方描述)。
流程图展示包含 TTS 的语音到语音场景。语音到文本场景在输出翻译结果后结束,不执行 TTS。
一般地,创建在线翻译房间时,先通过识别引擎参数设定 END_TO_END 或 THREE_STAGE。选择三段式翻译后,再通过翻译引擎参数设定 FAST 或 ACCURATE 策略,进一步地在 FAST 下也可以设置翻译结果下发方式:PARTIAL/STABLE。
语音翻译方式对比
| 对比项 | 端到端翻译 | 三段式翻译 |
|---|---|---|
| 处理链路 | 识别和翻译在端到端服务内完成 | ASR → 语义断句 → MT 或 LLM → TTS |
| 翻译特点 | 结合语音上下文,结果由端到端服务控制 | 可根据 FAST 或 ACCURATE 策略侧重响应速度或表达质量,ACCURATE 响应相对较慢,但翻译更准确 |
| 语义断句 | 由端到端服务决定 | 时空壶语义断句服务决定 |
| 翻译首响延迟 | 较低 | FAST+PARTIAL相较端到端低;ACCURATE 相对较高 |
| 翻译下发 | 服务不生成识别和翻译中间态,使用端到端服务标记的稳定结果 | FAST模式下,可以设置 PARTIAL 来触发翻译中间态;ACCURATE 只下发识别中间态;对断句后的稳定识别结果执行 MT 或 LLM |
| 适用场景 | 优先考虑实时对话和低延迟 | 根据策略优先考虑稳定性、响应速度或表达质量 |
表中的延迟和翻译特点是相对差异。实际效果还会受到语言方向、网络状态、音频质量和服务端部署策略影响。
参数对应关系
| 处理方式 | Android 识别引擎 | iOS 识别引擎 | 翻译引擎配置 |
|---|---|---|---|
| 端到端翻译 | END_TO_END | .endToEnd | 不参与该链路 |
| 三段式翻译 | THREE_STAGE | .threeStage | 按下表选择策略 |
端到端翻译支持的语种
端到端翻译支持中文、英文、日语、印尼语、西班牙语、葡萄牙语、德语和法语。语种组合要求至少一侧为中文或英文,具体支持以下13个双向语言对组合:
| 一侧语种 | 另一侧语种 |
|---|---|
| 中文 | 英文 |
| 中文 | 日语 |
| 中文 | 印尼语 |
| 中文 | 西班牙语 |
| 中文 | 葡萄牙语 |
| 中文 | 德语 |
| 中文 | 法语 |
| 英文 | 日语 |
| 英文 | 印尼语 |
| 英文 | 西班牙语 |
| 英文 | 葡萄牙语 |
| 英文 | 德语 |
| 英文 | 法语 |
如果当前语种组合不在上表中,链路会自动降级为三段式翻译,并使用已设置的 FAST 或 ACCURATE 策略。
端到端链路本身不使用独立的翻译引擎配置。如果当前语种组合支持端到端翻译,选择 END_TO_END 或 .endToEnd 后,FAST、ACCURATE、.fast 和 .accurate 不参与端到端链路;如果链路降级为三段式翻译,则使用已设置的翻译策略。
翻译策略对比
此参数只在 三段式翻译 下生效
| 对比项 | FAST | ACCURATE |
|---|---|---|
| 翻译阶段 | MT 翻译 | LLM 翻译(MT 翻译兜底) |
| 相对延迟 | 较低且稳定 | 相对较高 |
| 翻译特点 | 响应快、结果稳定,更偏直接翻译 | 表达更自然,可利用上下文和纠错能力 |
| 适用场景 | 优先考虑稳定性、响应速度 | 优先考虑表达自然度和上下文质量 |
参数对应关系
| 策略 | Android 翻译引擎 | iOS 翻译引擎 | 翻译服务 |
|---|---|---|---|
FAST | FAST | .fast | MT |
ACCURATE | ACCURATE | .accurate | LLM -> MT |
AUTOMATIC | AUTOMATIC | .automatic | 默认与FAST一致,MT |
LLM -> MT 指的是优先使用 LLM,LLM 失败则用 MT 兜底。
翻译下发模式
翻译下发模式决定是否向客户端下发翻译中间态,在三段式翻译中对首翻延迟的影响明显,在端到端翻译对首翻延迟不明显。
| 下发模式 | 行为 | 适用场景 |
|---|---|---|
PARTIAL / .partial | 允许下发翻译中间结果;实际是否产生取决于翻译链路和当前输入 | 希望尽快看到翻译结果 |
STABLE / .stable | 只下发稳定结果,等待时间相对更长 | 希望减少界面内容变化 |
DEFAULT / .default | 默认采取STABLE / .stable | / |
翻译下发模式只控制翻译中间态,不控制识别结果。即使使用 STABLE,客户端仍可能收到识别中间态结果。
端到端模式下,稳定状态由端到端服务定义。平台可以不下发非稳定结果,但不会重新判断或修改端到端服务内部的稳定状态。
识别与翻译结果状态
识别和翻译结果使用以下两种流式状态:
isFinal=false:当前中间结果,后续可能继续增长或被修正。isFinal=true:当前识别结果或翻译分段已经稳定,可以作为最终结果处理。
下表按处理方式、翻译策略和翻译下发模式展示常用组合。“可能”表示链路允许下发中间态,但不保证每句话都会产生中间态,“是”表示会下发,“否”表示不会下发。
| 处理方式 | 翻译策略 | 翻译下发模式 | 识别中间态 | 识别最终态 | 翻译中间态 | 翻译最终态 | 处理说明 |
|---|---|---|---|---|---|---|---|
| 端到端翻译 | 不适用 | 不适用 | 否 | 是 | 否 | 是 | 端到端服务直接产生识别和翻译结果,中间态输出频率由端到端服务控制 |
| 端到端翻译 | 不适用 | 不适用 | 否 | 是 | 否 | 是 | 端到端服务直接产生识别和翻译结果,最终态输出频率由端到端服务控制 |
| 三段式翻译 | FAST | PARTIAL | 是 | 是 | 是 | 是 | 当前文本达到中间态翻译阈值并形成有效内容后才请求 MT,不会逐条翻译每个识别中间态 |
| 三段式翻译 | FAST | STABLE | 是 | 是 | 否 | 是 | 只有语义断句后的稳定分段才执行 MT |
| 三段式翻译 | ACCURATE | 不适用 | 是 | 是 | 否 | 是 | 识别中间态不会送入 LLM;识别中间态不会产生翻译 PARTIAL |
| 三段式翻译 | ACCURATE | 不适用 | 是 | 是 | 否 | 是 | 只有语义断句后的稳定分段才执行 LLM |
端到端服务可能控制中间态输出频率,因此中间态不保证逐字、逐帧或每句话都出现。短句可能直接产生最终态结果(isFinal=true)。
ACCURATE 不翻译 识别中间态,可避免重复译文、无效调用和中间结果反复改写。
如何选择
- 需要更低的实时对话延迟(包括语音播报)时,选择端到端翻译。
- 需要较快、稳定、可预测的翻译结果时,选择三段式翻译的
FAST策略。 - 更关注表达自然度、上下文和纠错能力时,选择三段式翻译的
ACCURATE策略。
运行中切换
运行中可以切换三段式翻译的 FAST 和 ACCURATE 策略(下一句生效)。
端到端翻译与三段式翻译属于不同的识别链路,SDK 当前不提供运行中切换识别链路的公开接口;如需从端到端切换为三段式,或从三段式切换为端到端,请使用新的识别引擎配置重新创建房间;PARTIAL 和 STABLE 切换同样。