CB5654开发板之读取云端返回值
适用于平头哥CB5654智能语音开发板
文章目录
- 一、读取云端的返回值
- 二、原理
- 三、操作
一、读取云端的返回值
CB5654开发板如何读取云端的返回值
我们最开始拿到的官网提供的例程,绑定了几个云端的功能
二、原理
首先是整体看一下云端返回参数:
[ 981.520858][D][nlpmit ]Enter aui_nlp_proc_mit
<<<<
{"header":{"namespace":"VirtualAssistant","name":"RecognitionCompleted","status":20000000,"message_id":"dad4c26b55ab4bd790c44db1c2229d84","task_id":"18bc5a60da15b863a38471dc3adb80bc","status_text":"Gateway:SUCCESS:Success."},"payload":{"result":"声音调小一点","confidence":0.43344905972480774}}
>>>>
[ 981.552902][D][nlpmit ]ASR Result:
<<<<声音调小一点>>>>
[ 981.559788][D][nlptxt ]Enter aui_nlp_proc_textcmd
[ 981.564669][D][nlptxt ]process_textcmd:0
[ 981.568755][W][nlptxt ]unknown cmd
[ 981.592052][D][MIT_ASR ]call mit_asr_event_cb(>>>>event: 14(EventDialogResult)<<<<) [start]
[ 981.601274][D][nlpmit ]Enter aui_nlp_proc_mit
<<<<
{"header":{"namespace":"VirtualAssistant","name":"DialogResultGenerated","status":20000000,"message_id":"cc3b3fdc84ec485bbd95bfa95c39ba25","task_id":"18bc5a60da15b863a38471dc3adb80bc","status_text":"Gateway:SUCCESS:Success."},
"payload":{"display_text":"好的","spoken_text":"好的",
"action":"Action://audio/set_volumn","action_params":[{"name":"sound","value":"down"}],"semantics":[{"score":1,"slots":{"degree":[{"raw_value":"调小","norm_value":"down",
"score":0.0,"offset":2,"count":2}]},"domain":"general_command","source":"jsgf","intent":"set_volumn"}]}}
>>>>
[ 981.655911][D][nlpmit ]NLP Action:
<<<<Action://audio/set_volumn>>>>
[ 981.662667][D][nlpmit ]NLP Result:
<<<<好的>>>>
[ 981.667751][D][MIT_TTS ]Enter aui_cloud_req_tts
[ 981.685123][D][MIT_TTS ]TTSStart
[ 981.738402][D][media ]set vol:80 type:0
[ 981.742422][I][sc5654 ]i2s o1 pdev=0x246d244
[ 981.746909][D][media ]set vol:80 type:1
[ 981.806021][D][MIT_ASR ]consumig thread end
[ 981.951292][D][media ]media1 stop
[ 981.959359][D][media ]state:1 type:1
[ 981.963339][D][media ]set vol:80 type:1
[ 981.967386][D][media ]play1 vol:80 vol_ret:0 url:fifo://mittts
[ 981.973452][I][player ]player_new, 132 enter.
[ 981.978019][I][player ]player_new, 171 leave. player = 0x260376c
[ 981.984272][I][player ]player_play, 501 enter. player = 0x260376c
[ 981.993930][I][player ]player_play, 518 leave. player = 0x260376c
[ 982.062094][D][MIT_TTS ]TTSEnd
可以看到重要的两个指令是:
{"header":{"namespace":"VirtualAssistant","name":"RecognitionCompleted","status":20000000,"message_id":"dad4c26b55ab4bd790c44db1c2229d84","task_id":"18bc5a60da15b863a38471dc3adb80bc","status_text":"Gateway:SUCCESS:Success."},"payload":{"result":"声音调小一点","confidence":0.43344905972480774}}
{"header":{"namespace":"VirtualAssistant","name":"DialogResultGenerated","status":20000000,"message_id":"cc3b3fdc84ec485bbd95bfa95c39ba25","task_id":"18bc5a60da15b863a38471dc3adb80bc","status_text":"Gateway:SUCCESS:Success."}, "payload":{"display_text":"好的","spoken_text":"好的","action":"Action://audio/set_volumn","action_params":[{"name":"sound","value":"down"}],"semantics":[{"score":1,"slots":{"degree":[{"raw_value":"调小","norm_value":"down","score":0.0,"offset":2,"count":2}]},"domain":"general_command","source":"jsgf","intent":"set_volumn"}]}}
一次交互会有asr和nlp两次事件,但两次事件的task id相同,如果asr处理是对该值赋值,说明要忽略后续的nlp处理。根据代码,我们可以看到,声音调整已经绑定了TTS后的执行动作 。
cJSON *action = cJSON_GetObjectItemByPath(js, "payload.action");if (cJSON_IsString(action)) {if (strcmp(action->valuestring, "Action://audio/set_volumn") == 0) { //判断字符串app_aui_cloud_tts_wait_finish(); //等待ret = aui_nlp_action_set_volume(js); //执行if (ret == 0) {done = 1;}
}
三、操作
我们需要完成的就是判断、等待 和执行 那如何让开发版唱歌呢? 对开发版说,我想听青花瓷,云端返回数据如下
<<<<
{"header":{"namespace":"VirtualAssistant","name":"DialogResultGenerated","status":20000000,"message_id":"84038aa745ad4aa2a8c885ba340868c2","task_id":"18bc5a60da156f7e12b711ad67dea253","status_text":"Gateway:SUCCESS:Success."},
"payload":{"spoken_text":"我要开始唱周杰伦的青花瓷了。",
"action_params":[{"name":"listenFile","value":"http://iot-cdn.tuling123.com/202005141738/54b8c0fa8fb682ec06c33ef6c998dbdb/media/audio/20180524/dd55dcb5a8ab432a82db85ad2207eb3d.mp3"}]}}
>>>>
[ 887.035706][D][nlpmit ]NLP Result:
<<<<我要开始唱周杰伦的青花瓷了。>>>>
关键还是如何对相应的指令绑定TTS后的执行动作。 可以看到唱歌返回的参数是
"action_params":[{"name":"listenFile","value":"http://iot-cdn.tuling123.com/202005141738/54b8c0fa8fb682ec06c33ef6c998dbdb/media/audio/20180524/dd55dcb5a8ab432a82db85ad2207eb3d.mp3"}]}}
那我们就要对动作进行判断,为listenFile,并且要播放青花瓷的URL (http://iot-cdn.tuling123.com/202005141738/54b8c0fa8fb682ec06c33ef6c998dbdb/media/audio/20180524/dd55dcb5a8ab432a82db85ad2207eb3d.mp3)
怎么播放,网络音乐
aui_player_play(MEDIA_MUSIC, "http://cop-image-prod.oss-cnhangzhou.aliyuncs.com/resource/undefined1577166283488/AudioTest1.mp3/", 1);
CB5654开发板之读取云端返回值相关推荐
- 平头哥智能语音CB5654开发板如何读取云端的返回值
CB5654开发板如何读取云端的返回值 我们最开始拿到的官网提供的例程,绑定了几个云端的功能 首先是整体看一下云端返回参数: [ 981.520858][D][nlpmit ]Enter aui_nl ...
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )
文章目录 前言 一.等待远程进程 mmap 函数执行完毕 二.从寄存器中获取进程返回值 三.博客资源 前言 前置博客 : [Android 逆向]Android 进程注入工具开发 ( 注入代码分析 | ...
- 【STC12C5A60S2】TOF250(IIC)基于51系列开发板的运用
目录 一.前言 二.硬件准备 二.软件准备 三.硬件接线图 四.例程源码 五.烧录说明 5.1 烧录接线示意图 5.2 烧录动态图 六.结果输出 一.前言 此片文章主要介绍如果通过51系列开发板来读取 ...
- 【STC12C5A60S2】TOF250(TTL)基于51系列开发板的运用
目录 一.前言 二.硬件准备 二.软件准备 三.硬件接线图 四.例程源码 五.烧录说明 5.1 烧录接线示意图 5.2 烧录动态图 六.结果输出 一.前言 此片文章主要介绍如果通过51系列开发板来读取 ...
- 2.23 haas506 2.0开发教程 - KeyPad - 矩阵键盘(仅支持M320开发板)
haas506 2.0开发教程 - KeyPad - 矩阵键盘 矩阵键盘 320矩阵键盘连线 案例说明 测试代码 功能测试 class - KeyPad keypad.init() - 初始化keyp ...
- read-sequence的返回值
2019独角兽企业重金招聘Python工程师标准>>> 当处理二进制流时,我见过几次这种用法: (let ((elements-read (read-sequence buffer ...
- python flask 返回值 状态码 设置
在使用Flask以及插件Flask-RESTful来开发RESTful API时,返回值和状态码的设计是非常重要的一个部分.对于初学者,在不使用response或errorhandler()等装饰器时 ...
- 【STM32F103ZE】TOF250(TTL)基于STM32系列开发板的运用
目录 @[TOC](目录) 一.前言 二.硬件准备 二.软件准备 三.硬件接线图 四.例程源码 五.烧录说明 5.1 烧录接线示意图 5.2 烧录动态图 六.结果输出 一.前言 此片文章主要介绍如果通 ...
- linux通过以太网线上网,开发板通过以太网卡的互联网连接尝试
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前言 我在Ubuntu虚拟机的开发环境中成功编译了符合iTop-4412开发板的嵌入式Linux内核的boa执行文档,放 ...
最新文章
- 电子产品如何使用IAP方式升级程序
- 3.7 PPP协议和HDLC协议
- 网易云信+妙克:从零到标杆的在线音视频音乐教学之路
- Teradata QueryGrid整合最佳分析技术 拓展客户选择空间
- java 怎么页面授权访问_Java调用Linkedin接口API之:获取授权
- Linux添加网站后无法显示,Linux:SElinux导致网站无法访问
- 高斯滤波器是低通还是高通_经典模拟滤波器仍值得研究吗?
- Mac程序开机启动项优化
- 曲线积分与曲面积分的计算机应用,曲线积分与曲面积分(解题方法归纳).doc
- 使用bat一键修改ip地址(包括静态、动态ip)
- 如何解决Unity高版本使用EasyTouch5的问题
- GCN与图谱理论(三):图的谱分析与图傅里叶变换
- 转:优秀的人,往往都具备这5种视角
- 计算机任务驱动法教学应用,“任务驱动法”在职教计算机教学中的应用
- matlab对摄像头实时运动目标检测,基于Matlab实时运动目标跟踪检测系统
- 【中秋佳节】CSDN卷王们内卷--中秋节要不要休息呢?
- 下载IE6安装文件到本地的方法
- html5怎么实现雨滴效果,雨滴效果——HTML5之特效
- require和import的区别?
- idea+exe4j/launch4j/jsmoonth的打包exe+Inno Setup