Skip to main content
Version: v1.3.2

iOS SDK 概览

本次更新​

当前版本更新内容:

  • iOS 和 Android 的对外接口与接入方式已对齐,新接入请使用当前文档推荐的接口。

  • 新增 verifyAuth(_:_:) 支持 .default、.all、.online 与 .offline:.default 保持原有行为;.all 要求在线和离线鉴权都成功;.online 只执行在线鉴权;.offline 优先复用有效的离线 License 缓存,缓存不可用时先获取 token,再请求 License。详见 初始化与鉴权。

  • 修复 App 在 SDK 外部下载离线模型包后,iOS 离线模型包就绪检查接口可能返回错误结果的问题;对应单元测试已通过。

  • 离线 SDK 升级至 1.2.2,修复以下问题:ASR 偶发 final 结果为空;识别文本包含的 <> 符号未清理;仅有标点的 ASR 结果仍产生气泡;日语断句问题在自测中不再出现。

简介​

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

  • 识别文本

  • 翻译文本

  • 翻译后的 PCM 音频

  • 通道状态与错误信息

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

当前 SDK 同时支持:

  • 在线翻译

  • 离线翻译

  • 收听模式(单声道)

  • 一对一模式(双声道)

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

  • SDK 初始化与鉴权

  • 在线/离线接入流程

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

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


接入前准备​

环境要求​

项目说明
最低系统版本iOS 15.0+
Swift 版本Swift 5.x
真机架构arm64
模拟器以发布产物包含的 simulator slice 为准
发布产物TmkTranslationSDK.xcframework

权限要求​

宿主 App 需要声明麦克风权限:

<key>NSMicrophoneUsageDescription</key>
<string>需要访问麦克风以采集实时语音</string>

如果联调环境使用 HTTP,还需要按实际情况配置 ATS 例外。生产环境建议只使用 HTTPS

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

安装示例​

推荐使用 CocoaPods​

pod 'TmkTranslationSDK', '1.3.2'

使用 pod install --repo-update 安装 SDK,并且需要在 Build Setting 中设置 User Script sandboxing 为 NO;

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


核心流程总览​

在线翻译​

在线模式典型流程:

  1. sdkInit

  2. getOnlineSupportedLanguages(version:_:)

  3. 调用 verifyAuth,由调用方按实际业务选择鉴权模式

  4. createTmkTranslationRoom

  5. createTranslationChannel

  6. pushStreamAudioData

  7. releaseChannel

  8. destroy

离线翻译​

离线模式典型流程:

  1. sdkInit

  2. getOfflineSupportedLanguages(version:_:)

  3. 调用 verifyAuth,由调用方按实际业务选择鉴权模式

  4. isOfflineTranslationSupported

  5. isOfflineModelReady 或 downloadOfflineModels

  6. 直接创建 createTranslationChannel(config.mode = .offline);Room 为 SDK 内部对象,无需显式设置

  7. pushStreamAudioData

  8. releaseChannel

  9. destroy

回调线程说明​

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

  • verifyAuth

  • createTmkTranslationRoom

  • createTranslationChannel

  • closeRoom

监听器 TmkTranslationListener 的回调会切回主线程后再回调业务方,可直接用于更新 UI。

离线模型下载监听器 TmkOfflineModelDownloadListener 的回调同样会切回主线程。

在线与离线的主要区别​

项目在线翻译离线翻译
鉴权方式由调用方按实际业务选择 TmkAuthVerifyMode由调用方按实际业务选择 TmkAuthVerifyMode
是否需要房间需要不要求显式设置 Room;不访问在线服务
是否需要离线模型不需要需要
通道创建接口createTranslationChannelcreateTranslationChannel