カテゴリー
ネットのサービス

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 やゼルダなど画面の似ているものが出てしまっていますね。)