智能语音输入查询天气app
今日科技快讯昨日乐视官方称:贾跃亭已辞去乐视网董事长以及其它相关职务,并退出董事会。同时,出任乐视汽车生态全球董事长。另外,贾跃亭本人通过微信公众号发声称,会承担全部的责任,辞去众多职务是为了全力以赴实现FF91最快量产上市,他承诺会把金融机构、供应商以及任何的欠款全部还上。
作者简介明天就是周末了,提前祝大家周末愉快!
本篇来自 farinaZhang的投稿,介绍了基于第三方SDK开发一款语音查询天气APP,希望对大家有所帮助。
farinaZhang的博客地址:
http://blog.csdn.net/zhangxy0605
正文现在智能家居越来越普及,智能语音输入也成为一项很方便的工具,可以告别传统的文字输入,可以根据输入的内容,完成相应的对话及功能。OLAMI 人工智能开放平台让你只需通过几个简单的步骤和代码,就能让你的应用程序或设备更加智能更加人性化,并提供趋近完美的用户体验,OLAMI介绍:
https://cn.olami.ai/wiki/?mp=api_nlu&content=api_nlu2.html
本文章就是介绍怎么使用OLAMI人工智能开放平台(以下简称为OLAMI开放平台)及sdk开发出一个简单的智能语音输入天气app。
下载sdk
要使用OLAMI人工智能开发平台首先需要下载相应的sdk,如图将下载下来的voicesdk.jar放在jniLibs下,将libspeex.so放在jniLibs下的armeabi下。
Voicesdk.jar是用来语音录音,识别语音结果,然后发送给OLAMI平台进行解析,返回相应的json格式结果,供用户解析。
文件结构
imain文件夹为主要的语音实现功能和主界面,其他文件目录为获取天气相关数据的和显示相关card的文件夹。
代码详解
WeatherMainActivity.Java 主要初始化页面及各个变量,创建Handler以进行消息传递。创建Task查询天气并刷新界面显示。
VoiceSdkService.java初始化智能语音识别相关参数,详细可参考
https://cn.olami.ai/wiki/?mp=sdk&content=sdk/android/reference.html
onResult函数为OLAMI开放平台结合用户编写的grammar返回的json结果,可以根据实际需求进行解析和显示。
如:本app中用户语音输入“上海的天气”,对应的在OLAMI开发品台上的Grammar为:
返回的json结果为
1.modifier:chacitytianqi对应grammar中
表示这句语法被匹配上后要送出去的意图。同一应用中每个grammar的modifier应该都是唯一的不同的,已变用户区分输入的语句。
2. Type:sample对应OLAMI开发平台上对应的模块名。
3.slots:
表示现在输入的是上海,当查询“北京的天气”时,value值为“北京”,slots根据编写的grammar,可以有多个json成员。如:
4. status:ok表示正常返回Json数据。
如何创建grammar及grammar中用的slots和rule详细解析可参考:
https://cn.olami.ai/wiki/?mp=nli&content=nli2.html
该app目前支持的查询范围
查看各个城市的天气,如:上海的天气,北京的天气,显示所有天气数据
查看空气质量,如:空气质量,上海的空气质量,等。画面只显示空气质量数据card。
查看一周天气,如:明天的天气,一周的天气,一周北京的天气,等。画面只显示预报一周的card。
查看今天的天气,如:今天的天气,今天上海的天气。画面只显示一天天气的card
查看指数,如:穿衣指数,空气指数、天气指数。画面只显示指数card
天气功能及画面参考开源项目
https://github.com/farinaZhang/open_weather
更多每天学习累了,看些搞笑的段子放松一下吧。关注最具娱乐精神的公众号,每天都有好心情。
如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。
欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号: