
Share:
)
Kelly J. Andrews ist eine Entwicklerin, die sich für Nexmo einsetzt. Sie bastelt seit über 30 Jahren an Computern und verwendete BASIC zum ersten Mal im Alter von 5 Jahren.
Erst als er 1997 seine erste Webseite erstellte und JavaScript zum ersten Mal ausprobierte, fand er seine wahre Berufung. Kelly kämpft jetzt für JavaScript, testbaren Code und schnelle Lieferung.
Er singt Karaoke, zaubert oder feuert die Cubs und die Fighting Irish an.
Textübersetzung API Vergleich
Textübersetzungs-APIs sind in der globalen Umgebung des ein- und ausgehenden Nachrichtenverkehrs unerlässlich. Amazon Web Services, Google Cloud Platform, IBM Watson und Microsoft Azure haben alle starke Angebote. In diesem Beitrag werden einige meiner Erkenntnisse aus der Nutzung der einzelnen Dienste vorgestellt.
Amazon übersetzen
Eigenschaften
Amazon Transcribe verwendet die so genannte neuronale maschinelle Übersetzung, um natürlichere Sprachübersetzungen zu erstellen. Der Service bietet sowohl Echtzeit- als auch Batch-Prozesse, so dass der Entwickler die Möglichkeit hat, Text sofort zu übersetzen oder nachträglich zu bearbeiten.
Amazon Translate bietet 54 Sprachen zur Auswahl an, was Ihnen eine große Auswahl an Optionen bietet. Der Dienst erkennt auch die Ausgangssprache und bietet so zusätzliche Flexibilität. Sie können auch Ihre Terminologie anpassen, um sicherzustellen, dass Sie eine größere Genauigkeit haben, wenn es um Ihren spezifischen Anwendungsfall geht.
Benutzerfreundlichkeit
Das AWS SDK von Amazon enthält Amazon Translate für mehrere Programmiersprachen. Ich habe JavaScript verwendet und hatte keine Probleme bei der Arbeit mit dem Dienst.
Die Dokumentation für Amazon Translate ist einfach genug, um den Einstieg zu erleichtern, und gründlich genug, um bei Bedarf auch komplexere Themen abzudecken. Es gibt auch einige Beispiele, die Ihnen den Einstieg erleichtern.
Meine Übersetzungsmethode ist unten als Beispiel aufgeführt -
function translateText(params) {
var translate = new AWS.Translate({region: process.env.AWS_REGION})
var opts = {
SourceLanguageCode: 'auto',
TargetLanguageCode: 'en',
Text: params.text
};
translate.translateText(opts, function(err, data) {
if (err) {
console.log(err, err.stack);
}
else{
console.log(params.text);
console.dir(data, {depth: null})
}
});
}
Die Antwort des Dienstes könnte möglicherweise mehr Informationen enthalten, aber die bereitgestellten Daten reichen aus, um zu funktionieren. Ich würde gerne wissen, wie der ursprüngliche Text lautete und vielleicht einige id
um die Anrufe später zuzuordnen. Ich kann dies in meine App einbauen, aber die zusätzlichen Informationen wären hilfreich.
Hola
{
TranslatedText: 'Hello',
SourceLanguageCode: 'es',
TargetLanguageCode: 'en'
}
Halo
{
TranslatedText: 'Hello. Hello',
SourceLanguageCode: 'id',
TargetLanguageCode: 'en'
}
Ein vollständiges Beispiel und eine Anleitung finden Sie in meinem vorherigen Amazon Translate-Beitrag.
Preisgestaltung
Die Preisstruktur für Amazon Translate ist ganz einfach. Der Dienst ist ein Pay-as-you-go-Service und wird pro Zeichen berechnet. Es gibt auch eine kostenlose Stufe für den Einstieg.
AWS stellt Ihnen 12 Monate lang nach dem ersten Übersetzungsaufruf 2 Millionen Zeichen pro Monat kostenlos zur Verfügung, was für Testzwecke und sogar eine leichte Kundennutzung mehr als ausreichend ist. Alles, was über das Kontingent von 2 Millionen Zeichen hinausgeht, wird zum Standardtarif berechnet, der 15,00 $ pro Million Zeichen beträgt.
Azure Text Translator API
Eigenschaften
Die Azure Text Translator API ist ein Teil der Cognitive Services und verwendet neuronale maschinelle Übersetzung, um die Übersetzungen durchzuführen. Microsoft stellt auch ein zweisprachiges Wörterbuch zur Verfügung, um alternative Übersetzungen zu finden, wobei kontextbezogene Sätze bei der Auswahl der passenden Übersetzung helfen.
Azure Text Translator API bietet eine große Vielfalt an Sprachen und unterstützt über 60. Der Dienst bietet Transliteration, so dass Sie den Text ändern können, um verschiedene Alphabete zu verwenden. Benutzerdefinierte Modelle sind eine Option, um bestimmte Branchenbegriffe richtig zu behandeln. Bei Bedarf kann die Azure Text Translator API auch Dokumente übersetzen.
Ein einzigartiges Angebot von Azure ist die Möglichkeit, einen lokalen Übersetzungsdienst mit Ihren Android-Apps zu nutzen, um zu übersetzen, wenn keine Verbindung zum Internet besteht.
Benutzerfreundlichkeit
Zum Zeitpunkt der Erstellung dieses Artikels wurden die Azure-SDKs einigen bedeutenden Aktualisierungen unterzogen. Die Änderungen sind zum Besseren und rationalisieren die Einrichtung. Ich fand die Dokumentation manchmal etwas schwierig zu navigieren, aber der Quellcode hatte genug Kommentare, dass ich die Dinge in Ordnung bringen konnte.
Sobald ich die erforderlichen Parameter und Eingabeformate gefunden hatte, machte die vielversprechende Struktur des SDK den Code für JavaScript sehr einfach.
function translateText(params) {
const creds = new CognitiveServicesCredentials.ApiKeyCredentials({ inHeader: { 'Ocp-Apim-Subscription-Key': process.env.TEXT_TRANSLATION_SUBSCRIPTION_KEY } });
const client = new TranslatorTextClient(creds, process.env.TEXT_TRANSLATION_ENDPOINT);
client.translator
.translate(["en"], [{text:params.text}])
.then(data => {
console.dir(data, {depth: null})
})
.catch(err => {
console.error("error:", err);
});
}
Die translator.translate
Methode ermöglicht mehrere Eingaben sowohl für den Text als auch für die Sprachen. Die Eingabefelder ermöglichen die gleichzeitige Übersetzung von Nachrichten in verschiedene Sprachen sowie das Senden mehrerer Nachrichten in Stapeln.
Die Antwort ist leicht. Planen Sie ein, die getätigten Anrufe und den Originaltext in Ihrer Anwendung zu verfolgen. Diese Details werden nicht bereitgestellt.
[
{
detectedLanguage: { language: 'es', score: 1 },
translations: [ { text: 'Hello', to: 'en' } ]
}
]
Wie Sie diesen Dienst in JavaScript implementieren können, erfahren Sie in meinem Azure Text Translation API Beitrag.
Preisgestaltung
Die Preisstruktur für Azure Text Translation API erfolgt nach dem Pay-as-you-go-Prinzip und kostet 10 US-Dollar pro Million Zeichen. Der Dienst bietet keine kostenlose Stufe außerhalb der typischen Azure-Testphase.
Google Cloud Translate
Eigenschaften
Google Cloud Translation API verwendet die AutoML-Verarbeitung für natürliche Sprache, um die Übersetzungen zu liefern, die Sie von einem Google Translate-Dienst erwarten. Google Cloud bietet auch die Möglichkeit, benutzerdefinierte AutoML-Modelle zu trainieren oder die bereits vorhandenen Modelle zu verwenden.
Google Cloud Translate unterstützt über 100 Sprachen und bietet eine Spracherkennung. Es bietet ein Glossar, in dem branchenspezifische Terminologieübersetzungen priorisiert werden. Wenn Sie sich für eine benutzerdefinierte AutoML-Übersetzung entscheiden, können Sie benutzerdefinierte Modelle mit mehr als 50 Sprachpaaren erstellen.
Benutzerfreundlichkeit
Ich habe das Google Cloud SDK immer gerne für JavaScript-Projekte verwendet. Die Schnellstarts sind immer noch leicht zu verstehen und Referenzen für die API lassen sich leicht finden und sind gut strukturiert.
Google Cloud verwendet Dienstkonten für die Authentifizierung. Wenn Sie die Datei mit den Anmeldeinformationen im Stammverzeichnis des Projekts bereitstellen, verwaltet das SDK die Authentifizierung für Sie, so dass dies leicht meine Lieblings-Cloud-Service-API zu implementieren.
function translateText(params) {
const translate = new Translate();
const target = process.env.TARGET_LANGUAGE || 'en';
translate.translate(params.text, target)
.then(data => {
console.dir(data, {depth: null})
})
.catch(err => {
console.log('error', err);
});
}
Das translate
Objekt ist sehr einfach zu verwenden; allerdings enthält die Rückgabe nicht den ursprünglichen Text, der in der Antwort zurückgegeben wurde.
[
'Hi',
{
data: {
translations: [ { translatedText: 'Hi', detectedSourceLanguage: 'es' } ]
}
}
]
Eine detailliertere Anleitung, wie Google Cloud Translate mit JavaScript ausgeführt wird, finden Sie hier (https://developer.vonage.com/en/blog/extending-nexmo-google-cloud-translation-api-dr).
Preisgestaltung
Google Cloud Translate Preise bietet zwei Hauptstufen - Basic und Advanced. Der erweiterte Service verfügt über einige zusätzliche Funktionen und ist preislich identisch mit Basic, beide kosten 20 $ pro Million Zeichen.
Der Dienst ist ebenfalls umlagefinanziert, weist aber ausdrücklich darauf hin, dass er anteilig oder schrittweise abgerechnet wird. Anteilig bedeutet, dass er nicht wartet, bis Sie 1 Million erreichen, bevor er Ihnen die Nutzung in Rechnung stellt.
Ab dem 1. November 2019 bieten sie außerdem eine kostenlose Nutzung im Wert von 10 US-Dollar pro Monat an, die sich hervorragend für Entwicklungstests eignet.
IBM Watson Sprachübersetzer
Eigenschaften
Ähnlich wie die anderen drei Dienste, IBM Watson Language Translator ebenfalls die neuronale maschinelle Übersetzung, um genauere Ergebnisse zu erzielen. Die Erstellung benutzerdefinierter Modelle ist eine Option für diesen Dienstanbieter, die Ihnen die gleiche Kontrolle bietet.
Die Zahl der übersetzten Sprachen für IBM Watson Language Translator scheint mit nur etwa 30 am geringsten zu sein. Die Liste deckt die meisten Anwendungsfälle ab. Wenn Sie jedoch planen, eine bestimmte Sprache zu verwenden, sollten Sie die Liste überprüfen, bevor Sie beginnen.
IBM Watson Language Translator verfügt über einen Dokumentübersetzungsdienst und damit über einen gut abgerundeten Satz von Funktionen für die meisten Anwendungsfälle.
Benutzerfreundlichkeit
Das IBM Watson Language Translator JavaScript SDK hat bei weitem die ausführlichste Authentifizierungssyntax, aber die Methoden entsprechen im Allgemeinen auch denen der anderen Dienste.
Die Dokumentation ist einfach zu verstehen und bietet mehrere Beispielanwendungen für den Einstieg.
Ein kleiner Nachteil ist, dass der Dienst die Ausgangssprache nicht automatisch bestimmt, wie die anderen Dienste. Es gibt eine Methode, um die eingehende Sprache zu ermitteln. Allerdings müssen Sie das Übersetzungsmodell explizit festlegen.
function translateText(params) {
const languageTranslator = new LanguageTranslatorV3({
version: '2017-09-21',
authenticator: new IamAuthenticator({
apikey: process.env.TRANSLATE_IAM_APIKEY,
}),
url: process.env.TRANSLATE_URL,
});
const translateParams = {
text: params.text,
modelId: 'en-es',
};
languageTranslator.translate(translateParams)
.then(data => {
console.dir(data, {depth: null})
})
.catch(err => {
console.log('error:', err);
});
}
Auch hier gilt, dass die Antwort nicht den Originaltext enthält, also planen Sie entsprechend.
{
status: 200,
statusText: 'OK',
headers: {
'content-type': 'application/json;charset=UTF-8',
'content-length': '104',
'x-xss-protection': '1; mode=block',
'x-content-type-options': 'nosniff',
'content-security-policy': "default-src 'none'",
'cache-control': 'no-cache, no-store',
pragma: 'no-cache',
'content-language': 'en-US',
'strict-transport-security': 'max-age=31536000; includeSubDomains;',
'x-global-transaction-id': 'guid',
'x-dp-watson-tran-id': 'guid',
'x-edgeconnect-midmile-rtt': '25',
'x-edgeconnect-origin-mex-latency': '229',
date: 'DATE/TIME OF CALL',
connection: 'close'
},
result: {
translations: [ { translation: 'Hi' } ],
word_count: 1,
character_count: 4
}
}
Sie können Ihr eigenes Projekt einrichten, indem Sie meinem vorherigen Lehrgang.
Preisgestaltung
Die Preise für den IBM Watson-Sprachübersetzer war bei weitem am verwirrendsten. Es gibt eine Lite-Version, das ist die kostenlose Variante. Sie können 1 Million Zeichen pro Monat kostenlos nutzen. Allerdings können Sie keine benutzerdefinierten Modelle verwenden, bis Sie einen kostenpflichtigen Plan haben, und die Lite-Dienste werden nach 30 Tagen Inaktivität gelöscht.
Mit dem Standardtarif erhalten Sie 250.000 Zeichen kostenlos, aber der Aufzählungspunkt enthielt ein Sternchen und keine weiteren Details (ich nehme an, dass Standardübersetzungen die Standardmodelle verwenden). Nach den ersten 250.000 beträgt der Preis 0,02 $ pro Tausend. Dieser Preis entspricht 20 $ pro Million, wenn Sie einmal nachrechnen.
Beim Advanced-Tarif scheinen die 250.000 Zeichen nicht kostenlos zu sein, aber er kostet genauso viel wie der Standard-Tarif. Prüfen Sie vor dem Kauf, ob auch hier die gleichen kostenlosen Zeichen gelten. Benutzerdefinierte Modellübersetzungen kosten 100 $ pro Million Zeichen plus 15 $ Wartungsgebühr pro Modell und Monat.
Zusammenfassung
Die Verwendung von maschinellem Lernen und neuronalen Sprachmodellen zur Übersetzung von Text ist ein leistungsstarkes Werkzeug für jede Anwendung. Die Modelle sind nicht perfekt, und der Dienst wird vielleicht nie so gut sein wie eine menschliche Übersetzung. Übersetzungen in Echtzeit zur Erleichterung der globalen Kommunikation sind jedoch zu wertvoll, um sie nicht weiter zu verbessern.
Ich finde es etwas enttäuschend, dass nicht alle vier Dienste den Originaltext beim Aufruf zurückgeben. Ich denke, es wäre schön, wenn man anhand der Antwort wissen könnte, wo die Übersetzung hingehört, falls während des Prozesses etwas durcheinandergeraten ist.
Insgesamt denke ich, dass jeder Dienst gut genug ist, um die meisten Anwendungsfälle zu bewältigen, die Ihre Anwendung erfordert. Die Übersetzungen scheinen genau zu sein. Ich glaube jedoch, dass der Preis von IBM angesichts der geringeren Anzahl unterstützter Sprachen und der fehlenden automatischen Erkennung von Sprachen eher hoch ist. Ich würde mich für Azure oder Google entscheiden, weil deren Angebot und Sprachmodelle ausgereift sind.
Wenn Sie Fragen oder Kommentare haben, können Sie diese unten hinterlassen oder mich unter folgender Adresse erreichen Twitter (@kellyjandrews).
Share:
)
Kelly J. Andrews ist eine Entwicklerin, die sich für Nexmo einsetzt. Sie bastelt seit über 30 Jahren an Computern und verwendete BASIC zum ersten Mal im Alter von 5 Jahren.
Erst als er 1997 seine erste Webseite erstellte und JavaScript zum ersten Mal ausprobierte, fand er seine wahre Berufung. Kelly kämpft jetzt für JavaScript, testbaren Code und schnelle Lieferung.
Er singt Karaoke, zaubert oder feuert die Cubs und die Fighting Irish an.