通道对象
通道对象 TmkTranslationChannel
pushStreamAudioData(data, channelCount, extraChunk)
向通道推送 PCM 音频。
fun pushStreamAudioData(
data: ByteArray,
channelCount: Int,
extraChunk: ByteArray?,
)
参数说明:
| 参数 | 说明 |
|---|---|
data | 16-bit little-endian PCM |
channelCount | 声道数,收听为 1,一对一为 2 |
extraChunk | 扩展音频块,普通接入可传 null |
行为说明:
-
start()前推流无效。 -
通道状态不允许推流时,SDK 会忽略音频数据。
-
建议按 20ms 粒度持续推流。
-
采样率和声道数必须与
TmkTransChannelConfig一致。
生命周期方法
| 方法 | 说明 |
|---|---|
setTranslationListener(listener) | 启动通道(createTranslationChannel 的 startInitAfter 参数为 false 时,才需要调用) |
start() | 启动通道(createTranslationChannel 的 startInitAfter 参数为 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只能取消尚未执行的设置任务,已生效的音色不会回滚。