iOS SDK 概览
简介
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.2.0'
使用 pod install --repo-update 安装 SDK,并且需要在 Build Setting 中设置 User Script sandboxing 为 NO;
如具体发布版本与本文不一致,请以发布说明为准。
核心流程总览
在线翻译
在线模式典型流程:
-
sdkInit -
getOnlineSupportedLanguages(version:_:) -
verifyAuth -
createTmkTranslationRoom -
createTranslationChannel -
pushStreamAudioData -
releaseChannel -
destroy
离线翻译
离线模式典型流程:
-
sdkInit -
getOfflineSupportedLanguages(version:_:) -
verifyAuth -
isOfflineTranslationSupported -
isOfflineModelReady或downloadOfflineModels -
createTranslationChannel(config.mode = .offline) -
pushStreamAudioData -
releaseChannel -
destroy
回调线程说明
SDK 对外的大多数异步回调都会切回主线程后再回调业务方,包括:
-
verifyAuth -
getSupportedLanguages -
createTmkTranslationRoom -
createTranslationChannel -
closeRoom
监听器 TmkTranslationListener 的回调会切回主线程后再回调业务方,可直接用于更新 UI。
离线模型下载监听器 TmkOfflineModelDownloadListener 的回调同样会切回主线程。
在线与离线的主要区别
| 项目 | 在线翻译 | 离线翻译 |
|---|---|---|
是否依赖 verifyAuth | 是 | 建议先鉴权,用于确认离线能力 |
| 是否需要房间 | 需要 | 不需要 |
| 是否需要离线模型 | 不需要 | 需要 |
| 通道创建接口 | createTranslationChannel | createTranslationChannel |