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

接口概述

TmkTranslationSDK 对外接口概览。iOS 与 Android 提供对齐的能力,本页按能力域分组列出各接口的用途、参数、返回值与成功判定方式。完整的接入示例与字段细节见 iOS SDK API 与 Android SDK API。

如何判断调用成功

同步接口看返回值(Bool / 对象 / 句柄,无异常即成功);异步接口以回调进入成功分支为准(iOS Result.success / Android onSuccess),不能以方法立即返回值判断成败(尤其建房接口)。

iOS​

生命周期与鉴权​

接口说明传入参数返回值如何判断调用成功
sdkVersion获取 SDK 版本号无String(如 1.3.1)返回非空版本字符串
sdkInit(_ config:)初始化全局配置config: TmkTranslationGlobalConfig(appId/secret、在线鉴权上下文、日志、诊断、网络环境、自定义地址、networkTimeout)无无异常返回(仅保存配置,不触发鉴权)
verifyAuth(_ callback:)在线/离线鉴权callback: AuthCallback无回调进入 .success(())(仅由在线鉴权结果决定)
releaseChannel()会话级释放无无同步返回(同时停止在线、离线两个运行时,取消建房并异步关闭在线房间;不清空全局配置与鉴权)
destroy()全局释放无无同步返回(清空鉴权与配置;后续须重新 sdkInit)

语言列表​

接口说明传入参数返回值如何判断调用成功
isOfflineTranslationSupported()查询是否支持离线无Bool返回 true(建议鉴权成功后调用)
getOnlineSupportedLanguages(version:_:) / getOfflineSupportedLanguages(version:_:)获取在线/离线支持语言列表version: String?、callbackTmkSDKCancellable?回调进入 .success(TmkLocaleListResponse)

在线房间​

接口说明传入参数返回值如何判断调用成功
createTmkTranslationRoom(config:_:)创建在线房间config: TmkTranslationRoomConfig(源/目标语言、scenario、roomId?、channelScenario、messageTunnel、speakers?、recognizeEngine、translateEngine、dialogConversationAudioMode、enableSensitiveWordRedaction)、callbackTmkSDKCancellable?(可忽略;可取消尚未完成的建房)回调进入 .success(TmkTranslationRoom)
room.closeRoom(completion:)关闭在线房间completionTmkSDKCancellable?回调进入 .success(())
room.updateRoomLocale(sourceLocales:targetLocales:completion:)运行中切换房间语言sourceLocales:[String]、targetLocales:[String]、completionTmkSDKCancellable?回调进入 .success(())
room.updateTranslateEngine(_:completion:)运行中切换在线翻译引擎engine: .automatic/.fast/.accurate、completionTmkSDKCancellable?回调进入 .success(())
room.updateScenario(_:completion:)运行中切换房间能力scenario: .recognize/.toText/.toSpeech、completionTmkSDKCancellable?回调进入 .success(())

通道​

接口说明传入参数返回值如何判断调用成功
createTranslationChannel(_:callback:) / (_:listener:callback:)创建并自动启动通道(在线/离线统一入口)config: TmkTranslationChannelConfig(room、mode、scenario、源/目标语言、采样率、声道数、播放模式、音色、模型目录、translateMode、capabilityTier 等)、可选 listener、callbackTmkSDKCancellable?(可忽略;可取消尚未完成的创建)回调进入 .success(TmkTranslationChannel)
channel.pushStreamAudioData(_:channelCount:extraChunk:)推送 PCM 音频data(16bit LE PCM)、channelCount(1 单/2 双)、extraChunk(一般 nil);另有按 speakerChannel 推流重载无无异常返回(未 start/状态不允许时被忽略)
channel.release() / channel.createTranslationChannel()通道资源释放 / 重建无无无异常返回
channel.currentRuntimeState() / getTranslationMode() / getScenario() / getChannelEngineType()通道状态/能力查询无状态快照 / 枚举同步返回
channel.setTranslationListener(_:)设置/替换结果监听器listener: TmkTranslationListener无同步返回
channel.updateLanguages(sourceLang:targetLang:)运行中更新通道语言(同步,仅更新内部字段,无网络/模型切换)sourceLang、targetLang无同步返回
channel.updateLanguages(sourceLang:targetLang:completion:)运行中异步切换通道语言(在线/离线统一入口)。在线:发网络指令,有超时可取消;离线:流式切换,不打断流,不可取消sourceLang、targetLang、completion: (Result<Void, TmkTranslationError>) -> VoidTmkSDKCancellable?(在线为真句柄,离线为 no-op,通道已释放时 nil)回调进入 .success(())
channel.updateTranslateMode(_:completion:)运行时切换翻译下发模式(partial/stable)。仅离线支持;在线回调 .engineNotSupportedmode: TmkTranslateDeliveryMode、completionTmkSDKCancellable?(离线为 nil,表示底层不可中途取消)回调进入 .success(())
channel.updateScenario(_:completion:)运行时切换能力档位(recognize/toText/toSpeech),在线/离线统一。在线:服务端热切;离线:升档前校验模型就绪,按需加载/卸载 MT/TTSscenario: TmkRoomScenario、completionTmkSDKCancellable?(在线为真句柄,离线为 nil,表示底层不可中途取消)回调进入 .success(())
channel.updateSpeaker(speakers:callback:)运行中更新 TTS 音色speakers:[TmkSpeaker]、callbackTmkSDKCancellable?回调进入 .success(())
并发通道与释放

同一个 SDK 实例可同时保留一个在线和一个离线运行时;重复创建同类通道会替换旧通道。releaseChannel() 会释放两者。若只结束其中一路,请保留通道实例并调用 iOS channel.release() 或 Android channel.destroy()。

离线模型管理​

接口说明传入参数返回值如何判断调用成功
downloadOfflineModels(srcLang:dstLang:modelRootDirectory:scenario:needMt:needTts:listener:)下载离线模型源/目标语言、模型目录?、scenario、needMt、needTts、listener无通过 listener 回调进度/就绪/错误
cancelOfflineModelDownload()取消下载无无同步返回(listener 回 cancelled 状态)
getOfflineModelPackageInfos(...)查询模型包状态源/目标语言、scenario、needMt、needTts[TmkOfflineModelPackageInfo]同步返回列表
isOfflineModelReady(...)同步检查模型整体就绪源/目标语言、scenario、needMt、needTtsBool返回 true
isAsrModelReady / isMtModelReady / isTtsModelReady / isTtsDataReady单项模型就绪检查语言码 / 源目标语言 / 模型目录?Bool返回 true(语言码按主标签归一 zh-CN→zh)
checkOfflineModelReadyAsync(…, completion:)异步整体就绪检查源/目标语言、scenario、needMt、needTts、callbackQueue、completion无completion(Bool) 回 true(主线程)
defaultOfflineModelRootDirectory() / …URL()默认模型目录无String / URL同步返回(Documents/tmkOfflineModel)

诊断、工具与回调数据​

接口说明传入参数返回值如何判断调用成功
getDiagnosisDirectoryURL()获取诊断目录无URL?返回非 nil(需在 TmkDiagnosisConfig 中开启诊断)
onRecognized extraData 新增字段ASR 回调 result.extraData 中新增 "offset"(纳秒, Int64)和 "duration"(纳秒, Int64),表示本段语音在音频流中的偏移与时长;MT 翻译回调不包含此字段——extraData["offset"]/extraData["duration"] 有值(可能为 nil 表示服务端未下发)
TmkTranslationPCMTools.*PCM 工具(混音/拆分/格式转换)PCM/数组数据Data / [Float] / 元组同步返回(拆分失败可能 nil)

Android​

生命周期与鉴权​

接口说明传入参数返回值如何判断调用成功
sdkVersion获取 SDK 版本号无String(如 1.3.1)返回非空版本字符串
sdkInit(context, config)初始化全局配置context: Context(建议 ApplicationContext)、config: TmkTransGlobalConfig(appId/secret、在线鉴权上下文、诊断、网络环境、自定义地址、networkTimeoutSeconds)无无异常返回(仅保存配置,不触发鉴权)
verifyAuth(callback)在线/离线鉴权callback: AuthCallback无回调进入 onSuccess()(仅由在线鉴权结果决定)
releaseChannel()会话级释放无无同步返回(同时停止在线、离线两个运行时,并异步关闭在线房间;不清空全局配置与鉴权)
destroy()全局释放无无同步返回(清空鉴权与配置;后续须重新 sdkInit)

语言列表​

接口说明传入参数返回值如何判断调用成功
isOfflineTranslationSupported()查询是否支持离线无Boolean返回 true(建议鉴权成功后调用)
getOnlineSupportedLanguages(version, callback) / getOfflineSupportedLanguages(version, callback)获取在线/离线支持语言列表version: String?、callback: TmkLocaleListCallbackCancelable回调进入 onSuccess(TmkLocaleListResponse)

在线房间​

接口说明传入参数返回值如何判断调用成功
createTmkTranslationRoom(config, callback)创建在线房间config: TmkTranslationRoomConfig(scenario 必填、源/目标语言、speakers、onlineRecognizeEngine、onlineTranslateEngine、roomScenario、translateMode、dialogConversationAudioMode、enableSensitiveWordRedaction)、callbackCancelable(回调前可取消)回调进入 onSuccess(TmkTranslationRoom)
room.updateRoomLocale(sourceLocales, targetLocales, callback)运行中切换房间语言sourceLocales、targetLocales、callback—回调成功(Result<Unit>);无活动通道返回 INVALID_STATE
room.updateTranslateEngine(engine, callback)运行中切换在线翻译引擎(兼容旧 API)engine: AUTOMATIC/FAST/ACCURATE、callbackCancelable回调成功(Result<Unit>);取消只影响尚未完成的请求和回调,已生效服务端动作不回滚
room.updateScenario(scenario, callback)运行中切换房间能力scenario: RECOGNIZE/TRANSLATE_SPEECH_TO_TEXT/TRANSLATE_SPEECH_TO_SPEECH、callback—回调成功(Result<Unit>)

通道​

接口说明传入参数返回值如何判断调用成功
createTranslationChannel(context, config, callback) / (…, listener, callback)创建通道(在线/离线统一入口)context、config: TmkTransChannelConfig(translateMode 等)、可选 listener、callbackCancelable(可忽略;可取消尚未完成的创建)回调进入 onSuccess(TmkTranslationChannel)(三参重载需自行 setTranslationListener+start();四参重载自动启动)
channel.pushStreamAudioData(data, channelCount, extraChunk)推送 PCM 音频data: ByteArray(16bit LE PCM)、channelCount(1 单/2 双)、extraChunk(一般 null)无无异常返回(未 start/状态不允许时被忽略)
channel.pushStreamAudioData(data, speakerChannel, extraChunk)按声道推送单声道 PCM;在线一对一低延迟双 UID、离线一对一 MONO 分路模式使用data: ByteArray、speakerChannel: SpeakerChannel.LEFT/RIGHT、extraChunk无无异常返回(未 start/状态不允许时被忽略)
channel.start() / destroy()启动通道和销毁通道无无无异常返回(状态以 onStateChanged 为准)
channel.currentRuntimeState() / getTranslationMode() / getScenario() / getChannelEngineType() / getTranslationListener()通道状态/能力查询无状态快照 / 枚举 / listener同步返回
channel.setTranslationListener(listener)设置/替换结果监听器listener: TmkTranslationListener无同步返回
channel.updateLanguages(sourceLang, targetLang, callback)运行中异步切换通道语言(在线/离线统一入口)。在线:发网络指令,有超时可取消;离线:流式切换,不打断流,不可取消sourceLang: String、targetLang: String、callback: ActionCallbackCancelable(在线为真句柄,离线为 no-op)回调进入 onSuccess(Result<Unit>)
channel.updateTranslateMode(mode, callback?)运行时切换翻译下发模式(partial/stable)。仅离线支持;一参旧调用保持静默兼容mode: TmkTranslateDeliveryMode、可选 callback: ActionCallbackCancelable传 callback 时回调成功/失败;离线切换进入串行执行后不可中断,cancel() 仅抑制尚未派发的回调
channel.updateTranslateEngine(engine, callback)运行时切换在线翻译引擎engine: TmkOnlineTranslateEngine、callback: ActionCallbackCancelable在线回调成功;离线回调 ENGINE_NOT_SUPPORTED
channel.updateScenario(scenario, callback)运行时切换能力档位(RECOGNIZE/TRANSLATE_SPEECH_TO_TEXT/TRANSLATE_SPEECH_TO_SPEECH),在线/离线统一。在线:服务端热切;离线:升档前校验模型就绪,按需加载/卸载 MT/TTSscenario: TmkRoomScenario、callback: ActionCallbackCancelable(在线为真句柄,离线为 no-op)回调进入 onSuccess(Result<Unit>)
channel.updateSpeaker(speakers, callback)运行中更新 TTS 音色speakers: List<TmkSpeaker>、callback: ActionCallbackCancelable回调进入 onSuccess(Result<Unit>)
并发通道与释放

同一个 SDK 实例可同时保留一个在线和一个离线运行时;重复创建同类通道会替换旧通道。releaseChannel() 会释放两者。若只结束其中一路,请保留通道实例并调用 iOS channel.release() 或 Android channel.destroy()。

离线模型管理​

接口说明传入参数返回值如何判断调用成功
downloadOfflineModels(context, srcLang, dstLang, scenario, needMt, needTts, listener)下载离线模型源/目标语言、scenario、needMt、needTts、listener(多重载,可省 context 或传 modelRootDirectory)无通过 listener 回调进度/就绪/错误
cancelOfflineModelDownload()取消下载无无同步返回(listener 回 cancelled 状态)
getOfflineModelPackageInfos(context, ...)查询模型包状态context、源/目标语言、scenario、needMt、needTtsList<TmkOfflineModelPackageInfo>同步返回列表
isOfflineModelReady(context, ...)同步检查模型整体就绪context、源/目标语言、scenario、needMt、needTtsBoolean返回 true
isAsrModelReady / isMtModelReady / isTtsModelReady / isTtsDataReady单项模型就绪检查语言码 / 源目标语言 / 模型目录?(均有带 context 重载)Boolean返回 true(语言码按主标签归一 zh-CN→zh)
checkOfflineModelReadyAsync(context, …, completion)异步整体就绪检查context、源/目标语言、scenario、needMt、needTts、completion无completion(Boolean) 回 true(主线程)
defaultOfflineModelRootDirectory() / (context)默认模型目录可选 context(可在 init 前查询)String同步返回

回调数据​

接口说明传入参数返回值如何判断调用成功
onRecognized extraData 新增字段ASR 回调 r.extraData 中新增 "offset"(纳秒, Long)和 "duration"(纳秒, Long),表示本段语音偏移与时长;MT 翻译回调不含此字段——r.extraData["offset"]/r.extraData["duration"] 有值(可能缺失,表示服务端未下发)