「API」タグアーカイブ

ZTranslate – OCR+機械翻訳でゲーム画面を自動翻訳するサーバ

Ztranslate は、ゲーム画面のスクリーンショットを自動で翻訳してしまうというサービスです。たとえば、日本語でしか存在しないゲームを、英語でプレイすることができるようになります。

左がオリジナルの日本語版。その日本語によるテキスト表示部分が、右側のウィンドウでは英語で表示されています。

ユーザーの依頼タイミングで翻訳する自動モード

ZTranslate の自動モードでは、ゲームプレイ中にチルダキーを押すことで、スクリーンショットがZTranslateのサーバに送られます。サーバではまずGoogle OCR API を使って画面中の文字列を読み取り、さらにその読み取った文章を Google Translate API を使って翻訳、元の文章の位置に差し替えた画像を表示することで、自分が読める文章のゲーム画面が得られるといいます。

自動モードの動画がこちら。

オリジナル画面で表示されたものを翻訳した画面が右側に表示されるのに、12,3秒ぐらい掛かっていますね。これは二つのAPIの呼び出しにそれだけ時間が掛かっているのだと思われます。いずれはより短時間で返ってくるように技術が進むでしょうけれど、ゲームプレイ的にはちょっと不便そうです。

複数ユーザーの共同作業でリアルタイム性を改善するパッケージモード

そこで、もう一つのパッケージモード。こちらは、一度変換された画像を蓄積しておき、さらに参加ユーザーが人力による翻訳の改善を反映できるモードだそうです。ゲームプレイの画像が常時サーバに送られ、その画像に対応した翻訳後の画面がリアルタイムで表示されます。

パッケージモードのデモ動画はこちら。

英語版のゲームを、ドイツ語で翻訳表示し、さらに音声合成でゲーム中のナレーションを喋らせています。ゲームに対する入力は左側のオリジナル画面に対してやらないといけないようですが、外国語のゲームを遊ぶ不便さはほとんど解消されているように見えますね。

エミュレーターがZTranslate対応

半年前にはリリースされていたらしいこの ZTranslate サービスを今回知ったのが、RetroArchi というエミュレーター用UIの新機能リリースでした。複数のレトロゲーム機エミュレーターをたばねて使えるツールのようですが、これの新バージョンが、ZTranslate の呼び出しを内蔵するようになったというニュースです。

こちらの新機能デモ動画では、アクトレイザーという日本のゲームを動かしつつ、出てくるメッセージが英語で読み上げられる様子を流しています。

主人公の名前を入れるところ、ひらがなからしか選べないので困ってますね。OCRと自動翻訳だけではどうしようもない箇所があることもわかりますが、それでもわからない言葉のゲームをこれだけ遊べるのはすごいと感じます。

ゲーム機のエミュレーターについては、本来所有しているカートリッジから自分でデータを吸い出して遊ぶ分には合法なものの、ネット等に流れている不正コピーで遊ぶユーザーも確実に存在するわけです。

映画や漫画でもそうですが、自分の国で公式の翻訳版が発売されないとか、翻訳版が登場するのに長い時間が掛かるとかが、ファンによる勝手な翻訳が配られる理由の一つと言われていますね。

エミュレーターでの利用よりも、権利を持っている公式こそが、こういったOCRや自動翻訳の仕組みを活用して、100%完璧ではないけど多くの国や言語に同時に近いスピードで翻訳版を届ける仕組みを作ってくれると良さそうだし、上記のような勝手な海賊版対策にもなるように思います。

そういう意味でZTranslate は面白いプロジェクトだなと思いました。

Pushshift.io – reddit掲示板の過去投稿を提供するwebサービス/API

pushshift.io は、英語圏の巨大掲示板 reddit の過去の書き込みを蓄積し提供しているサイトです。ジェイソン・バウムガートナーさん(Jason Baumgartner)という個人の方による運営です。

FAQ ページを読むと、過去のデータを期間やキーワード、ユーザー等で一括取得したい時に使うサービスだということ。新規のコメントをリアルタイムで取得したい時は reddit 公式の API を使ったほうが良いとありますね。

reddit は巨大な掲示板なので、データ量も相当になると思いますが、 Pushshift は個人 + 寄付によって維持されているようです。

Pushshift API を使ったサービス

過去の膨大なコメントにAPIやCSVでアクセスできるということで、これを利用したサービスもいろいろ存在するようです。

revddit

任意の reddit ユーザーに対し、削除した/削除されたコメントを検索できるサービス。

自分の記憶にない8年前のコメントが出てきました。僕が消したわけではなさそう。スレッドがアーカイブされた結果見えなくなっているという意味でしょうかね。

Pushshift Reddit Search

いろいろな指定で、過去の reddit 掲示板をテキスト検索できるサービス

PSAW

Pushshift API を Python 3 から呼び出すためのラッパーライブラリ。

最新のスレッドを100件取るにはこんな感じ。

# The `search_comments` and `search_submissions` methods return generator objects
gen = api.search_submissions(limit=100)
results = list(gen)

スラング等が多く入った日常英語の書き文字データを大量に入手できるので、自然言語処理や機械学習の実験に使えるのではないかと思いました。

via Hacker News

Gamedetect.io – ゲーム画面の画像からゲーム名を当てるサービス

GameDetect.io のフォームにビデオゲームの画面写真を与えると、JSON でそれがどのゲームに似ているかを返してくれます。

適当な画像をアップロードすると、以下のような形でゲームタイトルとそのゲームである確からしさを戻してきます。


{
"filename":"dragonquest5.jpg",
"predictions":[
{
"label":"stardew valley",
"probability":0.568226
},
{
"label":"the legend of zelda a link to the past",
"probability":0.15813187
},
{
"label":"super mario maker",
"probability":0.031073814
},
{
"label":"factorio",
"probability":0.027034273
},
{
"label":"don t starve together",
"probability":0.020903632
}
],
"speed_ms":1113
}

Tensorflow と Golang によって実装されており、学習データとしてはTwitch のゲーム配信画面をスクレイプしたものを使っています。ゲーム実況にはゲームのタイトル情報とゲーム画面があるので、これを正答として学習させ、モデルを作っているのですね。

そのような作りなので、回答で出てくる候補のゲームはTwitch で今最も多く中継されているゲームトップ100 からだけとなっています。(冒頭で試したドラクエ5 の画面では、Stardew Valley やゼルダなど画面の似ているものが出てしまっていますね。)

NSFW画像検知APIの優劣比較

NSFW(Not safe for work = 職場閲覧不適)画像、わかりやすい言い方だとエロ画像ですが、画像を渡すとその画像がエロかどうか判定してくれる API というの、結構たくさんあるんですね。

なぜこの種のAPIに需要があるかというと、ユーザー投稿型のwebサービス運営において、広く見せられないような画像を投稿されることが運用の大きな障害となるからでしょうね。悪意のあるユーザーや考えなしのユーザーによって法に触れたりサービスのイメージが悪化するような画像を投稿され、さらにそのことがソーシャルメディアで喧伝されたりすれば、サイトの評判に関わります。

Facebook や twitter のような超大手なら、画像の判定もいくらでも内製できるでしょうが、そうでない小さなサービスでは、多少お金を払ってでも簡易に判定を外部に任せたいところでしょう。

…と、書いていたら、Tumblr が(おそらく Apple に iPhone アプリを禁止された影響で)アダルトな投稿を禁じるという方針転換を発表し、同時に開始したアダルト画像のフィルタリングの誤判定がひどいらしいので、NSFW 判定は多数のエンジニアを抱える大手でも難しい分野なのでしょう。

そんな画像検知のAPI を、Aditya Ananthram さんが、API の検出精度を実験したり、価格を比較したりしてくれています。

調査対象のAPIはなんと11個。このまとまったリストだけでも、取っ掛かりとしてはありがたいですね。

また、セーフ/アウトのアウトの種類もいろいろあるようで、API によっても分類は異なりそうですが、以下のようなカテゴリ分けで判定を試みています。

  • Explicit Nudity (露骨なヌード)
  • Suggestive Nudity (思わせぶりなヌード – 隠すところは隠しているが… みたいなやつ)
  • Porn/sexual act (ポルノ/性行為)
  • Simulated/Animated porn (CGやアニメのポルノ)
  • Gore/Violence (流血/暴力)
  • Safe for Work (職場で問題ない)

実験するにあたって、当然、本物の NSFW 画像が必要となります。ブログ記事自体は必要なところはボカシが入っていて、SFW(safe for work = 職場安全)ですけど、中にGoogle Documents へのリンクがあり、リンク先には今回使用された、正しく分類されたデータが入っています。追試とかしたい方は注意してください。

カテゴリごとに強いAPIはありますが、Google のものがおおむね良い成績を上げたそうで、さすがというところでしょうか。また、Gore/Violence や Safe for Work というカテゴリはどのAPIでも判定は難しいようで、各APIでも誤判定が多かったそうです。このへんは元のテストデータにしても正解かどうか意見がわかれそうですし、「職場で問題ないかどうか」なんて普遍的にわかるものでもないですからね。

擬陽性・偽陰性の多寡を並べたグラフ(Overall Comparison セクション内)や、呼び出し回数に対する価格(Pricing セクション内)などもまとめられているのでこれらを併せて比較することで、予算と精度からどのAPIを調べてみるといいかの手がかりが得られそうです。

米Yahoo!の株価/為替APIが停止

アメリカの株価や各通貨の交換レートが取得できる、米Yahoo! の finance API が、エラーを返すようになっていました。どうやら 2017-10-31 からこの状態になっているようです。

止まったのは REST API と、CSV によるダウンロードの両方。こういうエラーメッセージが帰ってきます。

このサービスは利用規約に違反して使われていたことにわたしたちは気づきました。そのため、サービスは終了しました。今後の市況や株価データのリサーチには finance.yahoo.com をお使いください

It has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com.

株価や為替のデータが無料で参照できる API として、オープンソースのツールなどもこの API を多く使っていたため、遮断から後で動かなくなったサイトや、困っているエンドユーザーが多いようです。Github で CSV ダウンロードのURLを検索すると、2万件以上ヒットしました。

ニュースサイトでも、「Yahoo のAPIが返事しないので…」というエラーを出してるところがありました。こんな感じで、API を使って表示しているサイトでエラーやデータ無しの状況が広がっていそうです。

米Yahoo のユーザーサポートページでは、APIの復活を望むコメントが寄せられ、それへの投票が呼びかけられています。

リアルタイム性の高い株価データは、高価な元データをYahoo! が購入し、それを無料で10年以上も配っていたわけで、メディアとしてAOLと統合された Yahoo! には維持が難しかったのかもしれません。

予告なしに突然止まったことに憤る人も多いですが、ビジネスとして仕方が無かったのかもしれません。

代替

reddit や Hacker News でいくつか替わりに使えそうな、無料あるいは無料枠のあるサービスやAPIが紹介されています。

株価に関しては、

為替に関しては、

などの名前が上がっています。呼び出し回数の上限があったり、数分前のデータだったりと、無料なだけにいろいろ制約があるかもしれません。まあ、それほど重要な使い方をしているなら、有料のAPIを購読しなさいということですね。

# 本当に取れるかは確認してません

イギリス中の自転車事故などを地図上で一望できるwebサービス

Bikedata は、イギリスにおける自転車に関するデータを地図上にプロットした、インタラクティブな情報地図です。

この画面では、道路のどの場所で自転車事故が発生したことがあるか、が、ピンクのマーカーで示されています。

通勤やツーリングの計画を立てる時に、事故が頻発するところを知って避ける、といった使い方もできるでしょうね。スマートフォンアプリなどで、事故の多い場所に近づいたら注意をうながす、みたいなものを作ったりもできるかもしれません。

サイトでは、事故の他にも、交通量、自転車の盗難、駐輪場、サイクルレーンの写真、など、様々な自転車に関するデータを表示することができます。

さらに、このサイトのソースはGPLv3 で公開されています。

元データは国によるもの

イギリス政府のデータ公開サイトに、道路の安全データ(Rode Safety Data)というのがあり、ここではSTATS19 という書類で報告された2005年から2014年までの事故のデータが公開されているようです。

100Mぐらいあるデータを見てみたら、こんな感じで緯度経度や日時、事故の状況を表すフラグを持つレコードが大量にあるCSVファイルでした。

こういったデータが公にされているのはいいですね。このデータを API 化して自転車事故について Cyclestreets.net が提供し、それを Google Maps APIなどを使って可視化したのが今回のサービス、ということになります。

via Maps Mania