跳到主要内容
版本:Latest

通道对象

通道对象 TmkTranslationChannel

pushStreamAudioData(data, channelCount, extraChunk)

向通道推送 PCM 音频。

fun pushStreamAudioData(
data: ByteArray,
channelCount: Int,
extraChunk: ByteArray?,
)

参数说明:

参数说明
data16-bit little-endian PCM
channelCount声道数,收听为 1,一对一为 2
extraChunk扩展音频块,普通接入可传 null

行为说明:

  • start() 前推流无效。

  • 通道状态不允许推流时,SDK 会忽略音频数据。

  • 建议按 20ms 粒度持续推流。

  • 采样率和声道数必须与 TmkTransChannelConfig 一致。

生命周期方法

方法说明
setTranslationListener(listener)启动通道(createTranslationChannelstartInitAfter 参数为 false 时,才需要调用)
start()启动通道(createTranslationChannelstartInitAfter 参数为 false 时,才需要调用一次)
destroy()停止、释放资源并清除回调

页面退出、切换模式、切换房间或切换语言对时,优先调用 TmkTranslationSDK.releaseChannel() 释放当前会话并关闭在线房间。如果业务侧需要等待最终 ASR/MT/TTS 结果,可先 stop(),等待结果回调后再调用 releaseChannel()

状态与能力查询

方法说明
currentRuntimeState()获取当前通道状态快照
getTranslationMode()获取当前翻译模式
getScenario()获取当前场景
getChanelEngineType()获取当前底层引擎类型
getTranslationListener()获取当前 listener

运行中更新能力

切换通道语言:

fun updateLanguages(
sourceLang: String,
targetLang: String,
callback: ActionCallback,
): Cancelable

说明:

  • 运行时切换通道语言,在线/离线统一入口。

  • 在线场景:发送网络指令,有超时;返回真句柄,可取消。

  • 离线场景:流式切换,不销毁/重建整体 pipeline,不打断正在进行的流;切换近乎瞬时;返回 no-op 句柄,cancel 无副作用;不加超时。

  • 切换成功后写回内部语言字段。

切换翻译下发模式(partial/stable):

fun updateTranslateMode(mode: TmkTranslateDeliveryMode)

说明:

  • 仅离线通道支持;在线通道静默忽略。

  • 切换近乎瞬时,不重建 pipeline,不打断当前流。

  • 切到 stable 立即停发中间态,切到 partial 下一段起生效。

切换能力档位:

fun updateScenario(
scenario: TmkRoomScenario,
callback: ActionCallback,
): Cancelable

说明:

  • 运行时切换能力档位,在线/离线统一入口。

  • 在线场景:发送服务端热切指令,有超时;返回真句柄,可取消。

  • 离线场景:升档前校验目标档位所需模型(未就绪回 OFFLINE_MODEL_NOT_READY),就绪则按需补建 MT/TTS;降档立即释放不再需要的 MT/TTS;ASR 全程常驻不打断流。

更新 TTS 音色:

fun updateSpeaker(
speakers: List<TmkSpeaker>,
callback: ActionCallback,
): Cancelable

回调说明:

interface ActionCallback {
fun onSuccess(result: Result<Unit>)
fun onError(errorId: Int, e: Exception)
}

说明:

  • 在线通道通过当前 room 和 active channel 更新服务端音色。

  • 离线通道通过当前引擎更新本地 TTS 音色。

  • 返回的 Cancelable 只能取消尚未执行的设置任务,已生效的音色不会回滚。