2012年1月16日月曜日

Microsoft Translator APIで翻訳

(注)2012初旬~ 登録方法やAPI利用方法が変わっています。

⇒新しい方法はこちらの改訂版をご覧ください

指摘してくださった匿名さん、どうもありがとうございます。



Webサービスで翻訳ができるAPIは無いだろうかと探したところ、Google翻訳とBing翻訳がそれぞれAPIを提供しているとのこと。

Google翻訳のほうはGoogle Translate APIというらしい。しかし去年で無償サービスは終了し今は有償しかないとのこと。なんということだ。

Bing翻訳のほうはMictosoft Translator APIというサービスで個人で試すレベルであれば無償のようだ。

値段は翻訳するテキストの量に応じ月あたり以下のような感じである。(記事執筆時点)
無償で試せるのは月あたり2000txまで。1tx=1000 charactersと書いてあるので1txは1000文字換算のようです。


  • ¥12,559/month (16000 tx/month)
  • ¥6,280/month (8000 tx/month)
  • ¥4,710/month (6000 tx/month)
  • ¥3,140/month (4000 tx/month)
  • ¥0 (2000 tx/month)


これの登録方法がよくわからずいろいろ調べてやっとできたので以下にメモ。
ただし、執筆時点の情報なので後日またやり方が変わっているかもしれないので注意してください。

このAPIはWindows Azure Marketplaceというところで登録するようです。ここではWindows Live IDが必要なので持っていない人はあらかじめ作っておくとよいでしょう。→Windows Live ID新規登録

Mictosoft Translator APIのページから「Microsoft Translator API にサインアップしましょう」のリンクをクリックすると(または直接Windows Azure MarketplaceのMicrosoft Translatorの登録ページに行きます。

右のほうに値段の書いたメニューがあるので Subscription*(2000 tx/month) \0.00 を選んで PURCHASE(またはSIGNUP)ボタンを押します。手順によって出てくるページ順が若干異なると思いますが、Registrationというページで名前やメールアドレスを入れるよう要求されるので入力して画面の指示通りすすめます。その後もagreeにチェックボックスを入れてボタンを押すページがいくつか続き、最終的にThank Youと表示されるページまでくればAPIへのサインアップ完了です。

ただし、この時点ではAPIはまだ利用できません。APIを利用するにはAppIDというのが必要になります。

どうやってAppIDを取得するのかが非常にわかりにくかったのですが、Bing開発者のアプリケーション登録ページに行って新しいアプリを作成することでIDが発行されます。

Windows Live IDでサインアップした状態でこの登録ページに行きADDボタンを押してアプリケーションを登録します。必須情報が多く迷いますが以下のような感じでよいのではないでしょうか。


Application name
適当 (testなど)
Description
適当 (my test appなど)
Company name
適当 (test corpなど)
Country/region
Japan
Email Address
Windows Live IDと同じメールアドレス


登録すると、アプリが一覧に表示されApplication IDが画面に表示されます。このIDをコピーしてAppIDとして使います。

APIの使い方ですが以下のようなURLを投げるとXMLが返ってくるREST APIになっています。

http://api.microsofttranslator.com/V2/Http.svc/Translate?appid={AppID}&from={翻訳元言語}&to={翻訳先言語}&text={翻訳するテキスト}


翻訳元/翻訳先言語はjaenなどの言語コード。テキストには翻訳したい文字列を設定します。日本語などの場合はUTF-8でエンコードします。結果はXMLで戻ってくるので翻訳済みテキストはタグの中から切り出す必要があります。

ためしに日本語の「こんにちは」を英語にしてみると…

http://api.microsofttranslator.com/V2/Http.svc/Translate?appid={AppID}&from=ja&to=en&text=こんにちは


翻訳されました!

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Good afternoon</string>


結果は "good afternoon"

"hello" じゃないのか…

2 件のコメント:

  1. 今、同じ様に登録しても、上手くいきません…。
    調べたんですが、分からず…。
    お分かりになりますでしょうか?

    返信削除
    返信
    1. うまくいかないのはhttp://api.microsofttranslator.com/~のところで Invalid appId Parameter name: appId というのが出るところでしょうか?

      調べたところ方式が変わってAppIdは使わず別の方法でやるようになったようです。やり方は調査中・・・

      削除