Harmony接口详情

更新时间:
复制为 MD 格式

通过阅读本文,您可以了解Harmony SDK接口详情。

API概览

类/协议

API

说明

ARTCAICallEngineInterface

AI通话引擎接口

userId

获取当前通话的UserId

isOnCall

获取是否通话中状态

agentInfo

获取当前智能体信息

agentState

获取当前智能体状态

audioConfig

音频配置

videoConfig

视频配置

listener

设置和获取回调事件

call

开始通话

callWithConfig

通过通话配置来开始通话

handup

挂断并销毁当前通话引擎

setAgentViewConfig

设置智能体渲染视图及配置

setLocalViewConfig

设置本地摄像头渲染视图及配置

interruptSpeaking

打断智能体讲话

sendTextToAgent

给智能体发送文本消息

sendCustomMessageToServer

Server发送自定义消息

updateLlmSystemPrompt

更新llm的系统提示词

updateBailianAppParams

更新百炼应用中心参数

updateVcrConfig

更新VCR配置

updateAsrMaxSilence

更新语音断句检测阈值

updateTtsSpeechRate

更新TTS播报语速

queryCurrentAgentState

查询当前的智能体状态

startVisionCustomCapture

Vision智能体,开始启动自定义截帧

stopVisionCustomCapture

Vision智能体,结束自定义截帧

enableVoiceInterrupt

开启/关闭智能打断

switchVoiceId

切换音色

enableSpeaker

开启/关闭扬声器

muteAgentAudioPlaying

停止/恢复智能体音频流的播放

muteMicrophone

静音/取消禁音麦克风

muteLocalCamera

关闭/取消关闭摄像头

switchCamera

切换前后摄像头

enablePushToTalk

开启/关闭对讲机模式

startPushToTalk

开始讲话

finishPushToTalk

结束讲话

cancelPushToTalk

取消这次讲话

useVoiceprint

当前断句是否使用声纹降噪识别

clearVoiceprint

清除当前声纹数据

createRTCEngine

创建RTC引擎

getRTCInstance

获取RTC引擎

destroy

释放资源

parseShareAgentCall

解析一个分享的智能体信息

generateShareAgentCall

启动一个分享的智能体通话

ARTCAICallEngineListener

AI通话引擎事件回调

onErrorOccurs

发生了错误

onConnectionStatusChange

通话过程中链接状态发生变化

onCallBegin

通话开始(入会)

onCallEnd

通话结束(离会)

onAgentStarted

通话智能体已启动

onRTCEngineCreated

RTC引擎被成功创建,可以在这个回调里调用getRTCInstance获取到rtc引擎实例

onAgentDataChannelAvailable

智能体消息通道可用回调,需要等回调触发后,才可以给智能体发送消息

onAgentVideoAvailable

智能体视频是否可用(推流)

onAgentAudioAvailable

智能体音频是否可用(推流)

onAgentAvatarFirstFrameDrawn

智能体数字人首帧渲染

onAgentStateChanged

智能体状态改变

onNetworkStatusChanged

网络状态改变

onVoiceVolumeChanged

音量变化通知

onUserSubtitleNotify

用户提问被智能体识别结果的通知

onVoiceAgentSubtitleNotify

智能体回答结果通知

onAgentEmotionNotify

智能体情绪结果通知

onVoiceIdChanged

当前通话的音色发生了改变

onVoiceInterrupted

当前通话的语音打断是否启用

onSpeakingInterrupted

智能体当前讲话被打断

onPushToTalk

当前通话的对讲机模式是否启用

onVoiceprint

当前通话的声纹降噪是否启用

onVoiceprintCleared

当前通话的声纹数据被清除

onAgentWillLeave

当前智能体即将离开(结束当前通话)

onReceivedAgentCustomMessage

收到当前智能体发过来的自定义消息

onReceivedAgentVcrResult

收到当前智能体发过来VCR结果

onHumanTakeoverWillStart

当真人即将接管当前智能体

onHumanTakeoverConnected

当真人接管已经接通

onAudioDelayInfo

音频回环延迟

onVisionCustomCapture

当前Vision通话是否启用了自定义截帧模式

onLLMReplyCompleted

当前通话中,LLM回答完毕

onAudioAccompanyStateChanged

当前通话中,如果通过RTC Instance进行播放音乐伴奏,则会触发该播放回调

ARTCAICallEngineFactory

引擎工厂

createEngine

创建默认的AICallEngine

API详情

ARTCAICallEngineInterface详情

userId

获取当前通话的UserId

readonly userId: string | undefined

类型: string | undefined

备注: 只读属性,获取当前通话的用户ID。

isOnCall

获取是否通话中状态

readonly isOnCall: boolean

类型: boolean

备注: 只读属性,从接通后到挂断或出错前为true,其他为false。

agentInfo

获取当前智能体信息

readonly agentInfo: ARTCAICallAgentInfo | undefined

类型: ARTCAICallAgentInfo | undefined

备注: 只读属性,获取当前通话的智能体信息。

agentState

获取当前智能体状态

readonly agentState: ARTCAICallAgentState

类型: ARTCAICallAgentState

备注: 只读属性,获取当前智能体的状态。

audioConfig

音频配置

audioConfig: ARTCAICallAudioConfig

类型: ARTCAICallAudioConfig

备注: 音频配置,在通话前设置才能生效。

videoConfig

视频配置

videoConfig: ARTCAICallVideoConfig

类型: ARTCAICallVideoConfig

备注: 视频配置,VisionAgent/VideoAgent时,在通话前设置才能生效。

listener

设置和获取回调事件

listener: ARTCAICallEngineListener | undefined

类型: ARTCAICallEngineListener | undefined

备注: 用于设置和获取回调事件监听器。

call

开始通话

call(userId: string, token: string, agentInfo: ARTCAICallAgentInfo): boolean

参数详情:

参数

类型

必填

含义

userId

string

当前用户Id

token

string

当前用户的入会Token

agentInfo

ARTCAICallAgentInfo

要参与通话的智能体信息

返回值: boolean

备注: 开始一次AI通话。

callWithConfig

通过通话配置来开始通话

callWithConfig(config: ARTCAICallConfig): boolean

参数详情:

参数

类型

必填

含义

config

ARTCAICallConfig

通话配置

返回值: boolean

备注: 使用完整的通话配置开始一次AI通话。

handup

挂断并销毁当前通话引擎

handup(destroy: boolean): void

参数详情:

参数

类型

必填

含义

destroy

boolean

挂断后是否对当前引擎进行销毁,是的话,在完全挂断后内部会调用destroy()

返回值: void

备注: 挂断并销毁当前通话引擎。首先发送消息通知智能体停止通话,然后等待100ms后再自行结束通话,如果destroytrue,则还会自行释放内部资源。

setAgentViewConfig

设置智能体渲染视图及配置

setAgentViewConfig(viewConfig: ARTCAICallViewConfig | undefined): void

参数详情:

参数

类型

必填

含义

viewConfig

ARTCAICallViewConfig

视图配置,为空时表示不需要渲染视图

返回值: void

备注: 当智能体有画面渲染时需要设置(当前仅针对AvararAgent/VideoAgent有效)。

setLocalViewConfig

设置本地摄像头渲染视图及配置

setLocalViewConfig(viewConfig: ARTCAICallViewConfig | undefined): void

参数详情:

参数

类型

必填

含义

viewConfig

ARTCAICallViewConfig

视图配置,为空时表示不需要渲染视图

返回值: void

备注: 本地摄像头渲染视图及配置(当前仅针对VisionAgent/VideoAgent有效)。

interruptSpeaking

打断智能体讲话

interruptSpeaking(): boolean

返回值: boolean

备注: 需要在接通后调用,返回是否成功。

sendTextToAgent

给智能体发送文本消息

sendTextToAgent(req: ARTCAICallSendTextToAgentRequest): boolean

参数详情:

参数

类型

必填

含义

req

ARTCAICallSendTextToAgentRequest

发送内容

返回值: boolean

备注: 需要在接通后调用,返回是否成功。

sendCustomMessageToServer

Server发送自定义消息

sendCustomMessageToServer(msg: string): boolean

参数详情:

参数

类型

必填

含义

msg

string

发送内容

返回值: boolean

备注: 需要在接通后调用,返回是否成功。

updateLlmSystemPrompt

更新llm的系统提示词

updateLlmSystemPrompt(prompt: string): boolean

参数详情:

参数

类型

必填

含义

prompt

string

提示词

返回值: boolean

备注: 需要在接通后调用,例如:"你是一位友好且乐于助人的助手,专注于为用户提供准确的信息和建议。" 注意:不支持LLM节点为百炼工作流类型,返回成功不代表生效。

updateBailianAppParams

更新百炼应用中心参数

updateBailianAppParams(params: Record<string, RecordValueType>): boolean

参数详情:

参数

类型

必填

含义

params

Record<string, RecordValueType>

参数

返回值: boolean

备注: 更新百炼应用中心参数,返回是否发送成功,不代表是否生效。

updateVcrConfig

更新VCR配置

updateVcrConfig(vcrConfig: ARTCAICallAgentVcrConfig): boolean

参数详情:

参数

类型

必填

含义

vcrConfig

ARTCAICallAgentVcrConfig

vcr配置

返回值: boolean

备注: 更新VCR配置,返回是否发送成功,不代表是否生效。

updateAsrMaxSilence

更新语音断句检测阈值

updateAsrMaxSilence(duration: number): boolean

参数详情:

参数

类型

必填

含义

duration

number

时长(毫秒)

返回值: boolean

备注: 静音时长超过该阈值会被认为断句,参数范围 200ms~1200ms,返回是否发送成功,不代表是否生效。

updateTtsSpeechRate

更新TTS播报语速

updateTtsSpeechRate(rate: number): boolean

参数详情:

参数

类型

必填

含义

rate

number

语速

返回值: boolean

备注: 支持所有TTS类型,取值范围为[0.5, 2.0],返回是否发送成功,不代表是否生效。

queryCurrentAgentState

查询当前的智能体状态

queryCurrentAgentState(): boolean

返回值: boolean

备注: 发送成功后,会触发onAgentStateChanged事件,返回是否发送成功。

startVisionCustomCapture

Vision智能体,开始启动自定义截帧

startVisionCustomCapture(req: ARTCAICallVisionCustomCaptureRequest): boolean

参数详情:

参数

类型

必填

含义

req

ARTCAICallVisionCustomCaptureRequest

自定义请求

返回值: boolean

备注: 启动后,无法通过语音与智能体通话,需要在接通后调用,返回是否成功。

stopVisionCustomCapture

Vision智能体,结束自定义截帧

stopVisionCustomCapture(): boolean

返回值: boolean

备注: 需要在接通后调用,返回是否成功。

enableVoiceInterrupt

开启/关闭智能打断

enableVoiceInterrupt(enable: boolean): boolean

参数详情:

参数

类型

必填

含义

enable

boolean

是否开启

返回值: boolean

备注: 需要在接通后调用,返回是否成功。

switchVoiceId

切换音色

switchVoiceId(voiceId: string): boolean

参数详情:

参数

类型

必填

含义

voiceId

string

音色id

返回值: boolean

备注: 切换智能体音色,返回是否成功。

enableSpeaker

开启/关闭扬声器

enableSpeaker(enable: boolean): boolean

参数详情:

参数

类型

必填

含义

enable

boolean

是否开启

返回值: boolean

备注: 开启/关闭扬声器,返回是否成功。

muteAgentAudioPlaying

停止/恢复智能体音频流的播放

muteAgentAudioPlaying(mute: boolean): boolean

参数详情:

参数

类型

必填

含义

mute

boolean

是否静音

返回值: boolean

备注: 停止/恢复智能体音频流的播放,返回是否成功。

muteMicrophone

静音/取消禁音麦克风

muteMicrophone(mute: boolean): boolean

参数详情:

参数

类型

必填

含义

mute

boolean

是否静音

返回值: boolean

备注: 静音/取消禁音麦克风,返回是否成功。

muteLocalCamera

关闭/取消关闭摄像头

muteLocalCamera(mute: boolean): boolean

参数详情:

参数

类型

必填

含义

mute

boolean

是否关闭

返回值: boolean

备注: VisionAgent/VideoAgent时有效,关闭/取消关闭摄像头,返回是否成功。

switchCamera

切换前后摄像头

switchCamera(): boolean

返回值: boolean

备注: VisionAgent/VideoAgent时有效,切换前后摄像头,返回是否成功。

enablePushToTalk

开启/关闭对讲机模式

enablePushToTalk(enable: boolean): boolean

参数详情:

参数

类型

必填

含义

enable

boolean

是否开启

返回值: boolean

备注: 对讲机模式下,只有在finishPushToTalk被调用后,智能体才会播报结果,返回是否成功。

startPushToTalk

开始讲话

startPushToTalk(): boolean

返回值: boolean

备注: 开始讲话,返回是否成功。

finishPushToTalk

结束讲话

finishPushToTalk(): boolean

返回值: boolean

备注: 结束讲话,返回是否成功。

cancelPushToTalk

取消这次讲话

cancelPushToTalk(): boolean

返回值: boolean

备注: 取消这次讲话,返回是否成功。

useVoiceprint

当前断句是否使用声纹降噪识别

useVoiceprint(isUse: boolean): boolean

参数详情:

参数

类型

必填

含义

isUse

boolean

是否启动

返回值: boolean

备注: 邀测阶段,如需体验,请联系相关人员,返回是否成功。

clearVoiceprint

清除当前声纹数据

clearVoiceprint(): boolean

返回值: boolean

备注: 邀测阶段,如需体验,请联系相关人员,返回是否成功。

createRTCEngine

创建RTC引擎

createRTCEngine(): void

返回值: void

备注: 有需要可以调用该接口,提前创建RTC引擎,否则会在Call接口被调用后创建。

getRTCInstance

获取RTC引擎

getRTCInstance(): object | undefined

返回值: object | undefined

备注: 获取RTC引擎实例。

destroy

释放资源

destroy(): void

返回值: void

备注: 释放资源。

parseShareAgentCall

解析一个分享的智能体信息

parseShareAgentCall(shareInfo: string): Promise<ARTCAICallAgentShareConfig | undefined>

参数详情:

参数

类型

必填

含义

shareInfo

string

从控制台生成的分享内容

返回值: Promise<ARTCAICallAgentShareConfig | undefined>

备注: 解析分享的智能体信息,返回分享出来的智能体配置。

generateShareAgentCall

启动一个分享的智能体通话

generateShareAgentCall(shareConfig: ARTCAICallAgentShareConfig, userId: string): Promise<ARTCAICallAgentShareGenerateResult | undefined>

参数详情:

参数

类型

必填

含义

shareConfig

ARTCAICallAgentShareConfig

分享出来的智能体配置

userId

string

当前的用户Id

返回值: Promise<ARTCAICallAgentShareGenerateResult | undefined>

备注: 启动一个分享的智能体通话。

ARTCAICallEngineListener详情

onErrorOccurs

发生了错误

onErrorOccurs?(code: ARTCAICallErrorCode): void

参数详情:

参数

类型

必填

含义

code

ARTCAICallErrorCode

错误码

返回值: void

备注: 当发生错误时触发。

onConnectionStatusChange

通话过程中链接状态发生变化

onConnectionStatusChange?(status: ARTCAICallConnectionStatus, reason: number): void

参数详情:

参数

类型

必填

含义

status

ARTCAICallConnectionStatus

状态码

reason

number

原因,12表示网络链接中断

返回值: void

备注: 连接状态发生变化时触发。

onCallBegin

通话开始(入会)

onCallBegin?(): void

返回值: void

备注: 通话开始时触发。

onCallEnd

通话结束(离会)

onCallEnd?(): void

返回值: void

备注: 通话结束时触发。

onAgentStarted

通话智能体已启动

onAgentStarted?(): void

返回值: void

备注: 智能体启动时触发。

onRTCEngineCreated

RTC引擎被成功创建,可以在这个回调里调用getRTCInstance获取到rtc引擎实例

onRTCEngineCreated?(): void

返回值: void

备注: RTC引擎创建完成时触发。

onAgentDataChannelAvailable

智能体消息通道可用回调,需要等回调触发后,才可以给智能体发送消息

onAgentDataChannelAvailable?(): void

返回值: void

备注: 智能体数据通道可用时触发,需要等待回调触发后才能向智能体发送消息。

onAgentVideoAvailable

智能体视频是否可用(推流)

onAgentVideoAvailable?(available: boolean): void

参数详情:

参数

类型

必填

含义

available

boolean

是否可用

返回值: void

备注: 智能体视频流可用性变化时触发。

onAgentAudioAvailable

智能体音频是否可用(推流)

onAgentAudioAvailable?(available: boolean): void

参数详情:

参数

类型

必填

含义

available

boolean

是否可用

返回值: void

备注: 智能体音频流可用性变化时触发。

onAgentAvatarFirstFrameDrawn

智能体数字人首帧渲染

onAgentAvatarFirstFrameDrawn?(): void

返回值: void

备注: 智能体数字人首帧渲染完成后触发。

onAgentStateChanged

智能体状态改变

onAgentStateChanged?(state: ARTCAICallAgentState): void

参数详情:

参数

类型

必填

含义

state

ARTCAICallAgentState

当前智能体状态

返回值: void

备注: 智能体状态改变时触发。

onNetworkStatusChanged

网络状态改变

onNetworkStatusChanged?(uid: string, quality: ARTCAICallNetworkQuality): void

参数详情:

参数

类型

必填

含义

uid

string

当前讲话人的Id

quality

ARTCAICallNetworkQuality

网络质量

返回值: void

备注: 网络状态改变时触发。

onVoiceVolumeChanged

音量变化通知

onVoiceVolumeChanged?(uid: string, volume: number): void

参数详情:

参数

类型

必填

含义

uid

string

当前讲话人的uid

volume

number

音量[0-255]

返回值: void

备注: 音量变化时触发。

onUserSubtitleNotify

用户提问被智能体识别结果的通知

onUserSubtitleNotify?(data: ARTCAICallUserSubtitleResult): void

参数详情:

参数

类型

必填

含义

data

ARTCAICallUserSubtitleResult

用户字幕通知数据

返回值: void

备注: 用户提问被智能体识别时触发。

onVoiceAgentSubtitleNotify

智能体回答结果通知

onVoiceAgentSubtitleNotify?(data: ARTCAICallAgentSubtitleResult): void

参数详情:

参数

类型

必填

含义

data

ARTCAICallAgentSubtitleResult

智能体字幕通知数据

返回值: void

备注: 智能体回答结果通知时触发。

onAgentEmotionNotify

智能体情绪结果通知

onAgentEmotionNotify?(emotion: string, userAsrSentenceId: number): void

参数详情:

参数

类型

必填

含义

emotion

string

情绪标签,例如:neutral\happy\angry\sad 等

userAsrSentenceId

number

回答用户问题的句子ID

返回值: void

备注: 智能体情绪结果通知时触发。

onVoiceIdChanged

当前通话的音色发生了改变

onVoiceIdChanged?(voiceId: string): void

参数详情:

参数

类型

必填

含义

voiceId

string

当前音色Id

返回值: void

备注: 通话音色改变时触发。

onVoiceInterrupted

当前通话的语音打断是否启用

onVoiceInterrupted?(enable: boolean): void

参数详情:

参数

类型

必填

含义

enable

boolean

是否启用

返回值: void

备注: 语音打断状态变化时触发。

onSpeakingInterrupted

智能体当前讲话被打断

onSpeakingInterrupted?(reason: ARTCAICallSpeakingInterruptedReason): void

参数详情:

参数

类型

必填

含义

reason

ARTCAICallSpeakingInterruptedReason

原因

返回值: void

备注: 智能体讲话被打断时触发。

onPushToTalk

当前通话的对讲机模式是否启用

onPushToTalk?(enable: boolean): void

参数详情:

参数

类型

必填

含义

enable

boolean

是否启用

返回值: void

备注: 对讲机模式状态变化时触发。

onVoiceprint

当前通话的声纹降噪是否启用

onVoiceprint?(enable: boolean): void

参数详情:

参数

类型

必填

含义

enable

boolean

是否启用

返回值: void

备注: 声纹降噪功能状态变化时触发(邀测阶段)。

onVoiceprintCleared

当前通话的声纹数据被清除

onVoiceprintCleared?(): void

返回值: void

备注: 声纹数据被清除时触发(邀测阶段)。

onAgentWillLeave

当前智能体即将离开(结束当前通话)

onAgentWillLeave?(reason: number, message: string): void

参数详情:

参数

类型

必填

含义

reason

number

原因:2001(闲时退出) , 2002(真人接管结束) 0(其他)

message

string

描述原因

返回值: void

备注: 智能体即将离开时触发。

onReceivedAgentCustomMessage

收到当前智能体发过来的自定义消息

onReceivedAgentCustomMessage?(data: Record<string, RecordValueType> | undefined): void

参数详情:

参数

类型

必填

含义

data

Record<string, RecordValueType>

消息内容

返回值: void

备注: 收到智能体自定义消息时触发。

onReceivedAgentVcrResult

收到当前智能体发过来VCR结果

onReceivedAgentVcrResult?(result: ARTCAICallAgentVcrResult): void

参数详情:

参数

类型

必填

含义

result

ARTCAICallAgentVcrResult

vcr结果

返回值: void

备注: 收到智能体VCR结果时触发。

onHumanTakeoverWillStart

当真人即将接管当前智能体

onHumanTakeoverWillStart?(takeoverUid: string, takeoverMode: number): void

参数详情:

参数

类型

必填

含义

takeoverUid

string

真人uid

takeoverMode

number

1:表示使用真人音色输出;0:表示使用智能体音色输出

返回值: void

备注: 真人即将接管智能体时触发。

onHumanTakeoverConnected

当真人接管已经接通

onHumanTakeoverConnected?(takeoverUid: string): void

参数详情:

参数

类型

必填

含义

takeoverUid

string

真人uid

返回值: void

备注: 真人接管连接成功时触发。

onAudioDelayInfo

音频回环延迟

onAudioDelayInfo?(sentenceId: number, delayMs: number): void

参数详情:

参数

类型

必填

含义

sentenceId

number

语句ID

delayMs

number

延迟(毫秒)

返回值: void

备注: 音频回环延迟信息时触发。

onVisionCustomCapture

当前Vision通话是否启用了自定义截帧模式

onVisionCustomCapture?(enable: boolean): void

参数详情:

参数

类型

必填

含义

enable

boolean

是否启用

返回值: void

备注: Vision通话自定义截帧模式状态变化时触发。

onLLMReplyCompleted

当前通话中,LLM回答完毕

onLLMReplyCompleted?(text: string, userAsrSentenceId: number): void

参数详情:

参数

类型

必填

含义

text

string

LLM输出的文本

userAsrSentenceId

number

回答用户问题的句子ID

返回值: void

备注: LLM回答完成时触发。

onAudioAccompanyStateChanged

当前通话中,如果通过RTC Instance进行播放音乐伴奏,则会触发该播放回调

onAudioAccompanyStateChanged?(state: ARTCAICallAudioAccompanyState, errorCode: ARTCAICallAudioAccompanyErrorCode): void

参数详情:

参数

类型

必填

含义

state

ARTCAICallAudioAccompanyState

播放状态

errorCode

ARTCAICallAudioAccompanyErrorCode

播放错误

返回值: void

备注: 音频伴奏状态变化时触发。

ARTCAICallEngineFactory详情

createEngine

创建默认的AICallEngine

public static createEngine(context : common.Context): ARTCAICallEngineInterface

参数详情:

参数

类型

必填

含义

context

common.Context

应用上下文

返回值: ARTCAICallEngineInterface

备注: 创建并返回一个AI通话引擎实例。