当ブログはご覧のようにそのほとんどが海外の話題で占められているわけですが、日々目を通しているサイトの中には英語以外のところも少なからず存在します。
英語であれば多少なりとも理解できても、スペイン語やらポルトガル語やら他の外国語は全くお手上げ。
こんなことから「何とか記事の見出しだけでも翻訳できないか」ということで、個人的に使っているRSSフィードの翻訳ツールを公開します。
次の2つは無料で利用可能な翻訳サービスを使いYahoo! Pipesと連携して、指定した任意のRSSフィードを指定言語に翻訳したものに変換するというものです。
Pipeの使い方はどちらも設定項目を指定し[Run Pipe]をクリックして表示された[Get as RSS]のリンクから変換されたRSSを出力することができます。
どちらの場合にも翻訳サービスのAPIを利用するため、サービスアカウントの特別な認証キーが必要になるので、利用の際にはあらかじめ手順に従って認証キーの取得をしておいて下さい。
1つ目は翻訳処理にロシア最大の検索・ポータルサイトであるYandexが提供している無料の翻訳サービスのAPI『Translate API』を使用したもので、変換処理は1,000,000文字/日まで可能です。
【設定項目】
【認証キーの取得手順】
2つ目はIT大手のMicrosoftが提供している翻訳サービスAPI『Microsoft Translator』を使用したもので、有料のAPIながら無料で2,000,000文字/月までの利用が可能です。
【設定項目】
【認証キーの取得手順】
上の2つのPipeは内部で利用している翻訳サービスが異なるだけで、基本的仕様は同じです。
【翻訳対象のテキストなど】
変換処理されるのはフィードの各見出しのテキストのみで概要は対象外となっています。
(これはどちらのAPIにも利用可能な上限があるからで、どのような長文が入っているのか分らないような状況では概要にまで適用するのは適当ではないことが理由です)
変換言語が対応していない、API Keyが無効、タイムアウト、など何らかのエラーが生じた場合には原語そのままの無変換で出力されます。
変換元の言語は自動検出されるので設定の必要はありませんが、言語それぞれに変換できる言語/できない言語があることにご注意下さい。
【記事を翻訳ページで開く】
概要が翻訳対象ではないことの不備を補う意味もあり実装した機能が、該当記事のリンクを翻訳サービスに送ってページ翻訳させるというもので、実用性もありこのような使い方であればAPIの制限はを受けずに済みます。
ページ翻訳はタイトル翻訳に使用したものと同じサービスを使用し、必然的に変換言語もそれと同じ設定になるよう作ってあります。
デフォルトでは翻訳ページで開くようなっていますが、オリジナルの原語ページそのままを開きたい場合には[Link Translate]の設定を「0」にして下さい。
【最大出力件数の設定について】
このPipeはフィードの各アイテム毎に翻訳サービスに参照をかける仕様上、比較的処理に時間がかかるためアイテム件数が多くなればなるほどそれが顕著になりタイムアウトなどエラーの原因になることも考えられます。
このために設けられているのが最大出力件数を設定する[Restrict]という項目です。
例えば1日に数件しか更新されないサイトなのにフィードアイテムは30件も出力されるフィードなどは、毎回30件すべて処理するのは無駄な作業で、またそれだけではなく翻訳サービスのAPIも無駄に使用してしまうことになります。
逆に非常に記事の更新が頻繁に行なわれるようなサイトでは、デフォルトの10件では取りこぼしが発生する場合もあるので、サイトの更新記事数とクロールするRSSリーダーの更新間隔との兼ね合いで、あまり無駄が生じない程度に適宜調整して下さい。
【出力フィードのURLについて】
出力されるRSSフィードのURLには認証キーが平文で挿入されるため、不特定多数で利用するような公開フィードとしての利用には向きません。
このような利用をする場合にはFeedBurnerを使ってURLをカスタマイズするなど生URLを晒さないよう注意が必要です。
これらのPipeはクローンを作成して自由にカスタマイズして頂けます。
複数ユーザーの使用で発生する高負荷・高トラフィックなど、他のユーザーの影響を受けたくない方はクローンを作成して自身のアカウントで動かすことをお勧めします。
また、Yahoo!Pipesユーザー向けに翻訳のプロセスだけを切り出したモジュール版もそれぞれ用意したのでこちらも利用可能です。
Microsoft Feed Translator Module
これらは汎用的な翻訳モジュールとしてご自身で作成するPipeの一部に組み込んで利用することができます。
通常、下のようにLoopモジュール内に入れて[text]に翻訳するテキストを指定するような使い方が典型的な例です。
さて、2つの翻訳サービスに関してですがYandexが純粋な無料サービスなのに対し、Microsoftは有料サービス内の無料提供分というところで先ず大きな違いがあります。
Yandexが1,000,000文字/日の利用が可能なのに対し、Microsoftは2,000,000文字/月と前者が圧倒しており、他の翻訳サービスと比べても利用可能な文字数は群を抜いています。
ちなみにGoogleの翻訳APIが1,000,000文字=$20、Microsoftが4,000,000文字/月=?\3,140で課金しているのをみても、無料で利用可能なYandexのお得さが分ります。
また価格面以外にもYandexは認証キーの取得が簡単な上、APIの仕様も非常にシンプルでレスポンスも安定しているなど、Microsoftに比べてアドバンテージがあります。
一方、対応言語で見るとMicrosoftが広範囲でグローバルに対応しているのに対し、Yandexはロシアのサービスということもあってヨーロッパ圏に偏っています。
こんな理由から、Yandexで対応できるものであるならばこちらを使用するのがおすすめですが、アジア圏の言語変換が希望の場合では必然的にMicrosoftということになるでしょう。
もっとも、日本語変換に関しては機械翻訳自体が実用レベルにはないため意味不明な日本語に訳されるよりは、多少英語が解るのなら英語の方がよほどマシということは機械翻訳を使った方であればお判りかと思います。
しかし英語変換としての利用に割り切って考えるのなら、特にヨーロッパ圏の言語などは英語との変換精度が非常に高いため、多少の英語が理解できるのであればヨーロッパ圏の言語はこれで大体ものにできる訳です
さらに中国語なども英語にした方がはるかにマシで、日本語への変換で実用レベルなのは韓国語だけでしょうか。
いぜれにせよ、こちらのWikipediaを見る限り大体上の2つのサービスでネット上のコンテンツは大体カバーできることと思います。
ところで、3年前Google翻訳のAPIが有料化される以前まではこのようなRSSフィードの翻訳ツールもそう多くはないものの存在していた記憶がありますが、Googleの有料化以降というものこのAPIを使用していたWebサービスは軒並み閉鎖、それ以外の他社翻訳サービスもGoogleに便乗するかのように揃って課金化の道を歩むようになり、気が付けば昔のような手軽に利用できるツールが見あたらなくなりました。
最近、そういった類を検索してみてもほとんどが死んでるもので今ではまともなツールが皆無という現状から、前に個人的に使うために作ったものでも一般にも需要があるかもしれないということで、タイムリーな話題ではありませんが今回あえて公開してみました。
利用には認証キーを各自で取得する必要がありますがそれほど手間はかからず、制限に関しても一般的な個人利用であれば十分実用範囲ではないでしょうか。
私のケースのように「英語以外の外国語フィードを英語にしたい」であるとか、或いは「韓国語フィードを日本語にしたい」等々、このようなことをフリーでできる限り手間なく実現したいとお考えのユーザーには今回のツールは強い味方になると思います。
Yahoo!Pipesのサービス終了に伴い正常に機能しなくなりました。