• csharp:百度语音识别


     public string API_id = "8888"; //你的ID
            public string API_record = null;
            public string API_record_format = "wav";
            public string API_record_HZ = "16000";
            public string API_key = "geovindu"; //你的KEY
            public string API_secret_key = "55519"; //你的SECRRET_KEY
            public string API_language = "zh";
            public string API_access_token = null;
            public string strJSON = "";
    
            //录音
            [DllImport("winmm.dll", EntryPoint = "mciSendString", CharSet = CharSet.Auto)]
            public static extern int mciSendString(
             string lpstrCommand,
             string lpstrReturnString,
             int uReturnLength,
             int hwndCallback
            );
            /// <summary>
            /// 
            /// </summary>
            public Form1()
            {
                InitializeComponent();
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Form1_Load(object sender, EventArgs e)
            {
                API_record=Application.StartupPath + "\上班.wav";
                API_access_token = getStrAccess(API_key, API_secret_key);
    
            }
    
            /// <summary>
            /// 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, EventArgs e)
            {
                this.textBox2.Text = getStrText(API_id, API_access_token, API_language, API_record, API_record_format, API_record_HZ);
    
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="para_API_key">你的KEY</param>
            /// <param name="para_API_secret_key">你的SECRRET_KEY</param>
            /// <returns></returns>
            public 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)
                {
                    MessageBox.Show(ex.ToString());
                }
    
                JObject jo = JObject.Parse(access_html);
                access_token = jo["access_token"].ToString();//得到返回的toke             
                return access_token; 
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="para_API_id"></param>
            /// <param name="para_API_access_token"></param>
            /// <param name="para_API_language"></param>
            /// <param name="para_API_record"></param>
            /// <param name="para_format"></param>
            /// <param name="para_Hz"></param>
            /// <returns></returns>
            public 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) 
            { 
                //方法参数说明:             
                //para_API_id: API_id (你的ID) 
                //para_API_access_token (getStrAccess(...)方法得到的access_token口令) 
                //para_API_language (你要识别的语言,zh,en,ct) 
                //para_API_record(语音文件的路径) 
                //para_format(语音文件的格式) 
                //para_Hz(语音文件的采样率 16000或者8000) 
                  
                //该方法返回值:             
                //该方法执行正确返回值是语音翻译的文本,错误是错误号,可以去看百度语音文档,查看对应错误             
                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; 
                } 
                  
            }
    

      参考: http://yuyin.baidu.com/docs/asr/57 

    API请求方式基本说明

    • 语音识别接口支持 POST 方式
    • 目前 API 仅支持整段语音识别的模式,即需要上传整段语音进行识别
    • 语音数据上传方式有两种:隐示发送和显示发送
    • 原始语音的录音格式目前只支持评测 8k/16k 采样率 16bit 位深的单声道语音
    • 压缩格式支持:pcm(不压缩)、wav、opus、speex、amr、x-flac
    • 系统支持语言种类:中文(zh)、粤语(ct)、英文(en)
    • 正式地址:http://vop.baidu.com/server_api
  • 相关阅读:
    LLVM生成中间码以及汇编代码
    汇编知识
    delphi 连接 c++ builder 32 生成obj文件
    新知识
    Java的Guid生成
    sql:一对多【转载】
    关于使用js完成购物车计算时的一些问题。
    mysql多条件查询,当某个条件为空时忽略该条件,所有条件为空时查询全部
    转载:获取用户的真实ip地址
    ssh 报错hibernate java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to XXX
  • 原文地址:https://www.cnblogs.com/geovindu/p/4995169.html
Copyright © 2020-2023  润新知