前バベル0.8.0公開

ローカル翻訳アプリ〈前バベル〉の0.8.0がApp Storeに並んだので、Mac版も公開しました。

App Store販売ページへ
GitHub Release 0.8.0へ

今回のバージョンは盛りだくさんです。使いやすさを向上させつつ、新機能もいくつか入れています。

  • 新機能:文字サイズ変更(iOSはピンチイン・アウト、macOSは⌘キー)
  • 新機能:原文と訳文をハイライトする原訳クラッチ機能
  • 新機能:Word書類、テキストの取り出せるPDFからの文章抽出(Mac版は0.7.0で実装)
  • 新機能:画像のテキストOCR
  • インターフェイス:iOSは読み込みボタン、Mac版はファイルメニューの「開く」を追加
  • インターフェイス:機械翻訳の言語メニューに言語パックの状態表示
  • インターフェイス:Mac版にコンパクトモード搭載

画像の読み込みがついたことで、ローカル翻訳を試しに作ってみたという段階から実用上の意味があるアプリに成長しました。あとで書きますが、このアプリを使う私自身の行動も変わり始めています。もちろん新機能の全てが完結しています。画像からのOCRを行うときでもインターネットに接続したり、どこかのサーバーに画像を送信したりすることはありません。それでは、一つ一つ、みていきましょう。

文字サイズ変更

5段階の文字サイズ変更機能を搭載しました。macOS版はお馴染みのショートカット、⌘キーと=、-、0の三つのキーを使い、iOSはピンチインアウトで変更します。すぐに、いつでも変更できます。

XS
S
M(標準)
L
XL

老眼でも、文章に目が慣れてくると小さな文字でたくさん読みたくなるものです。急いで読む時は大きい方がいい。そんなわけで、その場で変更できるインターフェイスを採用しました。iOSの文字変更はちょっと気持ちいいですよ。ぜひお試しください。

翻訳クラッチ

原文、訳文のどちらかをクリック・タップすると対照部分をハイライトして表示する機能を搭載して「クラッチ」と呼ぶことにしました。二つのテキストフィールドが噛み合っているようなイメージです。以前はよく新機能の名前を考えていたんですが、あまり見ない機能に新しい名前をつけるのは楽しいんですよ。

2ペインの翻訳アプリにしようと決めた時から、ハイライトを連動させるイメージはありましたが、満足できる動作をしていると感じます。前バベルは中編小説ぐらいなら翻訳してくれますが、クラウドの生成AIを使う翻訳と比べると決して品質は高くありません。時々、意味がとりにくい翻訳になってしまうこともあります。そんな時に訳文をタップして原文を確かめることができるのが、前バベルの翻訳クラッチです。

DeepLにもGoogle Translateにも対照部分をハイライトする仕組みはあり、いろんな機能を呼び出せます。読み方や辞書、別の翻訳候補などの情報は、仕事をしている時はありがたいですね。でも、それはそれ。小さな画面、通信のできない環境で使うアプリには、ちょっと違った原文訳文ハイライトが必要だと思って、ごくごくシンプルな機能にしました。飛行機の狭いシートで、行き先の会議やイベントの情報を確かめたり、小説を読んだり、契約書を頭に入れておいたりするようなとき、原文をちょっと参照して、別の角度から文章を照らしてみるような使い方です。皆さんがどう使うのか、声を聴かせてもらうのが楽しみな機能です。

テキスト抽出とOCR

前バベルは、さまざまなファイルからテキストを抽出できます。代表的なファイルは以下の4タイプ。.txtや.mdのようなテキストファイル、PDFのテキストレイヤー、Wordの.docxと.doc形式ファイル、そして画像です。

メニューでは差をつけていませんが、読み方はファイルごとに異なります。それぞれ簡単に説明しておきましょう。

テキストファイル

テキストファイルをそのまま読みます。拡張子は見ていません。.mdでも、.csvでも、.htmlでも読み込んで、テキストファイルとして翻訳します。全く意味はありませんが、.jsや.cssも読めてしまいます。事故の元なのでやめさせたいんですが、何かいい方法はないものでしょうか……。

Word書類

macOS、iOSの機能を用いてテキスト部分をそのまま読みます。文字修飾は読みたくないのですが、太字などを読み込んでしまい、翻訳すると<b>タグなどに変わることがあります。縦書きでも問題なく読み込めますので、メールでもらったファイルなんかを読むことはできますね。

PDFファイル

macOS、iOSの機能を用いてテキストレイヤーを読み込み、改行を連結します。実はこの機能が難物でした。PDFのテキストレイヤーは、作成したアプリケーションの作法で文をぶつ切りにして配置しています。

まとまって見える段落も
行ごとにバラバラ

これはOpenAIが発表した”Industrial Policy for the Intelligence Age: Ideas to Keep People First”の冒頭の一文ですが、ハイライトしているところは以下のように改行されています。

No one knows exactly how this transition will unfold. At OpenAI, we believe we should↩️
navigate it through a democratic process that gives people real power to shape the AI future they want,↩️
誰もこの移行がどのように展開するか正確にはわかりません。 OpenAIでは、私たちはすべきだと考えております↩️
人々が望むAIの未来を形作るための実質的な力を与える民主的プロセスを通じてそれを導く↩️

文の途中、should の後ろで改行されているので訳文がおかしくなってますね。この例はまだいいんですが、否定文ではnotの入っている行が別の文に追い出されてしまうと、全く逆の意味に翻訳されてしまいかねません。そこで、前バベルは簡単なルールで、読み込んだ改行を連結することにしました。開業の直前に文の終末にある記号(. 。!?」など)がなければ改行を連結する、見出しに見える行は連結しない、数字記号だけの行は連結しない、周囲より極端に短い行が続くところは連結しない……みたいなルールです。これでだいぶマシになりました。

PDFを読み込んで反映

訳文

誰もこの移行がどのように展開するか正確にはわかりません。OpenAIでは、私たちは、人々が望むAIの未来を形作るための実質的な力を与える民主的なプロセスを通じてそれを乗り越え、さまざまな可能な結果に備えると同時に、適応能力を構築すべきだと考えています。

それでも縦書きのPDFはちょっとうまくいきません。一文字ずつ改行されて取り込むことになりがちなので、連結して読み込みますが、ルビが入っていると段落が崩れたりしますし、段組だと上下の行が繋がってしまったりします。なんとかならないものか……ともあれ、私が試せたPDFの形式はごく一部です。もしも読めなくて困った、というようなことがあれば、カスタマーサポートのフォームにお問い合わせください。対応できる形式なら頑張ってやってみます。

画像OCR

Appleの画像認識機能Vision Frameworkを使って、画像からのOCRも搭載しました。これがなかなか強力です。前バベルはスクリーンショットのようなものから写真、果ては(比較的丁寧に書いた)手書きまで読み込んで翻訳することが可能です。

iPhoneでの操作を紹介しながら、OCRがどう働くのか紹介します。まず写真アプリで写真を選択して、共有パネルを開きます。

共有をタップして
前バベルを選択
予約ボタンをタップ

Vision Frameworkは、斜めになった、シワもある紙の上に書いてあるハングルをほぼ正確に読み取ってくれました。PDFでは不自然なところも多い改行の問題も、Vision Frameworkが解決してくれています。ブロックとして読み取ったテキストは自然に改行を連結してくれるのです。ありがたいったらない。

ちなみにちょっと不穏な黒い印刷物は、韓国の作家ホン・ジウンさん(七月七日のアンソロジーメイトでもあります。「九十九の獣」、面白いですよ!)がクーデター対抗デモに行った時に印刷して配ったものだとのこと。通信やサーバーに頼らない前バベルは、そういう場所でこそ、最も力を発揮するプログラムだろうなとも思います。

画像OCRは、私の行動をわずかにですが変えつつあります。最近はXの投稿に、翻訳できないスクリーンショットも増えてきていますが、そんな時でも画像を長押しして前バベルに送り込むと、日本語で読めてしまう。なので、放置していたテキストを読むことが増えました。サイトで読もうにも「真実の社会Truth Social」は重くて読みに行けないですからね。

インターフェイスの手入れ

読み込みに関する新機能の他に、インターフェイスにも手を入れています。Mac版ではiPhoneのようなコンパクトモードを作ってMacbookでもストレスなく使えるようにしました。iPadを横にした時のレイアウトも画面いっぱい使えるように修正しました。

Macのコンパクト画面
Mac版のようなiPad版

ちょっと面倒だったのは、機械翻訳の言語メニューです。Apple Translatio Frameworkは、事前にダウンロードしておかなければ使えません。通信ができなくなってから「うわっ、入ってなかった!」と思っても遅いのです。そこでなんとか事前に知る方法がないものかと思って考えたのが、言語名の後ろにダウンロードを促すアイコンを表示することです。下の画面で選ばれているスペイン語はまだダウンロードしていません。もしもスペイン語圏に行くのなら、タップしてダウンロードしておこう、ということです。

ちなみにこの言語メニュー、作っている時は国旗をつけたくなる誘惑に駆られましたが、言語と国が一致している国はほとんどないので、やめにしておきました。南米の方が母語を選ぶ時、大西洋を渡った国の見も知らぬ先祖の(あるいは侵略者の)旗を選場なきゃならないのはどう考えてもよろしくない。

今後のこと

PDFからの読み込みと画像OCRがついたおかげで、前バベルは特別なアプリになりました。Xに投稿されたスクリーンショットの文章を読む時は自然に前バベルに読み込みますし、翻訳しないレシートを読み込むのにも使うようになりました。使う方法をわざわざ考える必要がなくなったのです。

これで一段落、といきたいところですが、実はもう一つ先まで進めようと思っています。アイコンのバベルロボにある「目」をつけるところまでは頑張らないといけません。Google Lensのようなライブ置き換えができるかどうかわかりませんが、文字の位置が重要なメニューの翻訳ぐらいまでは実装しようと考えています。そうなれば旅行に必携のアプリになるのでしょうが、少し時間がかかるはず。気長にお待ちください。

コメントを残す