C# 調用Google語音識別

最近在折騰語音方面的東西,所以看了下GOOGL的語音識別,經過GOOGLE發現Google的語音引擎是通過http來請求的,並且已經獲取到http的地址,中文的調用Url爲:http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=zh-CN 其實一看就知道替換zh-CN 成其它語言也是可以的.那麼在C#中如何調用呢,直接看代碼:

/// <summary>
        /// 調用GOOLE語音識別引擎
        /// </summary>
        /// <returns></returns>
        private string GoogleSTT()
        {
            string result = string.Empty;
            try
            {
                string inFile = "audio.wav";
                FileStream fs = new FileStream(inFile, FileMode.Open);
                byte[] voice = new byte[fs.Length];
                fs.Read(voice, 0, voice.Length);
                fs.Close();
                HttpWebRequest request = null;
                Uri uri = new Uri(url);
                request = (HttpWebRequest)WebRequest.Create(uri);
                request.Method = "POST";
                request.ContentType = "audio/x-flac; rate=16000";
                request.ContentLength = voice.Length;
                using (Stream writeStream = request.GetRequestStream())
                {
                    writeStream.Write(voice, 0, voice.Length);
                }
  
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    using (Stream responseStream = response.GetResponseStream())
                    {
                        using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8))
                        {
                            result = readStream.ReadToEnd();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            return result;
        }

其實就是直接通過http請求,然後獲取返回的識別結果,不過有需要注意的地方 request.ContentType = "audio/x-flac; rate=16000;這句寫的不對會有影響的,google默認的是audio/x-flac的,支持flac格式,要想支持wav、mp3等格式,在網上查之後說只能通過格式轉換,如果是直接提交wav文件是無法識別的;後來我在訊飛的語音識別引擎的時候發現他們的也是http的,但是他們的是可以這樣寫的audio/L16,然後我就嘗試着把google的也改成這樣,不出所料可以支持wav格式了,這隻說明google是有支持的,可能只是有些參數由於google對api的封閉,我們不清楚而已。

發佈了20 篇原創文章 · 獲贊 8 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章