跳到主要内容
版本:v1.3.1

通道对象

通道对象 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 一致。

低延迟一对一按声道推送:

fun pushStreamAudioData(
data: ByteArray,
speakerChannel: SpeakerChannel,
extraChunk: ByteArray? = null,
)

data 必须是目标声道的单声道 PCM。在线一对一 LOW_LATENCY 模式使用双 UID,SpeakerChannel.LEFT 和 SpeakerChannel.RIGHT 分别对应各自的独立连接;离线一对一 TmkOfflineAudioChannelMode.MONO 模式也使用该接口将左右单声道 PCM 分别送入对应 pipeline。标准在线模式和离线 STEREO 模式继续使用上面的 channelCount 重载传入双声道交织 PCM。非对应模式调用按引擎实现回退为整块推流,不应依赖其进行声道拆分。

生命周期方法​

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

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

状态与能力查询​

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

运行中更新能力​

切换通道语言:

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

说明:

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

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

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

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

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

@JvmOverloads
fun updateTranslateMode(
mode: TmkTranslateDeliveryMode,
callback: ActionCallback? = null,
): Cancelable

说明:

  • 仅离线通道支持;不传 callback 的旧用法在在线通道仍静默忽略,传 callback 时返回 ENGINE_NOT_SUPPORTED。

  • 返回 Cancelable;离线底层切换一旦进入串行执行不可中断,cancel() 用于抑制尚未派发的结果回调。

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

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

切换在线翻译引擎:

fun updateTranslateEngine(
engine: TmkOnlineTranslateEngine = TmkOnlineTranslateEngine.AUTOMATIC,
callback: ActionCallback,
): Cancelable

说明:

  • 仅在线通道支持;离线通道通过 callback 返回 ENGINE_NOT_SUPPORTED。

  • Channel 内部复用 Room 原有的 updateTranslateEngine 业务链路,不在 Engine 层重复实现。

  • 返回真实 Cancelable。调用 cancel() 会取消尚未完成的网络协程并抑制尚未派发的回调;已经完成的回调和已经生效的服务端动作不会回滚。

切换能力档位:

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 只能取消尚未执行的设置任务,已生效的音色不会回滚。