2017-03-04 6 views
3

英語のテキストをヒンディー語のテキストに変換しようとしています。そのために私はMicrosoft Text Translator APIを使用しています。しかし、私のテキストの一部は翻訳されていません。Microsoft Translate APIが正しく動作しません。

Googleでは、以下のコードを見つけました。

public string GetHindiText(string textToTranslate) 
    { 
     Carrier.ErrorCode = 0; 
     string TranslatedText = string.Empty; 
     try 
     { 
      Translator.LanguageServiceClient objTranslate = new Translator.LanguageServiceClient(); 
      TranslatedText = objTranslate.Translate("***************", textToTranslate, "en", "hi"); 
     } 
     catch (WebException ex) 
     { 
      Carrier.ErrorCode = 1; 
      return ex.Message; 
     } 
     return TranslatedText; 
    } 

そして私は、サービス参照テキストのほとんどが翻訳されていない

http://api.microsofttranslator.com/V1/SOAP.svc

の下に追加されました。私はあなたの提案が必要です。 私は正しい方法でやっていますか、私は変更する必要があります。どんな助けも私には大いに役立ちます。

ありがとうございます。

答えて

3

NuGetパッケージNequeoNetTranslatorを参照してください。これには、テキストおよび音声翻訳APIが含まれています。これは新しいCognitiveバージョンを使用して、テキスト翻訳の

サンプル、最初の翻訳を通じて、[KEY]あなたのアクセストークンを取得:

Nequeo.Net.Translator.Microsoft.Cognitive.Api apiat = new Nequeo.Net.Translator.Microsoft.Cognitive.Api(new Uri("https://api.cognitive.microsoft.com/sts/v1.0/")); 
apiat.Credentials = new System.Net.NetworkCredential("[KEY]", "[KEY]"); 
string token = apiat.GetAccessToken(); 

今translateメソッドを呼び出すと、これはdeからenを翻訳します:

Nequeo.Net.Translator.Microsoft.Cognitive.Api api = new Nequeo.Net.Translator.Microsoft.Cognitive.Api(new Uri("https://api.microsofttranslator.com/v2/http.svc/")); 
api.Credentials = new System.Net.NetworkCredential("[KEY]", "[KEY]"); 
byte[] data = api.Translate("hello", "de", "en", null, token); 
Translation[] tran = api.Translate(data); 
string tranText = System.Text.Encoding.Default.GetString(data); 

あなたはその後、サンプルコード音声をテキストに使用している場合:

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

    Nequeo.Net.Translator.Microsoft.Cognitive.SpeechApi apiat = null; 

    private void button1_Click(object sender, EventArgs e) 
    { 
     apiat = new Nequeo.Net.Translator.Microsoft.Cognitive.SpeechApi(new Uri("wss://dev.microsofttranslator.com/speech/")); 
     apiat.Credentials = new System.Net.NetworkCredential("[KEY]", "[KEY]"); 
     string token = apiat.GetAccessToken(new Uri("https://api.cognitive.microsoft.com/sts/v1.0/")); 

     apiat.OnRecording += Apiat_OnRecording; 
     apiat.OnStopRecording += Apiat_OnStopRecording; 
     apiat.OnTranslationReceived += Apiat_OnTranslationReceived; 

     Nequeo.IO.Audio.Device device_in = Nequeo.IO.Audio.Devices.GetDeviceIn(0); 
     apiat.AudioDevice = device_in; 
     apiat.WriteStream = new System.IO.MemoryStream(); 

     apiat.Translate("hr-HR", "en-US", token); 
    } 

    private void Apiat_OnTranslationReceived(object sender, EventArgs e) 
    { 
     System.IO.MemoryStream jj = (System.IO.MemoryStream)apiat.WriteStream; 

     string gg = Encoding.Default.GetString(jj.ToArray()); 

     Nequeo.Net.Translator.Microsoft.Cognitive.SpeechTranslation dffddf = apiat.GetSpeechTranslation(); 
    } 

    private void Apiat_OnStopRecording(object sender, EventArgs e) 
    { 
     bool kk = true; 

    } 

    private void Apiat_OnRecording(object sender, EventArgs e) 
    { 
     bool kk = true; 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     apiat.StopTranslate(); 
    } 
} 
+0

あなたの返事をありがとう。キーを取得するにはMicrosoft Azure認知サービスを購読する必要がありますか?それはサービスを支払っていますか? – Sagar

+0

[TranslatorAPI](https://www.microsoft.com/cognitive-services/en-us/translator-api)を参照して、価格についてはページの下部に移動してください:翻訳者用テキストAPIおよび翻訳者用音声API。 –

関連する問題