6.1.2 如何获取语音消息
在公众账号后台的CoreService类中,可以像下面这样获取到语音消息的MediaId、Format、Recongnition等参数。
- // 消息类型
- String msgType = requestMap.get("MsgType");
- // 判断消息类型是否为voice
- if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_VOICE)) {
- // 语音消息文件的标识
- String mediaId = requestMap.get("MediaId");
- // 语音格式:amr
- String format = requestMap.get("Format");
- // 语音识别结果
- String recognition = requestMap.get("Recognition");
- // TODO 处理用户请求
- }
说明 由于微信客户端缓存的原因,开发者开启或者关闭语音识别功能,对新关注用户会立刻生效,而对已关注用户则需要24小时之后才能生效。开发者可以通过重新关注公众账号的方法进行测试。
在某些特殊情况下,微信提供的语音识别功能并不能满足要求,例如,用户使用方言、少数民族语言或外语。遇到类似情况时,就只能调用下载多媒体文件接口将语音文件下载到本地,然后通过自主研发的语音识别引擎或者第三方(Google、讯飞、云知声等)语音识别引擎来实现。