1. <wbr id="m8vu6"></wbr>

      <del id="m8vu6"><center id="m8vu6"><source id="m8vu6"></source></center></del>
        <p id="m8vu6"><sub id="m8vu6"></sub></p>

        VB.net 2010 視頻教程 VB.net 2010 視頻教程 python基礎視頻教程
        SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
        當前位置:
        首頁 > 編程開發 > c#教程 >
        • C#教程之C#教程之微信小程序代辦清單任務之語言識別功能

        本站最新發布   C#從入門到精通
        試聽地址  
        http://www.squ68.com/eschool/CSharpxin3721/

         最近想給自己的代辦清單任務微信小程序想加個語音識別識別功能,廢話不多說,直接說重點,語音識別使用的是百度語音識別api,因為微信小程序的錄音輸入文件目前只能是mp3或aac 但是百度語音識別不支持這兩種(百度api接口文檔上有說明),所以需要把音頻格式轉換一下,我這邊使用的是Alvas.Audio.dll轉換的,目前沒發現什么問題。

        百度云賬號地址:https://login.bce.baidu.com/

        Alvas.Audio下載地址:https://download.csdn.net/download/u014265946/11094962

         1、登錄百度云賬號后打開百度語音頁面

        創建一個語音識別的應用,記錄應用的相關信息,如果API Key、Secret Key  ....下載sdk......這里廢話就不多說了api文檔上面都有 https://ai.baidu.com/docs#/ASR-Online-Csharp-SDK/top。

        (這是需要注意的是百度提供的sdk引用的Newtonsoft.Json    10.0.0.0 以上的版本,所以如果您項目中使用的是低版本的,必須升級Newtonsoft.Json)

        2、下載 Alvas.Audio.dll 引用到項目中,

        直接上代碼

        復制代碼
            public class AudioHelper
            {
        
                /// <summary>
                /// Mp3 to Pcm
                /// </summary>
                /// <param name="stream"></param>
                /// <returns></returns>
                public static byte[] Mp3ToPcm(Stream stream)
                {
                    try
                    {
                        //mp3 -> mp3 mono 48000 samples per second example
                        //int sps = 48000;
        
                        Mp3Reader mr = new Mp3Reader(stream);
                        IntPtr formatMp3 = mr.ReadFormat();
                        byte[] dataMp3 = mr.ReadData();
                        mr.Close();
                        IntPtr formatPcm = AudioCompressionManager.GetCompatibleFormat(formatMp3, AudioCompressionManager.PcmFormatTag);
                        //mp3 -> pcm
                        byte[] dataPcm = AudioCompressionManager.Convert(formatMp3, formatPcm, dataMp3, false);
        
                        return dataPcm;
                    }
                    catch (System.Exception ex)
                    {
                        LogManager.DefaultLogger.ErrorFormat("Mp3 to Pcm 出錯:{0}", ex.ToString());
                        return null;
                    }
                }
            }
        復制代碼

         

        上傳語音到百度云平臺上識別語音

        復制代碼
            /// <summary>
            /// 百度語音識別幫助
            /// </summary>
            public class BaiduHelper
            {
        
                private readonly static Asr Client = new Baidu.Aip.Speech.Asr("你的 Api Key", "你的 Secret Key");
        
                /// <summary>
                /// 語音識別
                /// </summary>
                /// <param name="data">語音內容</param>
                /// <param name="text">文本內容</param>
                /// <param name="format">語音文件的格式,pcm 或者 wav 或者 amr。不區分大小寫。推薦pcm文件,</param>
                /// <param name="rate">采樣率,16000,固定值</param>
                /// <param name="devPid">默認1537(普通話 輸入法模型)。dev_pid 必須為整數類型。參數可選值見REST API文檔說明</param>
                /// <returns></returns>
                public static bool Recognize(byte[] data, out string text, string format = "pcm", int rate = 16000, int devPid = 1536)
                {
                    text = "";
                    Client.Timeout = 120000;
        
                    var options = new Dictionary<string, object>
                     {
                        {"dev_pid", devPid}
                     };
        
                    var jObject = Client.Recognize(data, format, rate, options);
        
                    if ((int)jObject.GetValue("err_no") == 0)
                    {
                        text = jObject["result"][0].ToString();
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
        復制代碼

         

         微信小程序錄音上傳的代碼我就就不貼了,網上很多。官方文檔介紹的也很詳細,整個流程就是微信小程序錄音上傳到后臺,后臺轉碼后通過百度語音識別api上傳到百度云平臺,返回結果后臺返回給前端。

         

        下面也是比較坑的地方,截止到這里,語音識別基本完成了,我做到這里的時候發現將將程序發到服務器上,語音轉碼總是報錯,語音轉碼不成功,最后查找Alvas.Audio的官方文檔中給出了解決方案,

        http://www.alvas.net/alvas.audio,articles.aspx#mp3-to-wav-without-desktop-experience

        要么安裝桌面體驗,要么安裝庫文件,我選擇了安裝桌面體驗,具體怎么安裝桌面體驗,可以百度一下,(就像安裝iis一樣)

        安裝桌面體驗參考地址:https://www.cnblogs.com/asdyzh/p/9826976.html 

        這個時候你發布到服務器上的程序,音頻就會正常轉換了

         

        下面恭請大家同行們體驗一下我的微信小程序,體驗一下我實現的語音識別功能,

         

        簡單介紹一下我的微信小程序:

        這個是個代辦清單任務的小程序,和備忘錄相似,主要是自己用方便,簡單方便,沒有復雜的設置,記錄自己的規劃,讓自己的工作生活變的有計劃。簡單而實用。發現用的人還挺多,為了更簡單,就加上了語音識別功能,在編輯任務的時候可以不用手打字,只要說話就能識別成文字,

         

        使用語音識別的正確姿勢

        長按輸入框上按鈕,最長可一次性轉換10秒語音,

         

        希望同行們的支持,小的拖家帶口感謝您的支持,感謝您的賞了.........

         

         

        相關教程
                
        免费看成年人视频大全_免费看成年人视频在线观看