FFTranslateの販売開始

Mac用のオフライン文字起こしアプリケーション「FFTrans」のユーティリティ第1弾として、オフライン翻訳アプリケーション「FFTranslate」を販売開始しました。

SRT字幕ファイルをデバイス上で直接、高速かつ安全に翻訳するApple Silicon専用アプリです。
機密性の高い字幕データもインターネットに触れることなく、Macの強力なNeural Engineを活用して翻訳を完了させます。

【翻訳対応言語】
・日本語
・英語
・中国語
・スペイン語
・フランス語
・ドイツ語
・韓国語

字幕ファイルを読み込んだら、翻訳したい言語を選んで翻訳ボタンを押すだけで翻訳されます。
字幕のソース言語は明示的に指定することもできますが、自動を選択しておけばタイムラインや話者ごとに自動判別され、ターゲット言語に翻訳されます。
なお、自動判別の場合は翻訳中に辞書のダウンロードは自動実行されませんので、辞書が未ダウンロードの言語部分だけ原文のままとなります。

翻訳速度はマシン性能によりますが、34分740ブロックの字幕(57KBほどのテキスト)で25秒ほど、54分878ブロックの字幕ファイル(50KBほどのテキスト)で30秒ほどで完了します。
多少の速度差はあるかと思いますが、概ね50倍速くらいでは処理可能です。
字幕内に複数の言語が混じっていても処理速度はほとんど変わりません。
CPUは100%(1コア分)、メモリはアプリ本体は70MB程度でほとんど消費せず、ニューラルエンジンの処理に1GB程度消費するようです。

また日本語と英語のように多言語が混じった字幕を全て日本語(あるいはフランス語など)に翻訳することが可能で、ここは通常の翻訳アプリやサービスではほぼ不可能な部分かと思います。
たとえばこんな風に日本語、ドイツ語、英語が混じった字幕でも、言語をタイムラインや話者ごとに自動識別し、一発の翻訳で指定の言語に翻訳できます。

[ 元の多言語混じりのSRT ]
1
00:00:00,587 –> 00:00:01,465
Person 1: 気象庁は

2
00:00:01,701 –> 00:00:05,025
Person 1: 雪や路面の凍結による交通への影響

3
00:00:05,295 –> 00:00:12,771
Person 1: 暴風雪や高波に警戒するとともに、なだれや屋根からの落雪にも十分注意するよう呼び掛けています。

4
00:00:14,340 –> 00:00:15,454
Person 2: Ich wollte meinem Großvater

5
00:00:15,927 –> 00:00:18,205
Person 2: die Geschichte dieses Mannes so schnell wie möglich erzählen.

6
00:00:21,023 –> 00:00:22,795
Person 3: I first encountered the Okinawa rail

7
00:00:23,284 –> 00:00:24,837
Person 3: when I was 18 years old.

8
00:00:26,895 –> 00:00:36,244
Person 4: Bien que le H2A ait un taux de réussite de lancement élevé, le coût élevé de chaque lancement, environ 10 milliards de yens, a été un problème.

[ FFTranslateの英語翻訳SRT ]
1
00:00:00,587 –> 00:00:01,465
Person 1: The Japan Meteorological Agency is

2
00:00:01,701 –> 00:00:05,025
Person 1: The impact of snow and frozen road surfaces on traffic

3
00:00:05,295 –> 00:00:08,878
Person 1: We are urging you to be wary of snowstorms and high waves,

4
00:00:08,878 –> 00:00:12,771
Person 1: as well as be careful of avalanches and snowfall from the roof.

5
00:00:14,340 –> 00:00:15,454
Person 2: I wanted my grandfather

6
00:00:15,927 –> 00:00:18,205
Person 2: Tell this man’s story as soon as possible.

7
00:00:21,023 –> 00:00:22,795
Person 3: I first encountered the Okinawa rail

8
00:00:23,284 –> 00:00:24,837
Person 3: when I was 18 years old.

9
00:00:26,895 –> 00:00:30,703
Person 4: Although H2A has a high launch success rate,

10
00:00:30,703 –> 00:00:33,214
Person 4: the high cost of each launch,

11
00:00:33,214 –> 00:00:35,032
Person 4: about 10 billion yen,

12
00:00:35,032 –> 00:00:36,244
Person 4: was a problem.

ちなみに字幕は画面で見やすいように細かく分割されていたり、FFTransでも話者の区切りに応じて短めになったりしがちです。
それをそのままタイムラインごとに翻訳するだけでは、不自然な字幕になりがちです。
そこで、FFTranslateはSRT字幕の構造を理解し、より自然な翻訳結果を得る工夫をいくつか施しています。

そのひとつが「結合最大間隔」を使ったタイムラインの結合です。
SRTのタイムラインを参照し、指定したギャップ未満のブロックを読点まで、内部で連結してから翻訳します。
そして翻訳後、改めて句読点を参考にタイムラインに分割して展開します。
これにより、文脈が途切れることなく、より自然な文章として翻訳されます。
(結合許容秒は0.0~2.0秒の間でカスタマイズ可能です。)

この処理はFFTransの話者分離が実施されていた場合、同一話者内のみで結合されますので、別の人の会話が混じることはありません。
翻訳言語についても同様で、短い文章で言語識別できない場合も同一話者の以前の識別言語を保持して翻訳するため、翻訳精度を維持することができています。

話者分離がされていないSRTファイルについても可能な限り対応していますが、文の結合精度がどうしても下がります。
またSRTの形式はかなり自由度が高いので、基本的にはFFTransで生成したSRTファイルが対象とお考えください。
それでもBOM付きや複数行の本文、改行コード(CR+LF)には対応させています。
なお、Shift-JISやEUCなどはほとんど使われていないはずで、意図せぬ文字化けを避けるため、非対応としています。

前述のようにFFTranslateはFFTransのユーティリティとして開発したものではありますが、語学学習者の方や、大量の動画を扱うクリエイターの方にも有用かと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)