Cloud Translation API を使ってみる
はじめに
Google Cloud Translation API は 機械学習を利用してテキストの翻訳を提供するAPIです。
100以上の言語に対応し、リアルタイムで高速な翻訳を提供します。
今回は Cloud Translation API を使った翻訳方法について調べてみました。
料金
Cloud Translation API は、翻訳するテキストの文字数に基づく従量課金制で、下記の2つのエディションあります。
Cloud Translation - Basic
Cloud Translation - Advanced
Basic は標準的な翻訳機能を提供する基本プランです。
Advanced は高度な翻訳APIを提供する上位プランで、カスタマイズされた翻訳モデルの使用が可能です。
Cloud Translation - Basic の料金
・ 最初の 500,000 文字 : 無料
・ 500,001 文字~10 億文字: $20 / 100 万文字
・ 10 億文字超 : 割引料金についてのご相談は、営業担当者にお問い合わせください
Advanced の料金は使用するモデル等により異なります。
最新の料金情報や詳細はGoogle Cloudの公式ドキュメント(Cloud Translation の料金)を確認してください。
事前準備
Cloud Translation API の有効化
- Google Cloud Consoleから「API とサービス」セクションを開きます
- APIライブラリから「Cloud Translation API」を検索し、APIを有効にします。
認証情報の設定
Google Cloud Consoleからサービスアカウントを作成します。
- 「API とサービス」の「認証情報」からサービスアカウントの認証情報を作成します。
- APIを利用する為に「Cloud Translation API ユーザー」のロールを割り当てます。
- JSON形式の鍵ファイルを作成してダウンロードします。
プログラムでの使用方法
環境変数にサービスアカウントキーを設定
今回は環境変数 GOOGLE_APPLICATION_CREDENTIALS
を使用して、サービスアカウントの鍵ファイルを設定することにしましたが、環境変数を使用せずにプログラムで指定することも可能です。
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
Pythonの実行例
API用のクライアントライブラリ google-cloud-translate
をインストールします。
pip install google-cloud-translate
Pythonのプログラム例
from google.cloud import translate_v2 as translate
def translate_text(text, language):
# クライアントの初期化
translate_client = translate.Client()
# 翻訳のリクエスト(翻訳元のテキストの言語「source_language」は省略可)
result = translate_client.translate(text, target_language=language)
# 翻訳結果を表示
print(f"Original Text: {text}")
print(f"Translated Text: {result['translatedText']}")
return result['translatedText']
# 翻訳するテキスト
original_text = "新川崎駅で発生した触車事故の影響で、下り線(久里浜方面行)の運転を見合わせています。"
target_language = "en" # 英語に翻訳
# 翻訳の実行
translate_text(original_text, target_language)
実行結果
Original Text: 新川崎駅で発生した触車事故の影響で、下り線(久里浜方面行)の運転を見合わせています。
Translated Text: Due to a collision accident that occurred at Shin-Kawasaki Station, service on the down line (bound for Kurihama) has been suspended.
Javaの実行例
Gradleの依存関係
dependencies {
implementation 'com.google.cloud:google-cloud-translate:1.95.5'
}
Javaのプログラム例
import com.google.cloud.translate.Translate;
import com.google.cloud.translate.TranslateOptions;
import com.google.cloud.translate.Translation;
public class TranslateMain {
public static void main(String[] args) {
try {
// Cloud Translation APIのクライアントを作成
Translate translate = TranslateOptions.getDefaultInstance().getService();
// 翻訳するテキスト
String originalText = "新川崎駅で発生した触車事故の影響で、下り線(久里浜方面行)の運転を見合わせています。";
String targetLanguage = "en"; // 英語に翻訳
// 翻訳の実行(翻訳元のテキストの言語「sourceLanguage」は省略可)
Translation translation = translate.translate(
originalText,
Translate.TranslateOption.targetLanguage(targetLanguage)
);
// 翻訳結果を表示
System.out.println("Original Text: " + originalText);
System.out.println("Translated Text: " + translation.getTranslatedText());
} catch (Exception e) {
e.printStackTrace();
}
}
}
実行結果
Original Text: 新川崎駅で発生した触車事故の影響で、下り線(久里浜方面行)の運転を見合わせています。
Translated Text: Due to a collision accident that occurred at Shin-Kawasaki Station, service on the down line (bound for Kurihama) has been suspended.
まとめ
Cloud Translation APIを利用することで簡単にテキストを翻訳することができました。
APIの導入手順はシンプルで、リアルタイムの翻訳機能を色々なアプリケーションに統合することができそうです。
Discussion