Meilleur auteur de réponses
Utilisation de Azure Cognitive Services account ( Translator Text API)

Question
-
Bonjour,
J'aimerais avoir de l'aide ou un exemple en VB.Net pour pouvoir utiliser Azure Cognitive Services account ( Translator Text API).
Voici ce que je veux faire de base : dans un textbox j'ai un text en anglais et sur le clic d'un bouton je veux traduire ce texte en français dans un 2e textbox.
Si vous êtes des pro et que cela vous tente de m'écrire quelques ligne de code pour la connexion au service Azure Cognitive Services account ( Translator Text API) ainsi que de m'expliquer le fonctionnement j'en serais très heureux!
Merci!
Réponses
-
Bonjour Patrick,
Est-ce que vous développez une application Windows Forms ou Windows Presentation Foundation ? Pour vous inscrire dans le but d’accèder gratuitement à l’API Translator Text, je vous propose de suivre cet article :
Getting Started With Microsoft Azure Cognitive Services - Translator Text APIEn ce qui concerne le code, je vous propose de tester un exemple que j’ai trouvé et converti de C# en Visual Basic :
Imports System.Net.Http ' Obtenir un jeton d’accès de manière asynchrone ' Le paremètre subscriptionKey contient la clé nécessaire pour l’authentication. Cf. le Resource Manager du premier lien pour plus de précisions en ce qui concerne les clés. ' La valeur de retour, c’est le jeton d’accès. Private Async Function GetAccessTokenAsync(subscriptionKey As String) As Task(Of String) Using client = New HttpClient() Using request = New HttpRequestMessage() request.Method = HttpMethod.Post request.RequestUri = New Uri("https://api.cognitive.microsoft.com/sts/v1.0/issueToken") request.Content = New StringContent(String.Empty) request.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", subscriptionKey) Using response = Await client.SendAsync(request) response.EnsureSuccessStatusCode() Dim token = Await response.Content.ReadAsStringAsync() Trace.WriteLine("token=" & token) Return token End Using End Using End Using End Function ' Traduire le texte ' Le paramètre token est nécessaire pour l’API. ' fromLang : langue d’origine ; toLang : langue cible Private Async Function TranslateText(token As String, text As String, fromLang As String, toLang As String) As Task(Of String) Using client = New HttpClient() Using request = New HttpRequestMessage() Dim escapeText = Uri.EscapeDataString(text) Trace.WriteLine("escapeText=" & escapeText) Dim uriStr = "http://api.microsofttranslator.com/V2/Http.svc/Translate?" + "text=" & escapeText & "&from=" & fromLang & "&to=" & toLang request.Method = HttpMethod.Get request.RequestUri = New Uri(uriStr) request.Headers.Authorization = New AuthenticationHeaderValue("Bearer", token) Using response = Await client.SendAsync(request) response.EnsureSuccessStatusCode() Dim resultText = Await response.Content.ReadAsStringAsync() ' On utilise XDocument parce que le format ressemble à <string>XXXXXX</string> Dim xdoc As XDocument = XDocument.Parse(resultText) Trace.WriteLine("xdoc=" & xdoc.ToString()) ' Pour le but de la vérification au cas où les séquences d’échappement XML ne seront pas converties correctement Return xdoc.Descendants().First().Value End Using End Using End Using End Function Private Async Sub button_Click(sender As Object, e As EventArgs) ' Insérez ici le KEY1 qui est nécessaire pour l’authentification Dim subscriptionKey As String = "XXXXXXXXX" ' On obtient le jeton d’accès. Le temps valide est d’environ dix minutes. Dim token = Await GetAccessTokenAsync(subscriptionKey) ' Affichez le texte traduit. textBoxOutput.Text = Await TranslateText(token, textBoxInput.Text, textBoxLangFrom.Text, textBoxLangTo.Text) End Sub
Source: Traduire un texte en utilisant l’API Translator Text via un programme (en japonais)
Si vous développez un projet WPF, vous trouverez l’extrait de code XAML dans la source ci-dessus. Dans ce cas, déclarez button_Click comme :
Private Async Sub button_Click(sender As Object, e As RoutedEventArgs) '... End Sub
Cordialement,
Dimitar
- Modifié Dimitar DenkovMicrosoft contingent staff, Moderator vendredi 9 décembre 2016 12:48 "escapeText" -> escapeText
- Marqué comme réponse Patrick Bergeron vendredi 9 décembre 2016 15:21
Toutes les réponses
-
Bonjour Patrick,
Est-ce que vous développez une application Windows Forms ou Windows Presentation Foundation ? Pour vous inscrire dans le but d’accèder gratuitement à l’API Translator Text, je vous propose de suivre cet article :
Getting Started With Microsoft Azure Cognitive Services - Translator Text APIEn ce qui concerne le code, je vous propose de tester un exemple que j’ai trouvé et converti de C# en Visual Basic :
Imports System.Net.Http ' Obtenir un jeton d’accès de manière asynchrone ' Le paremètre subscriptionKey contient la clé nécessaire pour l’authentication. Cf. le Resource Manager du premier lien pour plus de précisions en ce qui concerne les clés. ' La valeur de retour, c’est le jeton d’accès. Private Async Function GetAccessTokenAsync(subscriptionKey As String) As Task(Of String) Using client = New HttpClient() Using request = New HttpRequestMessage() request.Method = HttpMethod.Post request.RequestUri = New Uri("https://api.cognitive.microsoft.com/sts/v1.0/issueToken") request.Content = New StringContent(String.Empty) request.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", subscriptionKey) Using response = Await client.SendAsync(request) response.EnsureSuccessStatusCode() Dim token = Await response.Content.ReadAsStringAsync() Trace.WriteLine("token=" & token) Return token End Using End Using End Using End Function ' Traduire le texte ' Le paramètre token est nécessaire pour l’API. ' fromLang : langue d’origine ; toLang : langue cible Private Async Function TranslateText(token As String, text As String, fromLang As String, toLang As String) As Task(Of String) Using client = New HttpClient() Using request = New HttpRequestMessage() Dim escapeText = Uri.EscapeDataString(text) Trace.WriteLine("escapeText=" & escapeText) Dim uriStr = "http://api.microsofttranslator.com/V2/Http.svc/Translate?" + "text=" & escapeText & "&from=" & fromLang & "&to=" & toLang request.Method = HttpMethod.Get request.RequestUri = New Uri(uriStr) request.Headers.Authorization = New AuthenticationHeaderValue("Bearer", token) Using response = Await client.SendAsync(request) response.EnsureSuccessStatusCode() Dim resultText = Await response.Content.ReadAsStringAsync() ' On utilise XDocument parce que le format ressemble à <string>XXXXXX</string> Dim xdoc As XDocument = XDocument.Parse(resultText) Trace.WriteLine("xdoc=" & xdoc.ToString()) ' Pour le but de la vérification au cas où les séquences d’échappement XML ne seront pas converties correctement Return xdoc.Descendants().First().Value End Using End Using End Using End Function Private Async Sub button_Click(sender As Object, e As EventArgs) ' Insérez ici le KEY1 qui est nécessaire pour l’authentification Dim subscriptionKey As String = "XXXXXXXXX" ' On obtient le jeton d’accès. Le temps valide est d’environ dix minutes. Dim token = Await GetAccessTokenAsync(subscriptionKey) ' Affichez le texte traduit. textBoxOutput.Text = Await TranslateText(token, textBoxInput.Text, textBoxLangFrom.Text, textBoxLangTo.Text) End Sub
Source: Traduire un texte en utilisant l’API Translator Text via un programme (en japonais)
Si vous développez un projet WPF, vous trouverez l’extrait de code XAML dans la source ci-dessus. Dans ce cas, déclarez button_Click comme :
Private Async Sub button_Click(sender As Object, e As RoutedEventArgs) '... End Sub
Cordialement,
Dimitar
- Modifié Dimitar DenkovMicrosoft contingent staff, Moderator vendredi 9 décembre 2016 12:48 "escapeText" -> escapeText
- Marqué comme réponse Patrick Bergeron vendredi 9 décembre 2016 15:21
-
-
Merci Beaucoup cela fonctio0nne à merveille sauf petite erreur dans le code
remplacer le :
Dim uriStr = "http://api.microsofttranslator.com/V2/Http.svc/Translate?" + "text=" & "escapeText" & "&from=" & fromLang & "&to=" & toLang
par
Dim uriStr = "http://api.microsofttranslator.com/V2/Http.svc/Translate?" + "text=" & escapeText & "&from=" & fromLang & "&to=" & toLang
-
Bonjour Patrick,
Merci de m’avoir prévenu. Je viens de corriger l’erreur. Si l’exemple de code vous a aidé à résoudre votre problème, vous pouvez marquer la contribution comme réponse. De la sorte, la contribution contenant la résolution sera soulignée et facile à trouver pour les lecteurs futurs qui ont le même objectif.
Cordialement,
Dimitar
- Modifié Dimitar DenkovMicrosoft contingent staff, Moderator vendredi 9 décembre 2016 15:18