2017-03-04 4 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(); 

는 이제이 방법을 번역 호출이 ende에 변환합니다 :

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)를 참조하십시오. 가격은 페이지 하단으로 이동하십시오. Translator Text API 및 Translator Speech API. –

관련 문제