如何用Eclipse做一个手机语音助手哪个好用?

易语言制作一个手机语音助手,怎么做,求大神告诉下_百度知道
易语言制作一个手机语音助手,怎么做,求大神告诉下
我有更好的答案
易语言暂不能直接开发win32平台以外的程序(虽然官网说支持Linux 但能实现的也是寥寥无几) 如需开发手机程序 可参考同类产品E4A 如想深入开发 可学习Java语言 望采纳
采纳率:85%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。打造Android的中文Siri语音助手(一)——小I机器人的接口
By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处
Iphone4S的Siri让人眼前一亮,网上出现了无数调戏Siri的视频。真是让android用户们心痒不已。好在随后android阵营中的高手迅速反击,推出了Iris。悲剧的是Iris仅支持英文,让我们这些英语烂的无比的人调戏Iris不成,反被它给调戏了。真是郁闷的不行啊~_~
所以我打算使用android的资源自己打造一个中文版的Siri,让我们用中文随意的来调戏它。(我自己做了一个简单的,哈哈,放在优亿市场里,有兴趣的童鞋可以去体验下http://www.eoemarket.com/apps/61634)
&& 首先,我们来分析Siri的构成,应该大致可以分为3个组成部份:语音识别、自然语言处理、语音输出。对于语音识别,我们可以使用google的语音识别API进行语音的识别,讲语音转成文字。语音输出,其实就是使用TTS,讲文字进行语音合成播放出来,这个android也是有接口可以利用的。真正核心的是自然语言识别处理这个部分,Siri功能的好坏判断很大一部分是取决于此的,这需要很大一个来维持运转,在本地是无法实现的,即使iphone的Siri也是讲语音识别的指令语音上传到Apple的服务器上去解析后返回。由于apple的接口不开放,所以我们无法使用他们的接口,好在世界上拥有这样服务器的不止苹果一家,android上的Iris利用的就是http://start.csail.mit.edu/(自然语音问答)这个网站提供的接口以及一个叫做cleverbot的一款智能聊天平台http://www.cleverbot.com/这个聊天网站是支持汉语的,不过,只是支持拼音输入&&汗啊。
&& 所以我们的核心任务就是寻找一个支持中文汉字输入的问答系统。经过在网络上长时间的搜索,结果发现&&很遗憾,没有找到(PS:如果有谁找到了比较好的网址,麻烦共享,告诉我一声),不过对于我们调戏Siri的这个需求,我找到了一个较好的替代品&&聊天机器人.http://www.xiaoi.com/widget/1007/小i智能聊天机器人。
&& 经过短时间的摸索,我实现了一个类来,初始化连接小i机器人的接口,发送数据以及接受反馈。用到的接口地址如下:
&& private String Webbot_Path = &http://webbot.xiaoi.com/engine/widget1007/webbot.js?encoding=utf-8&;&
private String Send_Path = &http://122.226.240.164/engine/widget1007/send.js?encoding=utf-8&&;&
private String Recv_Path = &http://122.226.240.164/engine/widget1007/recv.js?encoding=utf-8&&;&
&&&&& http连接上边的Webbot_Path,会反馈回来一些数据:
var L_IDS_SEND_MESSAGE_URL = &http://122.226.240.164/engine/widget1007/send.js?encoding=utf-8&&;&
var L_IDS_RECV_MESSAGE_URL = &http://122.226.240.164/engine/widget1007/recv.js?encoding=utf-8&&;&
var L_IDS_GET_RESOURCE_URL = &http://122.226.240.164/engine/widget1007/getres.do&;&
var __sessionId = &58194&;&
document.write(&&script src='http://122.226.240.164/engine/widget1007/_core.js?encoding=utf-8&'&&\/script&&);&
&&&&&& 反馈回来的数据包 括上边的发送和接收地址,以及一个sessionId,这个sessionId很重要,类似于一个key,用于后边的会话中。由于发送和接收地址是固定的,可以直接写死,但是sessionId是变动的,所以首先需要将它从反馈回来的茫茫数据中提取出来,我使用的是一个简单的正则表达式:
&&&&&& String strResult = EntityUtils.toString(httpResponse.getEntity());&
Pattern p = Pattern.compile(&sessionId = .(\\d+)&); //get sessionId&
Matcher m = p.matcher(strResult);&
if (m.find())&& mSessionId = m.group(1);&
得到sessionId后,我们就可以进行初始化了,初始化的过程很简单,将sessionId将填入下边格式中,发送到服务器去就行了。
String&& strSendJoin = Send_Path+ &SID=&+ mSessionId+&&USR=&+ mSessionId+ &&CMD=JOIN&r=&;&
初始化完成后,就可以使用下边的格式网址发送问题以及接收答案:
String strSend = Send_Path + &SID=& + mSessionId + &&USR=&+ mSessionId + &&CMD=CHAT&SIG=You&MSG=& + msg +&&FTN=&FTS=&FTC=&r=&;
String strRec = Recv_Path + &SID=& + mSessionId + &&USR=&+mSessionId + &&r=&;xiaoi.sendMsg(mQuestion);
&results = xiaoi.revMsg();
接收到的内容也是需要提取的,使用的是正则表达式:
&String& msgTmp = EntityUtils.toString(httpResponse.getEntity());&
Pattern p = Pattern.compile(&\&MSG\&:\&(.*?)\&&);&
Matcher m = p.matcher(msgTmp);&
&(m.find()) {&
&msg = m.group(1);&
&&& 通过上述的小i聊天机器人的接口,你便可以实现一个简单的,可以自由聊天对话的Siri。小I机器人还是很智能的,聊天的对话也很有意思,但是仅仅只能聊天,这个和iphone Siri的差距太大了,所以稍后我们将给它添加另外一个智能的大脑。
本文完整代码如下:
public class XiaoI {&
&&& private String Webbot_Path = &http://webbot.xiaoi.com/engine/widget1007/webbot.js?encoding=utf-8&;&
&&& private String Send_Path = &http://122.226.240.164/engine/widget1007/send.js?encoding=utf-8&&;&
&&& private String Recv_Path = &http://122.226.240.164/engine/widget1007/recv.js?encoding=utf-8&&;&
&&& private String mSessionId =&
&&& private HttpClient httpClient =&
&&& public boolean initialize() {&
&&&&&&& boolean success=&&&
&&&&&&& HttpParams httpParams = new BasicHttpParams();&
&&&&&&& HttpConnectionParams.setConnectionTimeout(httpParams, 30000);&
&&&&&&& HttpConnectionParams.setSoTimeout(httpParams, 30000);&
&&&&&&& httpClient = new DefaultHttpClient(httpParams);&
&&&&&&& try {&
&&&&&&&&&&& String strGetId = Webbot_P&
&&&&&&&&&&& HttpGet httpRequest = new HttpGet(strGetId);&
&&&&&&&&&&& HttpResponse httpResponse = httpClient.execute(httpRequest);&
&&&&&&&&&&& if (httpResponse.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK) {&
&&&&&&&&&&&&&& &String strResult = EntityUtils.toString(httpResponse&
&&&&&&&&&&&&&&&&&&&&&&& .getEntity());&
&&&&&&&&&&&&&&& Pattern p = Pattern.compile(&sessionId = .(\\d+)&); //get sessionId&
&&&&&&&&&&&&&&& Matcher m = p.matcher(strResult);&
&&&&&&&&&&&&&&& if (m.find()) {&
&&&&&&&&&&&&&&&&&&& mSessionId = m.group(1);&
&&&&&&&&&&&&&&&&&&& String strSendJoin = Send_Path + &SID=& + mSessionId&
&&&&&&&&&&&&&&&&&&&&&&&&&&& + &&USR=& + mSessionId + &&CMD=JOIN&r=&;&
&&&&&&&&&&&&&&&&&&& HttpGet httpRequest1 = new HttpGet(strSendJoin);&
&&&&&&&&&&&&&&&&&&& httpResponse = httpClient.execute(httpRequest1);&
&&&&&&&&&&&&&&&&&&& String strRevAsk = Recv_Path + &SID=& + mSessionId&
&&&&&&&&&&&&&&&&&&&&&&&&&&& + &&USR=& + mSessionId + &&r=&;&
&&&&&&&&&&&&&&&&&&& HttpGet httpRequest2 = new HttpGet(strRevAsk);&
&&&&&&&&&&&&&&&&&&& httpResponse = httpClient.execute(httpRequest2);&
&&&&&&&&&&&&&&&&&&& success=&
&&&&&&&&&&&&&&& }&
&&&&&&&&&&& }&
&&&&&&& } catch (ClientProtocolException e) {&
&&&&&&&&&&& e.printStackTrace();&
&&&&&&& } catch (IOException e) {&
&&&&&&&&&&& e.printStackTrace();&
&&&&&&& } catch (Exception e) {&
&&&&&&&&&&& e.printStackTrace();&
&&&&&&& }finally{&
&&&&&&&&&&&&
&& &&&&&}&
&&& public void sendMsg(String msg) {&
&&&&&&& String strTalksend = Send_Path + &SID=& + mSessionId + &&USR=&&
&&&&&&&&&&&&&&& + mSessionId + &&CMD=CHAT&SIG=You&MSG=& + msg&
&&&&&&&&&&&&&&& + &&FTN=&FTS=&FTC=&r=&;&
&&&&&&& HttpGet httpRequest = new HttpGet(strTalksend);&
&&&&&&& try {&
&&&&&&&&&&& httpClient.execute(httpRequest);&
&&&&&&& } catch (ClientProtocolException e) {&
&&&&&&&&&&& // TODO Auto-generated catch block&
&&&&&&&&&&& e.printStackTrace();&
&&&&&&& } catch (IOException e) {&
&&&&&&&&&&& // TODO Auto-generated catch block&
&&&&&&&&&&& e.printStackTrace();&
&&&&&&& }&
&&& public String revMsg() {&
&&&&&&& String strTalkRec = Recv_Path + &SID=& + mSessionId + &&USR=&&
&&&&&&&&& &&&&&&+ mSessionId + &&r=&;&
&&&&&&& HttpGet httpRequest = new HttpGet(strTalkRec);&
&&&&&&& String msg =&
&&&&&&& try {&
&&&&&&&&&&& HttpResponse httpResponse = httpClient.execute(httpRequest);&
&&&&&&&&&&& if (httpResponse.getStatusLine().getStatusCode() == 200) {&
&&&&&&&&&&&&&&& String msgTmp = EntityUtils.toString(httpResponse.getEntity());&
&&&&&&&&&&&&&&& Pattern p = Pattern.compile(&\&MSG\&:\&(.*?)\&&);&
&&&&&&&&&&&&&&& Matcher m = p.matcher(msgTmp);&
&&&&&&&&&&&&&&& if (m.find()) {&
&&&&&&&&&&&&&&&&&&& msg = m.group(1);&
&&&&&&&&&&&&&&& }&
&&&&&&&&&&& }&
&&&&&&& } catch (ClientProtocolException e) {&
&&&&&&&&&&& // TODO Auto-generated catch block&
&&&&&&&&&&& e.printStackTrace();&
&&&&&&& } catch (IOException e) {&
&&&&&&&&&&& // TODO Auto-generated catch block&
&&&&&&&&&&& e.printStackTrace();&
&&&&&&& }&
使用方法:XiaoI xiaoi = new XiaoI();
&&&&&&&&&&&&&&& xiaoi.initialize();
&&&&&&&&&&&&&& xiaoi.sendMsg(mQuestion);
&&&&&& results = xiaoi.revMsg();
由于发送接收耗时较多,最好放后台处理OPPO手机语音助手还能这么玩 有意思!
OPPO手机语音助手还能这么玩 有意思!
现在很多手机都配备了语音助手这一功能,不仅仅能帮助日常使用,无聊的时候还能来一场人机对话,调戏一下自己的手机。快拿起你的OPPO手机跟着小编一起来学习怎么用好语音助手吧。
操作方法:打开设置——语音助手——打开语音助手
长按HOME键即可打开语音助手——点击屏幕下方的话筒图标,即可和语音助手进行对话。
每次打开语音助手,你的手机都会对你说不同的问候语,是不是很贴心?
系统默认的语音助手是普通话,如果想要听一些特别的方言,也可以自行进行设置。说着东北话和台湾话的语音助手PK一次吧,看看谁先把谁带跑偏!
操作方法:语音助手——个性化语音——可选择自己喜欢的方言试听和下载
还不知道的朋友赶紧去体验一下吧,大家还有觉得OPPO手机有哪些实用的功能吗?快来告诉我吧!你说啥它就做啥,手机语音助手的x种玩法
我的图书馆
你说啥它就做啥,手机语音助手的x种玩法
随着苹果手机语音助手siri的推出,谷歌、微软国内各大厂商紧随其后,小冰、小娜、灵犀等一票语音助手到处蹦达,语音助手仿佛已经是智能手机的标配了。但是大多数人对语音助手依然不熟悉,那么,手机语音助手到底都能干啥呢?手机语音助手是什么搜索手机语音助手,一种语音控制程序。能够听到你说话并且进行语音判断,然后迅速作出回应。表现出来就是和你语音聊天,或者听你指令帮你操控智能设备。手机语音助手能干什么搜索基本所有的手机语音助手都具备一些基础功能,其他功能则各有差别: 联系人操作:打电话发短信 打开应用 找音乐:从本地音乐中找 网上搜索:翻译、查资料等 提醒功能:开会、闹钟、生日备忘等 查询:天气功能、股票查询、火车机票查询、定位及线路手机语音助手可能取代的职业搜索 秘书助理个人日程安排由手机语音助手来处理,高效、私密。 段子手除了不会翻白眼,手机语音助手的吐槽功能强大到没朋友!手机语音助手出现的意义搜索有人说,手机语音助手的出现就像当年的鼠标一样牛逼,从此你可以跟电脑对话(虽然它目前还比较渣),这是未来人工智能的基础啊。但事实上,手机语音助手目前依然无法取代大部分功能,无法和人连续性聊天,也经常做出无厘头的回答,它的功能目前还需要完善。手机语音助手的现实使用搜索苹果公司搞出siri的时候本来是想说:你看我们推出了多么厉害的东西,我们明明可以靠脸来吃饭,却还是那么努力,我们很牛逼吧?但是事实上,有多少人真的需要手机语音助手帮他们查天气、发短信、告诉他们怎么走吗?没有,大家还是会习惯性地打开相关软件查询。那么手机语音助手被用来干嘛呢?卖萌!咳咳,明明可以靠脸吃饭,那就继续靠脸吃饭吧。手机语音助手目前更像是领养的宠物,或是一个朋友,无聊的时候陪你唠唠嗑,排遣一下孤单寂寞冷。这个功能重要吗?很重要!没有人知道大都市里生活的人们有多孤独。调戏手机语音助手搜索嘿,如果你还是单身,不妨领养一只语音助手吧,也许能收获一份宝贵的感情呢!好吧,这是一个悲伤的故事……
TA的最新馆藏
喜欢该文的人也喜欢

我要回帖

更多关于 手机语音助手 的文章

 

随机推荐