找回密码
 立即注册

QQ登录

只需一步,快速开始

微信葡京娱乐网址号开发资源

关注:848

所属分类: 微信开发 微信葡京娱乐网址号开发资源

本版块为微信葡京娱乐网址号开发教程与葡京娱乐网址号开发相关技术分享板块,技术提问请到其他对应的问答板块发帖:)

[葡京娱乐网址号开发博客] 微信葡京娱乐网址号开发之语音识别和语义理解接口

[复制链接]
查看: 4379|回复: 4
最佳答案
0 

4

主题

4

帖子

86

积分

新人求带

积分
86
微信功能可谓强大,最近学习了下它的智能接口,顿时觉得微信特别高大上,居然能识别语音而且准确度还是挺高且还能理解语义。这次打算针对这个智能接口演示下通过语音查询天气预报的例子。

一 、 开启语音识别功能
20151205224132406.png


二   、处理语音消息

请注意,开通语音识别后,用户每次发送语音给葡京娱乐网址号时,微信会在推送的语音消息XML数据包中,增加一个Recongnition字段(注:由于客户端缓存,开发者开启或者关闭语音识别功能,对新关注者立刻生效,对已关注用户需要24小时生效。开发者可以重新关注此帐号进行测试)。开启语音识别后的语音XML数据包如下:
  1. <xml>
  2. <ToUserName><![CDATA[toUser]]></ToUserName>
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>
  4. <CreateTime>1357290913</CreateTime>
  5. <MsgType><![CDATA[voice]]></MsgType>
  6. <MediaId><![CDATA[media_id]]></MediaId>
  7. <Format><![CDATA[Format]]></Format>
  8. <Recognition><![CDATA[腾讯微信团队]]></Recognition>
  9. <MsgId>1234567890123456</MsgId>
  10. </xml>
复制葡京赌场网站

多出的字段中,Format为语音格式,一般为amr,Recognition为语音识别结果,使用UTF8编码。


以上是微信开发文档的说明,其实就是开启语音识别后多了一个参数
  1. String recognition=requestMap.get("Recognition");
复制葡京赌场网站

三 、 封装语义理解接口

参照API:http://mp.weixin.qq.com/wiki/0/9 ... c0e05017eabf2c.html
  1. public static String getWeatherSemInfo(String accessToken,String reqJson){
  2.                 String requestUrl="https://api.weixin.qq.com/semantic/semproxy/search?access_token=YOUR_ACCESS_TOKEN";
  3.                 requestUrl=requestUrl.replace("YOUR_ACCESS_TOKEN", accessToken);
  4.                 JSONObject json=CommonUtil.httpsRequest(requestUrl, "POST", reqJson);
  5.                
  6.                 String city="上海";
  7.                 int errcode=json.getInt("errcode");
  8.                 if(0==errcode){
  9.                         JSONObject semantic=json.getJSONObject("semantic");
  10.                         JSONObject details=semantic.getJSONObject("details");
  11.                         JSONObject location=details.getJSONObject("location");
  12.                         city=location.getString("city");
  13.                 }else{
  14.                         System.out.println("语义理解失败");
  15.                 }
  16.                
  17.                
  18.                 return city;
  19. }
复制葡京赌场网站

四、   微信识别语音并回复消息
  1. String recognition=requestMap.get("Recognition");
  2.                     
  3. //这里的token建议缓存起来或放数据库定期取最新的(这里就是掩饰下)
  4. String token=AdvancedUtil.getAccessToken("xxxxx","xxxxxx").getToken();
  5.         
  6. SemParams p=new SemParams();
  7. p.setAppid("xxxxx");
  8. p.setCategory("weather");
  9. p.setCity("昆明");
  10. p.setQuery(recognition);
  11. p.setUid(fromUserName);
  12.                         
  13. String city=AdvancedUtil.getWeatherSemInfo(token,JSONObject.fromObject(p).toString());
  14. String weatherInfo=WeatherUtil.getWeatherResult(city);
  15.                
  16. respContent = weatherInfo;  
复制葡京赌场网站

顺便贴下SemParams的葡京赌场网站出来
  1. package com.debug.weixin.pojo;

  2. public class SemParams {
  3.         
  4.         private String query;
  5.         private String city;
  6.         private String category;
  7.         private String appid;
  8.         private String uid;

  9.         public String getQuery() {
  10.                 return query;
  11.         }

  12.         public void setQuery(String query) {
  13.                 this.query = query;
  14.         }

  15.         public String getCity() {
  16.                 return city;
  17.         }

  18.         public void setCity(String city) {
  19.                 this.city = city;
  20.         }

  21.         public String getCategory() {
  22.                 return category;
  23.         }

  24.         public void setCategory(String category) {
  25.                 this.category = category;
  26.         }

  27.         public String getAppid() {
  28.                 return appid;
  29.         }

  30.         public void setAppid(String appid) {
  31.                 this.appid = appid;
  32.         }

  33.         public String getUid() {
  34.                 return uid;
  35.         }

  36.         public void setUid(String uid) {
  37.                 this.uid = uid;
  38.         }
  39. }
复制葡京赌场网站


来看下运行截图:
20151205230505448.png

以上程序只是简单的实现了功能,实际开发中情况会比这个复杂,例如要校验空值等各种逻辑判断,因此生产环境下的葡京赌场网站应该更加严谨,控制也应更加细腻。这样才能跻身于微信开发的高手行列。
回复

使用道具 举报

最佳答案
0 

0

主题

4682

帖子

50

积分

新人求带

积分
50
发表于 2018-5-2 04:46:49 | 显示全部楼层
好的东西,找了好久了
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

4682

帖子

50

积分

新人求带

积分
50
发表于 2018-5-7 21:25:49 | 显示全部楼层
好东西,亲测可用,教程也很详细
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

4682

帖子

50

积分

新人求带

积分
50
发表于 2018-5-8 00:09:52 | 显示全部楼层
研究研究
回复

使用道具 举报

最佳答案
0 

0

主题

1

帖子

30

积分

等待验证会员

积分
30
发表于 2018-12-20 15:15:45 | 显示全部楼层
20105855678317.png

20105958257320.png


32225669_201812160845010226695945.jpg


32225669_201812152126040541515411.jpg


32225669_201812152111130707616848.jpg


32225669_201812152111260692925654.png

32225669_201812152111260692925654.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



www.mainetimberworks.com—微信开发者的分享交流平台,专注微信开发生态。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

微信葡京娱乐网址号

市场合作
[email protected]