微信开发之如何使用语音处理接口

  介绍

这篇文章给大家分享的是有关微信开发之如何使用语音处理接口的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1,微信语音接口的定义0

微信的API这么定义语音的识别的:<强>开通语音识别功能,用户每次发送语音给公众号时,微信会在推送的语音消息XML数据包中,增加一个识别字段

语音的消息格式如下所示。

& lt; xml>   & lt; ToUserName> & lt; ! [CDATA[使用]]祝辞& lt;/ToUserName>   & lt; FromUserName> & lt; ! [CDATA [fromUser]]祝辞& lt;/FromUserName>   & lt; CreateTime> 1357290913 & lt;/CreateTime>   & lt; MsgType> & lt; ! [CDATA[声音]]祝辞& lt;/MsgType>   & lt; MediaId> & lt; ! [CDATA [media_id]]祝辞& lt;/MediaId>   & lt; Format> & lt; ! [CDATA[格式]]祝辞& lt;/Format>   & lt; MsgId> 1234567890123456 & lt;/MsgId>   & lt;/xml> 参数描述ToUserName <强>开发者强微信号FromUserName发送方帐号(一个OpenID) CreateTime消息创建时间(整型)MsgType语音为voiceMediaId语音消息媒体id,可以调用多媒体文件下载接口拉取数据.Format语音格式,如amr, speex等是否消息id, 64位整型

根据以上微信接口的定义,我们可以定义一个实体类来对消息的传递进行处理,如下所示。

///,& lt; summary>   ,,,///,接收的语音消息   ,,,///,& lt;/summary>   ,,,(System.Xml.Serialization.XmlRoot (=ElementName “xml"))   ,,,public  class  RequestVoice : BaseMessage   ,,,{   ,,,,,,,public  RequestVoice ()   ,,,,,,,{   ,,,,,,,,,,,this.MsgType =, RequestMsgType.Voice.ToString () .ToLower ();   ,,,,,,,}      ,,,,,,,///,& lt; summary>   ,,,,,,,///,语音格式,如amr, speex等   ,,,,,,,///,& lt;/summary>   ,,,,,,,public  string  Format {组,得到,,,}      ,,,,,,,///,& lt; summary>   ,,,,,,,///,语音消息媒体id,可以调用多媒体文件下载接口拉取数据。   ,,,,,,,///,& lt;/summary>   ,,,,,,,public  string  MediaId {组,得到,,,}   ,,   ,,,,,,,///,& lt; summary>   ,,,,,,,///,消息ID   ,,,,,,,///,& lt;/summary>   ,,,,,,,public  Int64  MsgId {组,得到,,,}      ,,,,,,,///,& lt; summary>   ,,,,,,,///,语音识别结果,use UTF8编码   ,,,,,,,///,& lt;/summary>   ,,,,,,,public  string  Recognition ,{,得到;;,}      ,,,}

我们看的到,这里我们最感兴趣的是语音的识别结果,也就是识别的字段,这个就是微信服务器自动根据用户的语音转换过来的内容,我测试过,识别率还是非常高的。

这个实体类,在整个微信应用的消息传递中的关系如下所示:

微信开发之如何使用语音处理接口

2,语音的处理操作

明确了上面的语音对象实体,我们就可以看看它们之间是如何处理的。

微信消息的处理逻辑如下图所示。

微信开发之如何使用语音处理接口

其中我们来看看语音的处理操作,我的代码处理逻辑如下所示。

///,& lt; summary>   ,,,,,,,///,对语音请求信息进行处理   ,,,,,,,///,& lt;/summary>   ,,,,,,,///,& lt; param  name=癷nfo"在语音请求信息实体& lt;/param>   ,,,,,,,///,& lt; returns> & lt;/returns>   ,,,,,,,public  string  HandleVoice (Entity.RequestVoice 信息)   ,,,,,,,{   ,,,,,,,,,,,string  xml =,““   ,,,,,,,,,,,//,开通语音识别功能,用户每次发送语音给公众号时,   ,,,,,,,,,,,//,微信会在推送的语音消息XML数据包中,增加一个识别字段。   ,,,,,,,,,,,if  (! string.IsNullOrEmpty (info.Recognition))   ,,,,,,,,,,,{   ,,,,,,,,,,,,,,,TextDispatch  dispatch =, new  TextDispatch ();   ,,,,,,,,,,,,,,,xml =, dispatch.HandleVoiceText(信息,,info.Recognition);   ,,,,,,,,,,,}   ,,,,,,,,,,,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

微信开发之如何使用语音处理接口