2011-09-16 5 views
0

から400ビングテキストは、私からの情報を入手:http://msdn.microsoft.com/en-us/library/ff512420.aspxエラー私はビングのAPI TTSを使用しているスピーチ

これは(websideから)コードです:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Net; 
using System.IO; 
using System.Media; 

namespace Apigoogleprova 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 


     private void button2_Click(object sender, EventArgs e) 
     { 
      Speak(); 

     } 

    private static void ProcessWebException(WebException e, string message) 
    { 
     Console.WriteLine("{0}: {1}", message, e.ToString()); 

     // Obtain detailed error information 
     string strResponse = string.Empty; 
     using (HttpWebResponse response = (HttpWebResponse)e.Response) 
     { 
      using (Stream responseStream = response.GetResponseStream()) 
      { 
       using (StreamReader sr = new StreamReader(responseStream, System.Text.Encoding.ASCII)) 
       { 
        strResponse = sr.ReadToEnd(); 
       } 
      } 
     } 
     Console.WriteLine("Http status code={0}, error message={1}", e.Status, strResponse); 
    } 

    public static void Speak() 
    { 
     string appId = "myappID"; //go to http://msdn.microsoft.com/en-us/library/ff512386.aspx to obtain AppId. 
     string text = "speak to me"; 
     string language = "en"; 

     string uri = "http://api.microsofttranslator.com/v2/Http.svc/Speak?&appId=" + appId +"&text;=" + text + "&language;=" + language; 
     HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(uri); 
     //httpWebRequest.Proxy = new WebProxy(""); set your proxy name here if needed 

     WebResponse response = null; 
     try 
     { 
      response = httpWebRequest.GetResponse(); 
      using (Stream stream = response.GetResponseStream()) 
      { 
       using (SoundPlayer player = new SoundPlayer(stream)) 
       { 
        player.PlaySync(); 
       } 
      } 
     } 
     catch (WebException e) 
     { 
      //ProcessWebException(e, "Failed to speak"); 
      MessageBox.Show("Error"+e); 
     } 
     finally 
     { 
      if (response != null) 
      { 
       response.Close(); 
       response = null; 
      } 
     } 
    } 



} 
} 

(私は「myappID変更しました」)私に、マイクロソフトが提供しているIDと

私はアプリを実行すると、私は次のエラーを取得する:

Remote Server Error (400) Bad Request

私は私のブラウザ(Firefoxの、クロムとIE)を使用してWebに行くことを試みた:

http://api.microsofttranslator.com/v2/Http.svc/Speak?&appId=myappID&text;=speak私&言語に、

EN =結果は次のとおりです。

**Argument Exception** 
Method: Speak() 
Parameter: text Message: Value cannot be null. 
Parameter name: text message 
id=3835.V2_Rest.Speak.25BD061A 

誰もがどのように知っていますこの問題を解決します?

ありがとうございました!

+1

ロングショットを完了しました。クエリ文字列のパラメータ名から? – AndrewC

+0

ありがとうございます!それは問題を解決する!正しいコードは:string uri = "http://api.microsofttranslator.com/v2/Http.svc/Speak?&appId=" + appId + "&text =" + text + "&language =" + language; – Juliet

+0

私は答えとして、完全性のために置いておきます。 – AndrewC

答えて

1

;クエリ文字列のパラメータ名から削除します。

関連する問題