2012-01-08 13 views
4

次の簡単なコードは、Google Speech2Textサービスにウェーブファイルを投稿しようとしていますが、常に「ゲートウェイタイムアウト(504)」または一般的な例外「操作がタイムアウトしました。誰でも助けてくれますか?C#でGoogle Speech2Textを使用しようとしています

public void ProcessWaveFile(string path) 
    { 
     HttpWebRequest request = 
      (HttpWebRequest)HttpWebRequest.Create(
       "https://www.google.com/"+ 
       "speech-api/v1/recognize?"+ 
       "xjerr=1&client=speech2text&lang=en-US&maxresults=10"); 

     ServicePointManager.ServerCertificateValidationCallback += 
        delegate { return true; }; 

     request.Timeout = 60000; 
     request.Method = "POST"; 
     request.KeepAlive = true;   
     request.ContentType = "audio/wav"; 
     request.UserAgent = "speech2text"; 

     FileInfo fInfo = new FileInfo(path); 
     long numBytes = fInfo.Length; 
     byte[] data; 

     using (FileStream fStream = new FileStream(
              path, 
              FileMode.Open, 
              FileAccess.Read)) 
     { 
      data = new byte[fStream.Length]; 
      fStream.Read(data, 0, (int)fStream.Length); 
      fStream.Close(); 
     } 

     using (Stream wrStream = request.GetRequestStream()) 
      wrStream.Write(data, 0, data.Length); 

     try 
     { 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
      var resp = response.GetResponseStream(); 

      if (resp != null) 
      { 
       StreamReader sr = new StreamReader(resp); 
       MessageBox.Show(sr.ReadToEnd()); 

       resp.Close(); 
       resp.Dispose(); 
      } 
     } 
     catch (System.Exception ee) 
     { 
      MessageBox.Show(ee.Message); 
     }   
    } 

多くのありがとう。

Shujaat

答えて

2

あなたのコードは次のように変更して私の作品:

Request.ContentType = "audio/x-flac; rate=8000"; 

、あなたがFLACフォーマットであるとニーズを提供したファイル。

WMAファイルを生成するWindowsサウンドレコーダーで小さなサンプルを録音しました。それから私は、コメントでも、いくつかの拡張APIドキュメントで良いnon c# reference

(RAW形式、1つのチャネルおよび8000 kbps単位で出力することを確認し、変換オプションを使用して)FLACにWMAファイルを変換する VLC Playerを使用

関連する問題