国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
1. WeChat音聲インターフェースの定義0
2、語音的處理操作
ホームページ WeChat アプレット WeChatの開発 C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します

C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します

Mar 02, 2017 am 10:04 AM

WeChat はもともと音聲チャット用に設計されたため、より人気が高まったことはわかっています。そのため、WeChat の開発インターフェイスでは、當然ながら音聲認識処理が音聲メッセージ リクエストの処理にも使用されます。この記事では主に、C# で開発された WeChat ポータル アプリケーションのイベント チェーン全體を音聲認識を使用して処理し、WeChat アカウントでのユーザー入力の処理をより便利かつ多様にする方法を紹介します。

1. WeChat音聲インターフェースの定義0

WeChatのAPIは次のように音聲認識を定義します: 音聲認識機能が有効な場合、ユーザーが公式アカウントに音聲を送信するたびに、WeChatは音聲メッセージXMLパケットをプッシュします。認識フィールド

音聲メッセージのフォーマットは以下の通りです。

<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>

パラメータ説明
ToUserName開発者WeChat ID
FromUserName送信者アカウント(OpenID)
CreateTimeメッセージ作成時間 (タイプ全體)
MsgTypeVoice は voice
MediaId音聲メッセージ メディア ID、マルチメディア ファイル ダウンロード インターフェイスを呼び出してデータをプルできます。
形式音聲形式(amr、speexなど)
MsgIDメッセージID、64ビット整數(shù)

根據(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,可以調用多媒體文件下載接口拉取數(shù)據(jù)。
        /// </summary>
        public string MediaId { get; set; }
  
        /// <summary>
        /// 消息ID
        /// </summary>
        public Int64 MsgId { get; set; }

        /// <summary>
        /// 語音識別結果,UTF8編碼
        /// </summary>
        public string Recognition  { get; set; }

    }

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

這個實體類,在整個微信應用的消息傳遞中的關系如下所示:

C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します

2、語音的處理操作

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

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

C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します

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

/// <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;
        }

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

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

C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します

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

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

/// <summary>
        /// 如果用戶用語音讀出菜單的內容,那么我們應該先根據(jù)菜單對應的事件觸發(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
                {
                    //由于無法自動切換到連接,
                    //轉換為連接文本供用戶進入
                    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);
                }
            }

            //最后如果沒有處理到,那么提示用戶的語音內容
            if (string.IsNullOrEmpty(xml))
            {
                ResponseText textInfo = new ResponseText(info);
                textInfo.Content = string.Format("非常抱歉,您輸入的語音內容沒有找到對應的處理方式。您的語音內容為:{0}", voiceText);
                xml = textInfo.ToXml();
            }

            return xml;
        }

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

C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します? ? ? ? ? ? ? ? ?C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します? ?

?C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します

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

C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します

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

C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します

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

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

更多C# は音聲処理を使用して WeChat ポータルとアプリケーションを開発します相關文章請關注PHP中文網!

このウェブサイトの聲明
この記事の內容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)