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

通道配置

通道配置 TmkTransChannelConfig

Scenario

枚举说明
LISTEN收听/单声道听译
ONE_TO_ONE一对一/双声道同传
PRESENTATION演讲模式,当前文档不作为主接入流程展开
LISTEN_FAR远场听译,当前文档不作为主接入流程展开

TranslationMode

枚举说明
ONLINE在线翻译
OFFLINE离线翻译
AUTO自动模式,当前不建议作为生产主流程
MIX混合模式,当前不建议作为生产主流程

EngineType

枚举说明
ONLINE在线引擎
OFFLINE离线引擎

TransModeType

在线底层引擎模式类型:

枚举说明
LISTEN听译模式
ONE_TO_ONE同传模式
PRESENTATION演讲模式
LISTEN_FAR远场听译
NONE未指定

TmkRoomScenario

在线房间能力:

枚举说明
RECOGNIZE单 ASR,只输出识别文本
TRANSLATE_SPEECH_TO_TEXTASR+MT,输出文本翻译,不要求 TTS 语音合成
TRANSLATE_SPEECH_TO_SPEECHASR+MT+TTS,输出识别文本、翻译文本和翻译音频

建房/创建通道时可通过 TmkTransChannelConfig.Builder.setRoomScenario(...) 设置初始能力,运行中可通过 room.updateScenario(...) 切换。

TmkOnlineTranslateEngine

在线翻译引擎策略:

枚举说明
AUTOMATIC""由服务端自动选择
FAST"g_001"快速模式
ACCURATE"o_001"精准模式

在线翻译返回模式:

枚举说明
DEFAULT""由服务端自动选择
PARTIAL"partial"中间态下发
STABLE"stable"稳定态下发

创建通道时可通过 setOnlineTranslateEngine(...) 设置初始策略,运行中可通过 room.updateTranslateEngine(...) 切换。

TmkTransChannelConfig.Builder

Builder 方法说明
setRoom(room)设置房间对象
setMode(mode)设置翻译模式
setScenario(scenario)设置场景
setTransModeType(type)设置在线底层模式类型
setSourceLang(langCode)设置源语言,如 "zh-CN"
setTargetLang(langCode)设置目标语言,如 "en-US"
setSampleRate(rate)设置 PCM 采样率,建议 16000
setChannelNum(num)设置输入声道数,收听为 1,一对一为 2
setSpeakers(speakers)设置在线/离线 TTS 音色
setOnlineTranslateEngine(engine)设置在线翻译引擎初始策略
setRoomScenario(roomScenario)设置在线房间初始能力
setTranslateMode(mode)设置离线通道翻译下发模式(DEFAULT/PARTIAL/STABLE);离线生效,在线忽略
setOfflineAudioChannelMode(mode)设置离线一对一 TTS 输出通道模式,默认 STEREO
setModelRootDirectory(directory)设置离线模型根目录;不设置时使用 SDK 默认目录
addExtraParams(key, value)高级扩展参数,例如 enable_mtenable_tts
build()构建 TmkTransChannelConfig

说明:

  • setRoomScenario(TmkRoomScenario.RECOGNIZE):单 ASR,只输出识别文本。

  • setRoomScenario(TmkRoomScenario.TRANSLATE_SPEECH_TO_TEXT):ASR+MT 文本输出,不要求 TTS。

  • setRoomScenario(TmkRoomScenario.TRANSLATE_SPEECH_TO_SPEECH):ASR+MT+TTS 语音输出。

  • addExtraParams("enable_mt", "false")addExtraParams("enable_tts", "false") 主要影响离线模型需求和离线 pipeline 行为;在线房间能力请优先使用 setRoomScenario(...) / updateScenario(...)

音色与离线输出通道模型

enum class SpeakerChannel {
LEFT,
RIGHT
}

enum class SpeakerGender {
MALE,
FEMALE
}

data class TmkSpeaker(
val channel: SpeakerChannel,
val gender: SpeakerGender,
)

SpeakerChannel.LEFT 对应左声道;SpeakerChannel.RIGHT 对应右声道。收听模式通常只配置 LEFT;一对一模式可分别配置左右声道音色。

enum class TmkDialogConversationAudioMode {
STANDARD,
LOW_LATENCY
}
枚举说明
STANDARD标准一对一对话音频模式,适合常规对话
LOW_LATENCY低延迟一对一对话音频模式,适合双方长时间连续说话、翻译和播报,降低延迟累积
enum class TmkOfflineAudioChannelMode {
MONO,
STEREO
}
枚举说明
MONO离线一对一 TTS 按单声道输出,适合业务侧自行管理播放声道
STEREO默认值,离线一对一 TTS 混成立体声输出

创建通道接口(在线/离线统一入口)

仅创建并初始化通道,不自动启动:

fun createTranslationChannel(
context: Context,
config: TmkTransChannelConfig,
callback: CreateChannelCallback,
)

创建、绑定监听器并自动启动通道:

fun createTranslationChannel(
context: Context,
config: TmkTransChannelConfig,
listener: TmkTranslationListener?,
callback: CreateChannelCallback,
)

回调说明:

interface CreateChannelCallback {
fun onSuccess(channel: TmkTranslationChannel)
fun onError(errorId: Int, e: Exception)
}

差异说明:

  • 三参数重载:onSuccess 表示通道初始化完成,业务侧需要调用 channel.setTranslationListener(listener)channel.start()

  • 四参数重载:SDK 会先绑定 listener 再启动通道;onSuccess 表示通道已进入可运行或降级可用状态。

在线通道创建示例

备注

以下 room 来自 7.2 的 createTmkTranslationRoom(config, callback),建房成功后即可直接用于构建通道配置。

收听模式

val channelConfig = TmkTransChannelConfig.Builder()
.setRoom(room)
.setMode(TranslationMode.ONLINE)
.setScenario(Scenario.LISTEN)
.setTransModeType(TransModeType.LISTEN)
.setSourceLang("zh-CN")
.setTargetLang("en-US")
.setSampleRate(16000)
.setChannelNum(1)
.build()

一对一模式

val channelConfig = TmkTransChannelConfig.Builder()
.setRoom(room)
.setMode(TranslationMode.ONLINE)
.setScenario(Scenario.ONE_TO_ONE)
.setTransModeType(TransModeType.ONE_TO_ONE)
.setSourceLang("zh-CN")
.setTargetLang("en-US")
.setSpeakers(
listOf(
TmkSpeaker(SpeakerChannel.LEFT, SpeakerGender.FEMALE),
TmkSpeaker(SpeakerChannel.RIGHT, SpeakerGender.MALE),
)
)
.setSampleRate(16000)
.setChannelNum(2)
.build()

一对一模式下,sourceLang 对应左声道,targetLang 对应右声道。输入 PCM 为双声道交织数据。