翻訳用APIがどんなもんなのか、使ってみたのでそのメモです。いや、ほんとにただのメモなんでご了承くださいませ。
翻訳用API
まずは、翻訳用APIにどんなものがあるのか見てみます。
この辺を見る感じ
- Microsoft Translator
- Cloud Translation | Google Cloud
- WorldLingo翻訳API開発ツール
- WEB-Transer@SDK 翻訳API(英語,中国語,韓国語,タイ語,欧州語等) - 株式会社クロスランゲージ
- https://gengo.com/ja/developers/
- https://console.ng.bluemix.net/catalog/services/language-translator/
- https://www.yarakuzen.com/business/integration
- 翻訳 API | 翻訳の代行・見積なら スピード翻訳
らへんがあるようです。 今回はその中でGCPで提供されているCloud Translation API v3を使ってみます。
Cloud Translation API v3
サービスはこちら。
おいくら万円?
2019 年 11 月 1 日以降、Basic または Advanced エディションの Cloud Translation API を使用する請求先アカウントに、1 か月あたり最大 $10 の無料使用分が適用されます。この無料使用分は、NMT および PBMT のテキスト翻訳と言語検出の呼び出しに一括で適用されます。
無料枠以降は、100万文字毎に$20って感じのようです。遊びで使う分にはまず無料枠から出ることは無いかと思います。
使い方
使い方はこちらからどうぞ。
実際に使ってみる
本題です。実際に使ってみます。 まあ上のリンクに書いてあるとおりにやれば普通に動くんで、なぞるだけですね。
下準備
プロジェクト作って秘密鍵作って、環境変数の設定します。
…以上!!
Pythonでやる
from google.cloud import translate_v3beta1 as translate client = translate.TranslationServiceClient() project_id = YOUR_PROJECT_ID # 自分のプロジェクトIDでどうぞ text = '吾輩わがはいは猫である。名前はまだ無い。どこで生れたかとんと見当けんとうがつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。' location = 'global' parent = client.location_path(project_id, location) response = client.translate_text( parent=parent, contents=[text], mime_type='text/plain', # mime types: text/plain, text/html target_language_code='en-US') for translation in response.translations: print('Translated Text: {}'.format(translation))
これで実行してみます。
$ python3 sample.py
Translated Text: translated_text: "I am a cat. There is no name yet. I have no idea where I was born. I remember only crying meow in a dim and damp place." detected_language_code: "ja"
ここまでできれば全然問題ないです。
自分は翻訳文だけほしかったので、こんな感じに書き換えればいけますね。
from google.cloud import translate_v3beta1 as translate client = translate.TranslationServiceClient() project_id = 'adventcalender-221923' text = '吾輩わがはいは猫である。名前はまだ無い。どこで生れたかとんと見当けんとうがつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶し ている。' location = 'global' parent = client.location_path(project_id, location) response = client.translate_text( parent=parent, contents=[text], mime_type='text/plain', # mime types: text/plain, text/html target_language_code='en-US') print(response.translations[0].translated_text)
$ python3 sample.py
I am a cat. There is no name yet. I have no idea where I was born. I remember only crying meow in a dim and damp place.
response.translationsという変数に翻訳文が配列として格納されるみたいですね。
用語集を作る
専門用語とかを使いたい場合には、専門用語の対応表を作りたくなるときがあります。 そんなサービスも用意されていました。
APIじゃだめだって方
翻訳機能も年々素晴らしく精度が高くなっていますが、まだまだ人間がやったほうが良いと言う方も多いのが現実です。
そういう方は、下記のようなサービスもありますので相談してみてはいかがでしょう?
感想
めっちゃ簡単でした。30分くらいで簡単に使えたので、めっちゃ簡単です。 これをサーバーに組み込んで、翻訳が必要なところだけ翻訳して上げれば、日本語サービスが海外向けサービスに早変わりしますね。 簡単にできてよかったです。