zoukankan      html  css  js  c++  java
  • c# 百度api语音识别

            public static string getStrAccess(string para_API_key, string para_API_secret_key)
            {
    
                //方法参数说明:
                //para_API_key:API_key(你的KEY)
                //para_API_secret_key(你的SECRRET_KEY)
    
                //方法返回值说明:
                //百度认证口令码,access_token
                string access_html = null;
                string access_token = null;
                string getAccessUrl = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials" +
               "&client_id=" + para_API_key + "&client_secret=" + para_API_secret_key;
                try
                {
                    HttpWebRequest getAccessRequest = WebRequest.Create(getAccessUrl) as HttpWebRequest;
                    //getAccessRequest.Proxy = null;
                    getAccessRequest.ContentType = "multipart/form-data";
                    getAccessRequest.Accept = "*/*";
                    getAccessRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)";
                    getAccessRequest.Timeout = 30000;//30秒连接不成功就中断 
                    getAccessRequest.Method = "post";
    
                    HttpWebResponse response = getAccessRequest.GetResponse() as HttpWebResponse;
                    using (StreamReader strHttpComback = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                    {
                        access_html = strHttpComback.ReadToEnd();
                    }
                }
                catch (WebException ex)
                {
                    Console.Write(ex.Message);
                    Console.ReadLine();
                }
                JObject jo = JObject.Parse(access_html);
                access_token = jo["access_token"].ToString();//得到返回的toke
                return access_token;
            }
            public static string getStrText(string para_API_id, string para_API_access_token, string para_API_language, string para_API_record, string para_format, string para_Hz)
            {
                string strJSON = "";
                //方法参数说明:
                //该方法返回值:
                //该方法执行正确返回值是语音翻译的文本,错误是错误号,可以去看百度语音文档,查看对应错误
                string strText = null;
                string error = null;
                FileInfo fi = new FileInfo(para_API_record);
                FileStream fs = new FileStream(para_API_record, FileMode.Open);
                byte[] voice = new byte[fs.Length];
                fs.Read(voice, 0, voice.Length);
                fs.Close();
    
                string getTextUrl = "http://vop.baidu.com/server_api?lan=" + para_API_language + "&cuid=" + para_API_id + "&token=" + para_API_access_token;
                HttpWebRequest getTextRequst = WebRequest.Create(getTextUrl) as HttpWebRequest;
                /* getTextRequst.Proxy = null;
                 getTextRequst.ServicePoint.Expect100Continue = false;
                 getTextRequst.ServicePoint.UseNagleAlgorithm = false;
                 getTextRequst.ServicePoint.ConnectionLimit = 65500;
                 getTextRequst.AllowWriteStreamBuffering = false;*/
                getTextRequst.ContentType = "audio /" + para_format + ";rate=" + para_Hz;
                getTextRequst.ContentLength = fi.Length;
                getTextRequst.Method = "post";
                getTextRequst.Accept = "*/*";
                getTextRequst.KeepAlive = true;
                getTextRequst.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)";
                getTextRequst.Timeout = 30000;//30秒连接不成功就中断 
                using (Stream writeStream = getTextRequst.GetRequestStream())
                {
                    writeStream.Write(voice, 0, voice.Length);
                }
                HttpWebResponse getTextResponse = getTextRequst.GetResponse() as HttpWebResponse;
                using (StreamReader strHttpText = new StreamReader(getTextResponse.GetResponseStream(), Encoding.UTF8))
                {
                    strJSON = strHttpText.ReadToEnd();
                }
                JObject jsons = JObject.Parse(strJSON);//解析JSON
                if (jsons["err_msg"].Value<string>() == "success.")
                {
                    strText = jsons["result"][0].ToString();
                    return strText;
                }
                else
                {
                    error = jsons["err_no"].Value<string>() + jsons["err_msg"].Value<string>();
                    return error;
                }
            }
    
      //百度公众号的两个唯一值
      string access = getStrAccess(para_API_key, para_API_secret_key);
                Console.Write(access);
                Console.ReadLine();
                string text = getStrText(GetMacByNetworkInterface()[0], access, "zh", "1.wav", "wav", "8000");

    ///<summary>
    /// 通过NetworkInterface读取网卡Mac
    ///</summary>
    ///<returns></returns>
    public static List<string> GetMacByNetworkInterface()
    {
    List<string> macs = new List<string>();
    NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
    foreach (NetworkInterface ni in interfaces)
    {
    macs.Add(ni.GetPhysicalAddress().ToString());
    }
    return macs;
    }

    注意:视频采样率只支持8000,16000

  • 相关阅读:
    1月28日 layout_list_item
    1月27日 listview_MyListAdapter
    1月26日 listviewxml
    1月25日 textview
    1月24日 人月神话3
    体温填报(三)
    体温填报(二)
    体温填报(一)
    家庭记账本(六)
    家庭记账本(五)
  • 原文地址:https://www.cnblogs.com/zhtbk/p/5113463.html
Copyright © 2011-2022 走看看