天天看點

微信公衆平台開發(75) 語音識别

本文介紹如何使用微信公衆平台進階接口中的語音識别功能,做出一個語音版的天氣預報查詢功能。根據這個模型,你可以擴充到所有的語音查詢。

一、接收語音識别結果

開通語音識别功能以後,使用者每次發送語音給公衆号時,微信會在推送的語音消息XML資料包中,增加一個Recongnition字段。該字段為語音識别出的文本内容。

使用者發送語音:

微信公衆平台開發(75) 語音識别

語音XML資料包如下

參數說明:

參數

描述

ToUserName

接收方微信号

FromUserName

發送方帳号(一個OpenID)

CreateTime

消息建立時間 (整型)

MsgType

語音為voice

MediaID

語音消息媒體id,可以調用多媒體檔案下載下傳接口拉取該媒體

Format

語音格式:amr

Recognition

語音識别結果,UTF8編碼

MsgID

消息id,64位整型

二、中文分詞

中文分詞 (Chinese Word Segmentation) 指的是将一個漢字序列切分成一個一個單獨的詞。分詞就是将連續的字序列按照一定的規範重新組合成詞序列的過程。我們知道,在英文的行文中,單詞之間是以空格作為自然分界符的,而中文隻是字、句和段能通過明顯的分界符來簡單劃界,唯獨詞沒有一個形式上的分界符,雖然英文也同樣存在短語的劃分問題,不過在詞這一層上,中文比之英文要複雜的多、困難的多。通過分詞可以提取其中關鍵詞語進行搜尋。

打個比方:“深圳天氣怎麼樣”,這句話中可分詞為“深圳”,“天氣”,“怎麼樣”三個詞。其中“天氣”為名詞,“深圳”為地點名詞。

以下是SAE上的分詞代碼示例:

結果如下:

得到,名詞天氣,和地名名詞深圳,副詞怎麼樣可以忽略。

三、程式實作

判斷是否開啟語音識别

效果如下:

微信公衆平台開發(75) 語音識别

調用SAE分詞

傳回結果如下:

這樣就獲知曉了使用者要查詢的功能是天氣,城市名稱是長沙。

功能查詢

根據獲得的功能類别及關鍵字,我們可以查詢相應的城市天氣預報。

四、效果示範

微信公衆平台開發(75) 語音識别
微信公衆平台開發(75) 語音識别

繼續閱讀