亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
1、微信語音介面的定義0
2、語音的處理操作
首頁 微信小程式 微信開發(fā) C#開發(fā)微信入口網(wǎng)站及應(yīng)用-使用語音處理

C#開發(fā)微信入口網(wǎng)站及應(yīng)用-使用語音處理

Feb 17, 2017 pm 03:18 PM

我們知道,微信最開始就是做語音聊天而使得其更加流行的,因此語音的識別處理自然也就成為微信交流的一個重要途徑,微信的開發(fā)接口,也提供了對語音的消息請求處理。本文主要介紹如何利用語音的識別,對C#開發(fā)的微信門戶應(yīng)用的整個事件鏈的處理操作,使得在我們的微信帳號裡面,更加方便和多元化對用戶的輸入進行處理。

1、微信語音介面的定義0

微信的API這麼定義語音的辨識的:開通語音辨識功能,用戶每次發(fā)送語音給公眾號時,微信會在推送的語音訊息XML封包中,增加一個Recongnition欄位。

語音的訊息格式如下所示。

<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>1357290913</CreateTime><MsgType><![CDATA[voice]]></MsgType><MediaId><![CDATA[media_id]]></MediaId><Format><![CDATA[Format]]></Format><MsgId>1234567890123456</MsgId></xml>

CreateTimeMsgTypeMediaIdFormatMsgID訊息id,64位元整型MsgID
參數(shù) 描述
ToUserName OpenID)
訊息創(chuàng)建時間(整數(shù))
語音為voice
語音訊息媒體id,可呼叫多媒體檔案下載介面拉取資料。
語音格式,如amr,speex等
訊息id,64位元整型 MsgID
MsgID 訊息id,64位元整型
訊息id,64位元整型

根據(jù)以上微信接口的定義,我們可以定義一個實體類來對消息的傳遞進行處理,如下所示。

????///?<summary>
????///?接收的語音消息????///?</summary>
????[System.Xml.Serialization.XmlRoot(ElementName?=?"xml")]????public?class?RequestVoice?:?BaseMessage
????{????????public?RequestVoice()
????????{????????????this.MsgType?=?RequestMsgType.Voice.ToString().ToLower();
????????}????????///?<summary>
????????///?語音格式,如amr,speex等????????///?</summary>
????????public?string?Format?{?get;?set;?}????????///?<summary>
????????///?語音消息媒體id,可以調(diào)用多媒體文件下載接口拉取數(shù)據(jù)。????????///?</summary>
????????public?string?MediaId?{?get;?set;?}??
????????///?<summary>
????????///?消息ID????????///?</summary>
????????public?Int64?MsgId?{?get;?set;?}????????///?<summary>
????????///?語音識別結(jié)果,UTF8編碼????????///?</summary>
????????public?string?Recognition??{?get;?set;?}

????}

我們看到,這里我們最感興趣的是語音的識別結(jié)果,也就是Recognition的字段,這個就是微信服務(wù)器自動根據(jù)用戶的語音轉(zhuǎn)換過來的內(nèi)容,我測試過,識別率還是非常高的。

這個實體類,在整個微信應(yīng)用的消息傳遞中的關(guān)系如下所示:

C#開發(fā)微信門戶及應(yīng)用-使用語音處理

2、語音的處理操作

明確了上面的語音對象實體,我們就可以看看它們之間是如何處理的。

微信消息的處理邏輯如下圖所示。

C#開發(fā)微信門戶及應(yīng)用-使用語音處理

其中我們來看看語音的處理操作,我的代碼處理邏輯如下所示。

????????///?<summary>
????????///?對語音請求信息進行處理????????///?</summary>
????????///?<param name="info">語音請求信息實體</param>
????????///?<returns></returns>
????????public?string?HandleVoice(Entity.RequestVoice?info)
????????{????????????string?xml?=?"";????????????//?開通語音識別功能,用戶每次發(fā)送語音給公眾號時,????????????//?微信會在推送的語音消息XML數(shù)據(jù)包中,增加一個Recongnition字段。
????????????if?(!string.IsNullOrEmpty(info.Recognition))
????????????{
????????????????TextDispatch?dispatch?=?new?TextDispatch();
????????????????xml?=?dispatch.HandleVoiceText(info,?info.Recognition);
????????????}????????????else
????????????{
????????????????xml?=?"";
????????????}????????????return?xml;
????????}

在這里,我先看看,是否獲得了微信的語音識別結(jié)果,如果獲得,那么這個時候,就是和處理用戶文本輸入的操作差不多了,因此把它轉(zhuǎn)給TextDispatch的處理類進行處理。

其中這里面的處理邏輯如下所示。

C#開發(fā)微信門戶及應(yīng)用-使用語音處理

首先我根據(jù)識別結(jié)果,尋找是否用戶讀出了微信門戶的菜單名稱,如果根據(jù)語音結(jié)果找到對應(yīng)的菜單記錄,那么我們執(zhí)行菜單事件(如果是URL的View類型菜單,我們沒辦法重定向到指定的鏈接,因此給出一個鏈接文本提示,給用戶單擊進入;如果沒有找到菜單記錄,那么我們就把語音識別結(jié)果作為一般的事件進行處理,如果事件邏輯沒有處理,那么我們最后給出一個默認的語音應(yīng)答提示結(jié)果就可以了。

具體的處理代碼如下所示。

????????///?<summary>
????????///?如果用戶用語音讀出菜單的內(nèi)容,那么我們應(yīng)該先根據(jù)菜單對應(yīng)的事件觸發(fā),最后再交給普通事件處理????????///?</summary>
????????///?<param name="info"></param>
????????///?<returns></returns>
????????public?string?HandleVoiceText(BaseMessage?info,?string?voiceText)
????????{????????????string?xml?=?"";
????????????MenuInfo?menuInfo?=?BLLFactory<Menu>.Instance.FindByName(voiceText);????????????if?(menuInfo?!=?null)
????????????{????????????????#region?如果找到菜單對象的處理????????????????if?(menuInfo.Type?==?"click")
????????????????{????????????????????//模擬單擊事件
????????????????????RequestEventClick?eventInfo?=?new?RequestEventClick();
????????????????????eventInfo.CreateTime?=?info.CreateTime;
????????????????????eventInfo.EventKey?=?menuInfo.Key;
????????????????????eventInfo.FromUserName?=?info.FromUserName;
????????????????????eventInfo.ToUserName?=?info.ToUserName;

????????????????????xml?=?base.DealEvent(eventInfo,?eventInfo.EventKey);
????????????????}????????????????else
????????????????{????????????????????//由于無法自動切換到連接,????????????????????//轉(zhuǎn)換為連接文本供用戶進入
????????????????????string?content?=?string.Format("請單擊鏈接進入<a href=\"{0}\">{1}</a>?",?menuInfo.Url,?menuInfo.Name);

????????????????????ResponseText?textInfo?=?new?ResponseText(info);
????????????????????textInfo.Content?=?content;????????????????????xml?=?textInfo.ToXml();
????????????????}?
????????????????#endregion
????????????}????????????else
????????????{????????????????//交給事件機制處理
????????????????if?(string.IsNullOrEmpty(xml))
????????????????{
????????????????????xml?=?HandleText(info,?voiceText);
????????????????}
????????????}????????????//最后如果沒有處理到,那么提示用戶的語音內(nèi)容
????????????if?(string.IsNullOrEmpty(xml))
????????????{
????????????????ResponseText?textInfo?=?new?ResponseText(info);
????????????????textInfo.Content?=?string.Format("非常抱歉,您輸入的語音內(nèi)容沒有找到對應(yīng)的處理方式。您的語音內(nèi)容為:{0}",?voiceText);????????????????xml?=?textInfo.ToXml();
????????????}????????????return?xml;
????????}

微信門戶測試界面效果如下所示。

C#開發(fā)微信門戶及應(yīng)用-使用語音處理 ? ? ? ? ? ? ? ? ?C#開發(fā)微信門戶及應(yīng)用-使用語音處理 ? ?

?C#開發(fā)微信門戶及應(yīng)用-使用語音處理

為了方便對客戶會話的記錄,我的微信門戶后臺,會記錄用戶的語音輸入內(nèi)容,如下所示。

C#開發(fā)微信門戶及應(yīng)用-使用語音處理

?當然,微信后臺的管理界面,也能夠查到相應(yīng)的語音記錄,界面如下所示。

C#開發(fā)微信門戶及應(yīng)用-使用語音處理

以上就是我對微信語音的消息定義和事件處理的邏輯,其實語音是一個重要的輸入,如果正確的識別內(nèi)容,比手工輸入的效果更好,給用戶提供另外一種高效的輸入和事件處理操作。

這樣的處理模式,能夠使得我們整個微信門戶框架,不管是對于用戶的語音輸入,還是文本輸入,還是菜單事件的處理,都可以融為一體,實現(xiàn)更加完美的銜接。

更多C#開發(fā)微信門戶及應(yīng)用-使用語音處理?相關(guān)文章請關(guān)注PHP中文網(wǎng)!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應(yīng)的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72