android ai用法,使用AIUIAgent

## 使用AIUIAgent

AIUIAgent仅对已开通AIUI功能的APPID可下载使用,未开通的应用,可通过SpeechUnderstander使用语义理解。

创建AIUIAgent实例并开启服务,AIUIAgent需要使用VAD资源,请把 res/vad 目录下的资源文件,拷到由AIUI参数中vad的res_path参数(参考附录说明)指定的工程 assets/res/vad 目录下。

~~~

mAIUIAgent = AIUIAgent.createAgent( this, aiuiParams, mAIUIListener );

AIUIMessage startMsg = new AIUIMessage(AIUIConstant.CMD_START

, 0

, 0

, null

, null );

mAIUIAgent.sendMessage( startMsg );

~~~

aiuiParams ,AIUIConsatnt.CMD_START 分别为AIUI参数和消息值,参考附录的相应说明。服务开启后,服务的状态和结果消息将通过 AIUIListener 返回,具体事件说明请参考附录。关于AIUIAgent类的更多说明,参考《AIUI Service Kit Manual.html》。

### 文本语义理解示例

通过sendMessage发送要进行语义理解的文本数据,并通过AIUIListener的回调,获取结果或错误信息。

~~~

// 先发送唤醒消息,改变AIUI内部状态,只有唤醒状态才能接收语音输入

if( AIUIConstant.STATE_WORKING != this.mAIUIState ){

AIUIMessage wakeupMsg = new AIUIMessage(AIUIConstant.CMD_WAKEUP

, 0

, 0

, ""

, null);

mAIUIAgent.sendMessage(wakeupMsg);

}

String params = "data_type=text";

byte[] textData = "今天合肥的天气".getBytes();

AIUIMessage msg = new AIUIMessage(AIUIConstant.CMD_WRITE

, 0

, 0

, params

, textData);

mAIUIAgent.sendMessage(msg);

~~~

### 语音语义理解示例

通过sendMessage发送消息,设置AIUI服务为已唤醒状态,再发送开始录音消息,通过麦克风录入音频,并通过AIUIListener的回调,获取结果或错误信息。

~~~

// 先发送唤醒消息,改变AIUI内部状态,只有唤醒状态才能接收语音输入

if( AIUIConstant.STATE_WORKING != this.mAIUIState ){

AIUIMessage wakeupMsg = new AIUIMessage(AIUIConstant.CMD_WAKEUP

, 0

, 0

, ""

, null);

mAIUIAgent.sendMessage(wakeupMsg);

}

// 打开AIUI内部录音机,开始录音

String params = "sample_rate=16000,data_type=audio";

AIUIMessage writeMsg = new AIUIMessage( AIUIConstant.CMD_START_RECORD

, 0

, 0

, params

, null );

mAIUIAgent.sendMessage(writeMsg);

~~~

返回的语义结果,参考[语义结果说明文档](http://aiui.xfyun.cn/info/protocol)。

### 更新词典

AIUIAgent提供了上传词典的功能。如在线听写词典章节所述,更新词典只在对应的 LANGUAGE,ACCENT或 “ent”下生效,而AIUIAgent在进行语音语义理解时使用的默认参数值,可能与听写的不一样,因此,直接通过AIUIAgent更新词典,可以保证其在使用AIUIAgent 进行语音语义会话时生效。

~~~

// 先发送唤醒消息,改变AIUI内部状态,只有唤醒状态才能接收语音输入

if( AIUIConstant.STATE_WORKING != this.mAIUIState ){

AIUIMessage wakeupMsg = new AIUIMessage(AIUIConstant.CMD_WAKEUP

, 0

, 0

, ""

, null);

mAIUIAgent.sendMessage(wakeupMsg);

}

AIUIMessage msg = new AIUIMessage(AIUIConstant.CMD_UPLOAD_LEXICON

, 0

, 0

, params

, null);

mAIUIAgent.sendMessage(msg);

~~~

其中,params 为含词典内容JSON数据,参考附录对 CMD_UPLOAD_LEXICON消息的说明。上传成功与否的状态,通过AIUIListener的事件获取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值