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

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

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

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

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

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

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

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

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

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

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

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

エミュレーターがZTranslate対応

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

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

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

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

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

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

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

カテゴリー
工作

賞金の出る4択クイズゲームを隠しカメラとOCRで解くプロジェクト

イギリスのパブなどに置いてあるゲーム機に、クイズを解き続けることで勝ち進み、最後は賞金が出るものがあるそうです。

GitHub に公開されたこちらのリポジトリでは、そのトリビアクイズ機を解いてしまう支援ツールが公開されています。

こちらのアニメーションgif でプレイしている様子が見られますが、質問文と、4択の回答が表示されて、時間内に正答をタッチすると次の問題へ行けるんですね。

https://github.com/tensor8/hacking_slot_machines

こちらの動画に、ドラマか何かの中で出てくる、この手のゲームで遊んでいるシーンがあります。

Github上の解説によると、

  • カメラ内蔵のボタンで撮った画面の画像を Raspberry Pi へ送信
  • 画面の傾きを補正、OpenCV で問題・4つの回答のボックスを切り出す
  • Google Tesseract で文字を抽出
  • 得られた文字を[問題・回答]のデータから総当たり検索
  • espeak で音声合成した結果を隠しイヤホンに送る

という作りで、画面に映った問題の答えがイヤホンで聴こえてくる仕組みを実現しているそうです。

上にあるように、すべての問題と回答のデータはある前提で、これはゲーム機のROMからごく簡単な暗号化されたデータが取れていて、Pythonスクリプトで逆変換しています。

最初は問題文だけの検索で済ませるつもりだったそうですが、問題文の認識精度が完全ではなく、回答(20個のうち正答含めた4つがランダムに選ばれる)もあわせ、読み取りに間違いがある前提で単語間距離が小さいものを検索することで質問を特定しているとのこと。

当初は Raspberry Pi だけでこの処理を完結させるつもりだったそうですが、それだと回答が出てくるのに30秒掛かって間に合わないため、バックパックに入れたノートパソコンに画像を飛ばして、イヤホンへの音声合成もそこでやっているということ。Raspberry Pi はあまり関係なかった

やってる内容が内容なので、Hacker News のコメント欄では法律やモラルの問題を指摘する声も多く出ています。ボタンの穴から写す隠しカメラや、小型コンピュータであるラズパイ、バックパックに隠したPCなどの道具だてから、隠れてやるつもりがあるのも明らかですし。

Hacker News に紹介した id:jamesough が本当の作者なのかは確認できてませんが(作者である風にコメントで答えてはいます)、コードの更新日が2年前なので、これを実際に使ってたとしても前のことなのでしょうね。

アメリカのカジノでは、こういった本人の努力や知識で結果が変わるギャンブル機は無いそう。規則で許されていないようです。また、イギリスではこの手の Skill with prize (スキルで賞金)ゲームはギャンブルの範疇には入らないそうで、そのためパブ・映画館・ショッピングモールなどに自由に置くことができるのだとか。

この手の知識を問うゲーム機、特に賞金が出るものは、最初は簡単に答えられるものの、勝ち進めば進むほど問題の難度が上がり、またとても人間が答えられなさそうな問題も出るようになっているそうです。しかし、こんな風に機械による支援を受けた人間なら解ける、となってしまうと、賞金を出すビジネスモデルではもう立ちいかなくなってしまうでしょうね。

via Hacker News