Azureテキスト翻訳は、Azure Translatorサービスが提供するクラウドベースのREST APIです。 ニューラル機械翻訳技術を活用し、すべての対応言語で正確で文脈に合致し意味的に正確なリアルタイムテキスト翻訳を提供します。
クライアントライブラリはいくつかの重要な機能を提供します:
翻訳および音写操作に対応している言語のリスト、および翻訳用に利用可能なLLMモデルの一覧を取得してください。
指定されたソース言語からターゲット言語への決定論的テキスト翻訳を行い、精度を確保し文脈の整合性を維持するためのパラメータを設定できます。
元の文字から別の文字表現に変換して文字を書き換えることで音写を実行してください。
LLMモデルを使って、トーン特有かつ性別を意識した翻訳出力バリアントを作成しましょう。
このライブラリを使用するには、REST クライアント ドキュメント に大きく依存してください
主なリンク:
作業の開始
現在サポートされている環境
- Node.js の LTS バージョン
- 最新バージョンのEdge、Chrome、Safar、Firefox
[前提条件]
- 既存の翻訳サービスや認知サービスのリソース。
@azure-rest/ai-translation-text パッケージをインストールする
JavaScript用のAzure Text Translation RESTクライアントライブラリを npmインストールしてください:
npm install @azure-rest/ai-translation-text
翻訳サービスリソースの作成
「 翻訳者リソースを作成」の後に「翻訳者リソース」を作成できます。
ブラウザー サポート
JavaScript バンドル
ブラウザーでこのクライアント ライブラリを使用するには、まず、バンドルを使用する必要があります。 これを行う方法の詳細については、
クライアントを認証する
クライアントライブラリを使ったサービスとのやり取りは、 TextTranslationClient クラスのインスタンスを作成することから始まります。 クライアントオブジェクトをインスタンス化するには APIキー や TokenCredential が必要です。 認知サービスによる認証に関する詳細は、「 翻訳サービスへのリクエストを認証する」を参照してください。
API キーを取得する
endpoint、API key、RegionはAzureポータルの認知サービスリソースやトランスレーターサービスリソース情報から取得できます。
あるいは、下記の Azure CLI スニペットを使って、TranslatorサービスリソースからAPIキーを取得する方法もあります。
az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>
APIキーとリージョン認証情報を使って TextTranslationClient を作成します
APIキーとリージョンの価値が分かったら、 TranslatorCredentialを作成します。
TranslatorCredentialの値を使えば、TextTranslationClientを作成できます:
import TextTranslationClient, { TranslatorCredential } from "@azure-rest/ai-translation-text";
const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
key,
region,
};
const translationClient = TextTranslationClient(endpoint, credential);
例示
以下のセクションでは、上記のclient作成されたコードスニペットをいくつか提供し、このクライアントライブラリに存在する主な機能について説明します。
サポートされている言語を取得する
Translator の他の操作で現在サポートされている言語のセットを取得します。
import TextTranslationClient, {
TranslatorCredential,
isUnexpected,
} from "@azure-rest/ai-translation-text";
const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
key,
region,
};
const translationClient = TextTranslationClient(endpoint, credential);
const langResponse = await translationClient.path("/languages").get();
if (isUnexpected(langResponse)) {
throw langResponse.body.error;
}
const languages = langResponse.body;
if (languages.translation) {
console.log("Translated languages:");
for (const [key, translationLanguage] of Object.entries(languages.translation)) {
console.log(`${key} -- name: ${translationLanguage.name} (${translationLanguage.nativeName})`);
}
}
if (languages.transliteration) {
console.log("Transliteration languages:");
for (const [key, transliterationLanguage] of Object.entries(languages.transliteration)) {
console.log(
`${key} -- name: ${transliterationLanguage.name} (${transliterationLanguage.nativeName})`,
);
}
}
if (languages.models) {
console.log("Available LLM Models:");
for (const model in languages.models) {
console.log(model);
}
}
言語の概念的な議論については、サービスドキュメントをご参照ください。
Translate
1 つの要求で単一のソース言語テキストを複数のターゲット言語テキストにレンダリングします。
import TextTranslationClient, {
TranslatorCredential,
isUnexpected,
} from "@azure-rest/ai-translation-text";
const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
key,
region,
};
const translationClient = TextTranslationClient(endpoint, credential);
const input = {
text: "This is a test.",
targets: [{ language: "cs" }],
language: "en",
};
const translateResponse = await translationClient.path("/translate").post({
body: { inputs: [input] },
});
if (isUnexpected(translateResponse)) {
throw translateResponse.body.error;
}
const translations = translateResponse.body.value;
for (const translation of translations) {
console.log(
`Text was translated to: '${translation?.translations[0]?.language}' and the result is: '${translation?.translations[0]?.text}'.`,
);
}
翻訳の概念的な議論についてはサービスドキュメントをご参照ください。
Transliterate
ソース言語の文字または文字を、ターゲット言語の対応する文字または文字に変換します。
import TextTranslationClient, {
TranslatorCredential,
isUnexpected,
} from "@azure-rest/ai-translation-text";
const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
key,
region,
};
const translationClient = TextTranslationClient(endpoint, credential);
const inputText = [{ text: "这是个测试。" }];
const parameters = {
language: "zh-Hans",
fromScript: "Hans",
toScript: "Latn",
};
const transliterateResponse = await translationClient.path("/transliterate").post({
body: { inputs: inputText },
queryParameters: parameters,
});
if (isUnexpected(transliterateResponse)) {
throw transliterateResponse.body.error;
}
const transliterations = transliterateResponse.body.value;
for (const transliteration of transliterations) {
console.log(
`Input text was transliterated to '${transliteration?.script}' script. Transliterated text: '${transliteration?.text}'.`,
);
}
トランスレテラシーの概念的な議論については、サービスドキュメントをご参照ください。
トラブルシューティング
TextTranslatorクライアントライブラリを使ってTranslatorサービスとやり取りすると、Translatorサービスから返されるエラーはREST APIリクエストに対して返されるのと同じHTTPステータスコードに対応します。
例えば、翻訳言語を指定せずに翻訳リクエストを送信すると、「悪いリクエスト」を示す 400 エラーが返されます。
ロギング(記録)
ログ記録を有効にすると、エラーに関する有用な情報を明らかにするのに役立つ場合があります。 HTTP 要求と応答のログを表示するには、AZURE_LOG_LEVEL 環境変数を infoに設定します。 または、setLogLevelで @azure/logger を呼び出すことによって、実行時にログを有効にすることもできます。
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
ログを有効にする方法の詳細な手順については、 @azure/logger パッケージのドキュメントを参照してください。
Azure SDK for JavaScript