10分钟教你打造一个微信语音点歌系统
2013-12-06 23:12
357 查看
最近在做一个微信项目,接触到了微信公众平台。通过公众平台可以很方便的搭建一个功能完善的移动应用。昨天发现:开发者可使用手机号来申请接口测试帐号,体验高级接口。
这篇文章的应用将使用到高级接口中的语音识别,以及音乐回复接口。通过这两个接口,让大家体验一下语音点歌的魅力。
这个应用简单的来说:就是你向微信公众平台报一首歌名,微信公众平台返回这首歌曲给你听。本文将一步一步教你如何实现这个看似复杂的移动应用。
下面是我申请的测试账号的二维码,大家可以关注一下测试一下效果,不过测试账号的有效期只有一年,最多只能有20个关注者。
另外一个是我个人的订阅号,有更多的功能,没有人数限制,但是不能识别语音。说了这么多,不如自己动动手吧。
首先申请测试账号和百度的bae云平台:
微信公众平台测试账号具体见:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
百度bae见:http://developer.baidu.com/bae/
相关配置:
申请完成之后,进行相关的配置:
1、在bae上创建应用并申请域名
2、下载公众平台的php演示代码,并上传到bae上
3、调整php代码,并配置接口
然后准备一下音乐的api:
在网上找到了百度的一个私有的音乐api。具体见:
/article/1586888.html
接着开始编码:
1、我们先了解一下用到的微信语音识别接口
我们将语音发送给微信服务器,微信服务器会将语音转换成文字。我们拿到文字之后调用音乐api获取音乐,然后通过微信的被动回复中的回复音乐消息将音乐返回给客户端。
代码如下:(此代码可以直接上传到你的百度bae平台,只需要修改token就可以了)
总结:微信的语音识别非常的强大,我的普通话,不算标准,但是每次都能识别出来,另外百度音乐api的音乐应有尽有。
从上面描述可以看到,我只是简单的配置和写了几句简单的php代码,就实现了一个复杂的语音点歌系统。
体验:
另外,欢迎大家关注一下我的个人订阅号:
作者:朱祁林
出处:http://zhuqil.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
这篇文章的应用将使用到高级接口中的语音识别,以及音乐回复接口。通过这两个接口,让大家体验一下语音点歌的魅力。
这个应用简单的来说:就是你向微信公众平台报一首歌名,微信公众平台返回这首歌曲给你听。本文将一步一步教你如何实现这个看似复杂的移动应用。
下面是我申请的测试账号的二维码,大家可以关注一下测试一下效果,不过测试账号的有效期只有一年,最多只能有20个关注者。
另外一个是我个人的订阅号,有更多的功能,没有人数限制,但是不能识别语音。说了这么多,不如自己动动手吧。
首先申请测试账号和百度的bae云平台:
微信公众平台测试账号具体见:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
百度bae见:http://developer.baidu.com/bae/
相关配置:
申请完成之后,进行相关的配置:
1、在bae上创建应用并申请域名
2、下载公众平台的php演示代码,并上传到bae上
3、调整php代码,并配置接口
然后准备一下音乐的api:
在网上找到了百度的一个私有的音乐api。具体见:
/article/1586888.html
接着开始编码:
1、我们先了解一下用到的微信语音识别接口
我们将语音发送给微信服务器,微信服务器会将语音转换成文字。我们拿到文字之后调用音乐api获取音乐,然后通过微信的被动回复中的回复音乐消息将音乐返回给客户端。
代码如下:(此代码可以直接上传到你的百度bae平台,只需要修改token就可以了)
<?php define("TOKEN", "yourtoken"); $wechatObj = new wechatCallbackapiTest(); // $wechatObj->valid(); $wechatObj->responseMsg(); class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { //获取post数据 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //解析post数据 if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $type= $postObj->MsgType; switch($type) { case "voice"; $resultStr= $this->getMusicContent($postObj); echo $resultStr; exit; break; } } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } public function getMusicContent($postObj) { $ret= "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[music]]></MsgType> <Music> <Title><![CDATA[%s]]></Title> <Description><![CDATA[]]></Description> <MusicUrl><![CDATA[%s]]></MusicUrl> <HQMusicUrl><![CDATA[%s]]></HQMusicUrl> <FuncFlag><![CDATA[1]]></FuncFlag> </Music> </xml>"; $recognition=$postObj->Recognition; $keywordc= urlencode($recognition); $musicapi = "http://box.zhangmen.baidu.com/x?op=12&count=1&title={$keywordc}\$\$"; $simstr=file_get_contents($musicapi); $musicobj=simplexml_load_string($simstr); $i=0; $musicurl; foreach($musicobj->url as $itemobj) { $encode = $itemobj->encode; //处理decode ,发现微信在处理音乐的时候有个问题,所以这里删除一个参数 $decode = $itemobj->decode; $removedecode = end(explode('&', $decode)); if($removedecode<>"") { $removedecode="&".$removedecode; } $decode = str_replace($removedecode,"", $decode); $musicurl= str_replace(end(explode('/', $encode)) ,$decode,$encode); break; } $resultStr = sprintf($ret, $postObj->FromUserName, $postObj->ToUserName,time(), $recognition,$musicurl,$musicurl); return $resultStr; } } ?>
总结:微信的语音识别非常的强大,我的普通话,不算标准,但是每次都能识别出来,另外百度音乐api的音乐应有尽有。
从上面描述可以看到,我只是简单的配置和写了几句简单的php代码,就实现了一个复杂的语音点歌系统。
体验:
另外,欢迎大家关注一下我的个人订阅号:
作者:朱祁林
出处:http://zhuqil.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章推荐
- 10分钟教你打造一个微信语音点歌系统
- 十分钟教你打造一个微信语音点歌系统
- 打造一个微信语音点歌系统
- 微信语音点歌系统
- 做一个微信语音点播系统
- Jquery:十分钟打造一个类似是Twitter的系统,附源代码
- 如何打造一个合适的EDM系统
- 从零开始打造一个新闻订阅APP之服务器篇(一、系统结构设计&开发流程简介)
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
- 打造一个实际的全系统污点分析系统--Towards Practical Taint Tracking
- 如何把微信语音汇总成一个MP3文件?
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
- Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例
- 实现一个简单的语音聊天室(多人语音聊天系统)
- 微信小程序详细图文教程-10分钟完成微信小程序开发部署发布(3元获取腾讯云服务器带小程序支持系统)
- C#打造一个开源webgis(三)地图服务系统
- 我记录综合系统学习研究之用户管理五(如何利用wojilu打造一个全新的SNS应用)
- 微信专业自动挂机群发系统时时彩等开奖版图、消息、语音文件、图片微信机器人
- TTS-零基础入门-10分钟教你做一个语音功能
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统