Skip to main content
Version: v1.2.0

Android SDK 概览

简介

TmkTranslationSDK 用于将业务侧采集的 PCM 音频接入翻译能力,并向业务侧返回:

  • 识别文本

  • 翻译文本

  • 翻译后的 PCM 音频

  • 通道状态与错误信息

  • 诊断日志与离线模型状态

当前 SDK 同时支持:

  • 在线翻译

  • 离线翻译

  • 收听模式(单声道)

  • 一对一模式(双声道)

本文面向外部接入方,重点说明:

  • SDK 初始化与鉴权

  • 在线/离线接入流程

  • 所有公开接口与数据模型

  • 常见使用方式与注意事项


接入前准备

环境要求

项目说明
最低系统版本minSdk 28
Java/Kotlin 目标版本11
发布产物co.timekettle.translation:tmk-translation-sdk
运行环境Android 真机或可访问音频/网络能力的测试设备

权限要求

在线模式需要网络权限:

<uses-permission android:name="android.permission.INTERNET" />

如果业务侧自行录音并向 SDK 推送 PCM,需要声明麦克风权限:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
note

SDK 负责消费业务侧传入的 PCM 数据;录音权限申请、录音器管理和用户授权提示由宿主 App 负责。

依赖配置

通过 Maven Central 安装

可通过 Maven Central 安装,以具体版本号为准

dependencies {
implementation("co.timekettle.translation:tmk-translation-sdk:1.2.0")
}

如具体发布版本与本文不一致,请以发布说明为准。

通过下载安装

AAR 下载地下:

https://github.com/timekettle/tmk-translation-sdk/releases/download/v\{version\}/tmk-translation-sdk-\{version\}.aar

请替换 version 为具体版本号,如下:

https://github.com/timekettle/tmk-translation-sdk/releases/download/v1.2.0-rc3/tmk-translation-sdk-1.2.0-rc3.aar

设置必要的 Android 依赖库

网络配置

生产环境建议使用 HTTPS。若联调环境使用 HTTP,需要按 Android 要求配置 networkSecurityConfig 允许明文流量:

<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>

核心流程总览

startInitAfter 解释

startInitAfter 是内部属性,createTranslationChannellistenerstartInitAfter 就是 true,接口关系具体可参数以下表格

重载签名内部行为
createTranslationChannel(context, config, callback)false只 init + join,不自动 start
createTranslationChannel(context, config, callback, options)false同上,可配置超时
createTranslationChannel(context, config, listener, callback)trueinit + join + 自动 start,创建即可推流
createTranslationChannel(context, config, listener, callback, options)true同上,可配置超时

在线翻译

在线模式典型流程:

  1. sdkInit

  2. getOnlineSupportedLanguages(version, callback)

  3. verifyAuth

  4. createTmkTranslationRoom

  5. createTranslationChannel 需要 startInitAfter = true

  6. channel.pushStreamAudioData

  7. releaseChannel

  8. destroy

离线翻译

离线模式典型流程:

  1. sdkInit

  2. getOfflineSupportedLanguages(version, callback)

  3. verifyAuth

  4. isOfflineTranslationSupported

  5. isOfflineModelReadydownloadOfflineModels

  6. createTmkTranslationRoom

  7. createTranslationChannelconfig.mode = TranslationMode.OFFLINE

  8. pushStreamAudioData

  9. releaseChannel

  10. destroy

Android 当前离线通道仍通过统一的 createTranslationChannel 入口创建,并要求配置 room。离线模式不会使用在线 RTC/RTM 状态原因,但通道生命周期和回调入口与在线保持一致。

回调线程说明

SDK 对外异步回调会切回主线程后再回调业务方,包括:

  • verifyAuth

  • createTranslationChannel 的启动型重载

  • TmkOfflineModelDownloadListener

  • checkOfflineModelReadyAsync

  • updateSpeaker 结果回调

TmkTranslationListener 的状态、文本、音频、事件回调可直接用于更新 UI;业务侧仍应避免在回调中执行耗时任务。

在线与离线的主要区别

项目在线翻译离线翻译
是否依赖 verifyAuth建议先鉴权,用于确认离线能力
是否需要房间对象需要当前 Android 统一入口仍需要
是否需要离线模型不需要需要
通道创建接口createTranslationChannelcreateTranslationChannel
运行状态原因包含 RTC/RTM、网络、服务端原因主要来自模型、pipeline、离线鉴权和引擎状态