快速上手
概述
ABC-Robot系统的整体交互逻辑:端上面对用户的各种交互或操作,会以“事件”的形式发送到ABC-Robot云端服务,云端服务会根据事件生成响应指令(Directive),将指令下发到客户端。客户端需要根据这些指令,来执行相应的动作。
语音唤醒核心流程
唤醒(WakeUp)是语音交互场景中常用的交互方式。用户通过说出唤醒词向机器人发出通知。机器人在收到唤醒词后会通过唤醒事件回调通知开发者,开发者可以在回调中实现自己的业务逻辑。
唤醒场景操作流程:
- 机器人摆放在开放大厅场景中,无人交互时,会关闭语音识别功能,以减少无意义的信息输入和网络交互;
- 当机器人听到用户说出唤醒关键词(例:小度小度),会开启语音识别,正式进入语音可交互状态。与用户进行语音对话;
- 在适当的时机下(例如用户主动退出,或者长时间没有新的语音对话输入),机器人会关闭语音识别,退出语音可交互状态。回到步骤1,等待下一次唤醒。
操作步骤如下:
语音唤醒注册监听回调
调用RobotSDKEngine.getInstance().registerSpeechListener(SpeechCallBack listener)
方法,传入语音交互监听器RobotSDKEngine.SpeechCallBack
的接口实现。
开启唤醒词监听
调用RobotSDKEngine.getInstance().startWP()
开启唤醒监听,此时麦克风打开,设备开始接收用户语音输入。开发者通过在语音唤醒注册监听回调中注册的回调来获得唤醒相关事件回调。
资源释放
- 在需要关闭语音识别状态时,开发者需要调用
RobotSDKEngine.getInstance().stopWP()
- 在需要停止回调监听时,开发者需要调用
RobotSDKEngine.getInstance().unRegisterSpeechListener(SpeechCallBack callBack)
来移除相应的监听回调。
语音对话核心流程
语音对话流程举例如下:
- 机器人开启语音识别,用户向机器人发起对话,麦克风阵列开始接受用户的语音输入数据;
- 由 SDK 的 ASR 能力将语音输入转成对应的文字输入(Text),并通过语音监听回调通知给开发者;
- 同时 SDK 利用云端的自然语言理解(NLU)能力将分析出用户的文字输入(Text)对应的意图,云端中控会生成响应此意图的指令(Directive),通过指令回调将指令通知给开发者。
实现一个语音对话流程的核心步骤如下:
语音对话注册监听回调
- 调用
RobotSDKEngine.getInstance().addDirectiveListener()
方法,根据产品业务场景传入意图识别指令监听器。目前SDK内置了六种指令监听接口,开发者可以根据自己的业务场景进行对应实现。详见指令回调处理。 - 调用
RobotSDKEngine.getInstance().registerSpeechListener(SpeechCallBack listener)
方法,传入语音对话事件监听器RobotSDKEngine.SpeechCallBack
的接口实现。
开启语音识别
调用RobotSDKEngine.getInstance().startListening()
开启ASR语音识别,此时麦克风打开,设备开始接收用户语音输入。开发者通过在语音对话注册监听回调中注册的回调来获得语音输入的ASR识别返回,并进行意图识别指令处理。
资源释放
- 在需要关闭语音识别状态时,开发者需要调用
RobotSDKEngine.getInstance().stopListening()
。 -
在需要停止回调监听时,开发者需要调用
RobotSDKEngine.getInstance().unRegisterSpeechListener(SpeechCallBack callBack)
RobotSDKEngine.getInstance().removeDirectiveListener(IDirectiveListener listener)
来移除相应的监听回调。
人脸识别核心流程
人脸识别的常用场景举例:
- 开发者在合适的时机调起人脸识别,机器人开启摄像头开始接受图像数据输入;
- 由 SDK 的人脸检测能力从视频流中检测到含有完整人脸的图片帧,并对该人脸进行人脸识别;
- 如果该人脸已在人脸库注册,则回传完整的身份信息,否则则通知开发者这是一张未经注册的人脸;
实现一个人脸识别流程的核心步骤如下:
人脸识别注册监听回调
- 调用
RobotSDKEngine.getInstance().addDirectiveListener()
方法,根据产品业务场景传入意图识别指令监听器。目前SDK内置了六种指令监听接口,开发者可以根据自己的业务场景进行对应实现。详见指令回调处理。 - 调用
RobotSDKEngine.getInstance().registerFaceListener(RecognizeListener listener)
方法,传入人脸识别事件监听器RobotSDKEngine.RecognizeListener
的接口实现。
开始人脸识别
调用RobotSDKEngine.getInstance().startFaceRecognize(SurfaceView surfaceView, @FaceTaskType int taskType, CameraConfig config)
开始人脸识别,开发者传入一个用于展示摄像头镜像画面的SurfaceView实例,SDK会开启摄像头自动检测相机帧流中包含的人脸并进行识别。
资源释放
- 在需要停止人脸识别时,开发者需要调用
RobotSDKEngine.getInstance().stopTracking()
。 -
在需要停止回调监听时,开发者需要调用
RobotSDKEngine.getInstance().unRegisterFaceListener()
RobotSDKEngine.getInstance().removeDirectiveListener(IDirectiveListener listener)
来移除相应的监听回调。