BlogAzure KI Übersetzer – Anwendungen mit AI-basierter Übersetzung entwickeln

Azure KI Übersetzer – Anwendungen mit AI-basierter Übersetzung entwickeln

Einführung in den Azure KI Übersetzer

Ein weiteres Beispiel für die Leistungsfähigkeit der Azure-KI-Dienste ist der Azure KI Translator. Er ist sowohl in der Lage, die Sprache eines Textes zu erkennen, als auch diesen in die Sprache deiner Wahl zu übersetzen. In diesem Beitrag zeige ich dir, wie du aus deinem Anwendungscode mit Hilfe des  .Net-SDKs einen entsprechenden Request an den Azure KI Übersetzer senden kannst.

Der Azure KI Übersetzer ist ein cloudbasierter Service für neuronale maschinelle Übersetzungen und Teil der Azure KI Services. Er ist mit allen Betriebssystemen kompatibel. Die Textübersetzung wird in zahlreichen Microsoft-Produkten und -Diensten genutzt und von Tausenden Unternehmen weltweit für Sprachübersetzungen und andere sprachbezogene Aufgaben eingesetzt. So integrierst du beispielsweise ganz einfach Funktionen für die Textübersetzung in Echtzeit in deine Anwendungswebsites, Tools oder Lösungen, sofern diese  mehrsprachige Unterstützung erfordern, z. B. Websitelokalisierung, E-Commerce, Kundensupport, Messaginganwendungen, interne Kommunikation und vieles mehr.

In diesem Artikel zeige ich dir, wie du mit dem Übersetzer intelligente, mehrsprachige Lösungen für deine Anwendungen in allen unterstützten Sprachen entwickeln kannst. Der Dienst unterstützt die folgenden Funktionen:

  • Dokumentübersetzung: Mit Hilfe der Dokumentübersetzung kannst du komplette Dokumente zur Übersetzung an den Dienst übergeben. Hier sind zwei Fälle zu unterscheiden.
  • Die „asynchroneBatch-Übersetzung“ übersetzt Batchdateien und komplexe Dateien mit dem Ziel, die Struktur und des Formats der Originaldokumente beizubehalten. Für den Batch-Übersetzungsprozess brauchst du zusätzlich ein Azure Blob-Speicherkonto mit Containern für deine Quell- und Ziel-Dokumente.
  • Bei der „Synchronen Einzeldatei-Übersetzung“ kannst du entweder eine einzelne Dokument-Datei für sich oder diese unter Zuhilfenahme einer Glossardatei unter Beibehaltung der Struktur und des Formats des Originaldokuments übersetzen. Im Gegensatz zur asynchronen Übersetzung ist hierbei kein Azure Blob Storage notwendig, weil die endgültige Antwort direkt das übersetzte Dokument an den aufrufenden Client übergibt.
  • Benutzerdefinierter Übersetzer: mit Hilfe des benutzerdefinierten Übersetzers kannst du zwecks Übersetzung domänen- und branchenspezifische Sprache, Terminologie und Stile auch selbst angepasste Modelle verwenden.

Lass uns jetzt ein einfaches Beispiel für die Textübersetzung starten. Wie üblich brauchst du dazu zunächst die zugehörige Azure-AI-Services-Ressource, diesmal von Typ „Übersetzer“. Diese kannst du im Azure-Portal bei „Azure AI services“ erstellen. Klicke dort auf „Translator erstellen“ und wähle wie üblich Ressourcengruppe, Region, Name und einen Tarif. Der Free-Tarif F0 ist für kleinere Texte (bis zu 2M Zeichen) kostenlos.

Erstellen eines Übersetzers

Für das folgende Beispiel kannst du wahlweise die Azure-Cloud-Shell verwenden oder deine eigene Umgebung. Ich verwende in diesem Beispiel VS Code. Hier legst du im Verzeichnis deiner Wahl wie schon bei den vorangegangene Beispielen eine Anwendungskonfigurationsdatei mit dem Namen „appsettings.json“ an. Diese hat diesmal „nur“ folgenden Inhalt:

{
    “CognitiveServiceKey”: “YOUR_COGNITIVE_SERVICES_KEY”,
    “CognitiveServiceRegion”: “YOUR_COGNITIVE_SERVICES_LOCATION”
}

Du musst hier nur den API-Key deiner Übersetzer-Ressource und deinen Standort eintragen. Der (http)-Endpunkt hingegen für den Übersetzer lautet für Textübersetzungen; https://api.cognitive.microsofttranslator.com. Nur bei Dokumentübersetzungen gibt es einen spezifischen Endpunkt für deine Übersetzer-Ressource https://<name-uebersetzer>.cognitiveservices.azure.com/

Die Wen-AP-Endpunkte für Text- und/oder Dokument-Übersetzung

Ergänze also deine Datei appsettings.json entsprechend:

Anpassen deiner Konfigurationsdatei für C#
Anpassen deiner Konfigurationsdatei für C#

Außerdem musst du natürlich noch in VS-Code das passende .Net-SDK installieren. Dies erreichst du mit:

dotnet add package Azure.AI.Translation.Text --version 1.0.0-beta.1

Installieren des .Net-SDKs für Azure-AI-Textübersetzungen

Nun kannst du deine Programm-Datei erstellen. In C# wäre das „Program.cs mit folgenden Rumpf-Inhalt:

using System;
using System.IO;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Text;
using System.Net.Http;
using Microsoft.Extensions.Configuration;
using System.Threading.Tasks;

// import namespaces

namespace translate_text
{
    class Program
    {
        static async Task Main(string[] args)
        {
            try
            {

                // Set console encoding to Unicode
                Console.InputEncoding = Encoding.Unicode;
                Console.OutputEncoding = Encoding.Unicode;


                // Get config settings from AppSettings
                IConfigurationBuilder builder = new
                   ConfigurationBuilder().AddJsonFile("appsettings.json");
                IConfigurationRoot configuration = builder.Build();
                string translatorRegion = configuration["TranslatorRegion"];

                string translatorKey = configuration["TranslatorKey"];

                // Create client using endpoint and key
                // Choose target language

                // Translate text         

            }
            catch (Exception ex)
            {

                Console.WriteLine(ex.Message);
            }
        }
    }
}

Du musst das Beispiel bei Interesse natürlich nicht abtippen. Microsoft stellt diesen Beispielcode im Repository https://github.com/MicrosoftLearning/mslearn-ai-language zur Verfügung. Klone einfach dieses Repo in VS Code, lege dabei deinen lokalen Ziel-Ordner fest, öffne ihn in VS Code und navigiere zum Verzeichnis „…b-translator-sdk\C-Sharp\translate-text“. Dort findest du die Programm-Datei:

Der Rumpf unserer C#-Programmdatei ist im Repo bereits enthalten

Nun wollen wir den Programm-Code weiter ergänzen. Zuerst musst du die Unterstützung für Azure und Azure-AI-text-Analytics einbinden, bzw. als „Namespaces“ importieren. Dazu suchst du einfach nach dem Kommentar „//import namespaces“ und ersetzt ihn durch …

// import namespaces
 using Azure;
 using Azure.AI.Translation.Text;

Dann musst du in der Main-Function einen Text-Anayltics-Client erstellen und die erforderlichen Variablen zur aus der o. e. Konfigurationsdatei für den API-Schlüssel und deinen Standort an ihn übergeben:

// Create client using endpoint and key
 AzureKeyCredential credential = new(translatorKey);
 TextTranslationClient client = new(credential, translatorRegion);

Suche im Code-Gerüst nach dem Kommentar „Choose target language“ und füge folgenden Code hinzu. Dieser verwendet den Textübersetzungsdienst, um die Liste der unterstützten Sprachen zur Übersetzung zurückzugeben, und fordert den Benutzer auf, einen Sprachcode für die Zielsprache auszuwählen.

// Choose target language
 Response<GetLanguagesResult> languagesResponse = await

   client.GetLanguagesAsync(scope:"translation").ConfigureAwait(false);
 GetLanguagesResult languages = languagesResponse.Value;
 Console.WriteLine($"{languages.Translation.Count} languages available.\n(See  
    
   https://learn.microsoft.com/azure/ai-services/translator/language-
   support#translation)”);
 Console.WriteLine("Enter a target language code for translation (for example, 'en'):");
 string targetLanguage = "xx";
 bool languageSupported = false;
 while (!languageSupported)

 {
     targetLanguage = Console.ReadLine();
     if (languages.Translation.ContainsKey(targetLanguage))
     {
         languageSupported = true;
     }
     else
     {
         Console.WriteLine($"{targetLanguage} is not a supported language.");
     }
 }

Suche danach im Code-Gerüst nach dem Kommentar „Translate Text“ und füge dort folgenden Code hinzu. Dieser fordert den Benutzer wiederholt zur Übersetzung von Text auf und verwendet den Azure AI Translator-Dienst, um ihn in die Zielsprache zu übersetzen. Die Ausgangssprache wird dabei automatisch erkannt und das Ergebnis angezeigt, bis der Benutzer „quit“ eingibt.

// Translate text
 string inputText = "";
 while (inputText.ToLower() != "quit")
 {

     Console.WriteLine("Enter text to translate ('quit' to exit)");
     inputText = Console.ReadLine();
     if (inputText.ToLower() != "quit")
     {
         Response<IReadOnlyList<TranslatedTextItem>> translationResponse = await
            client.TranslateAsync(targetLanguage, inputText).ConfigureAwait(false);
         IReadOnlyList<TranslatedTextItem> translations = translationResponse.Value;

         TranslatedTextItem translation = translations[0];
         string sourceLanguage = translation?.DetectedLanguage?.Language;
         Console.WriteLine($"'{inputText}' translated from {sourceLanguage} to
            {translation?.Translations[0].To} as '{translation?.Translations?[0]?.Text}'.");
     }
 }

Der vollständige Programm-Code

Nun kannst du den Programmcode speichern und testen.

dotnet run

Da wir hier die oben erwähnte „Synchrone Einzeldate Übersetzung” testen, muss du nach der Aufforderung eine gültige Zielsprache aus der angezeigten Liste eingeben. Danach gibst du die zu übersetzende Phrase ein. Das Programm zeigt dir die Ergebnisse an, also das Erkennen der Ausgangssprache und die Übersetzung. Wenn du aufhören möchtest, gibst du „quit“ ein.

Übersetzung in Echtzeit aus deinem Programm heraus
Übersetzung in Echtzeit aus deinem Programm heraus

Kontakt

Dein INCAS Team
Akkordion öffnen
telephone-icon-contact-coaching-box
0800 4772466
email-icon-contact-coaching-box
info@incas-training.de

*“ zeigt erforderliche Felder an

Hidden
Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Schulungen die dich interessieren könnten

Bewertungen

Kundenstimme männlich
Mausolf B.
Struers GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Tolle Schulung - kompetenter Trainer, der geduldig auf alle Fragen einging, diese beantworten konnte und darüber hinaus viele neue Anregungen mit auf den Weg gab. Die Schulung hat Spaß gemacht.
Kundenstimme männlich
Markus H.
CARAT Dreieich
star-participantstar-participantstar-participantstar-participantstar-participant
Der Trainer machte einen sehr netten und kompetenten Eindruck und ging auf unsere Wünsche und Anregungen sehr praxisorientiert ein .
Kundenstimme männlich
Nina P.
GEUTEBRÜCK GmbH
star-participantstar-participantstar-participantstar-participantstar-participant
Das Seminar hat meine Erwartungen voll erfüllt. Man hat gemerkt, dass der Trainer Spaß an der Sache und sehr viel Ahnung vom Thema hat. Das Gefühl hat man nicht in allen Schulungen (auf Schulungen im Allgemeinen bezogen).
Kundenstimme männlich
Martin S.
Bundeseisenbahnvermögen
star-participantstar-participantstar-participantstar-participantstar-participant
Das Training zeichnet sich durch einen sehr hohen Praxisbezug und Raum für individuelle Hilfe persönlicher Problemstellungen sowie durch einen engagierten und hoch kompetenten Trainer aus.