急遽テレワーク導入!の顛末記

「英語の動画を、音声を翻訳させつつテロップ表示させてみた」――急遽テレワークを導入した中小企業の顛末記(180)

海外版の資料にある動画マニュアルなども、苦手意識なく観れるようになりたい

英語の音声を認識してテロップに、それを日本語で表示させたい

 先日は生成AIなどを使って、英語で書かれたPDFを日本語に翻訳してもらった。おかげで英文のマニュアルなども読めるようになったのだが、この手の資料には動画で作られたものもあり、筆者のリスニング力では苦戦している。

 ……この記事を書いている時点で、新型コロナが5類に移行されて319日が過ぎた。

 私が勤めている新宿にある中小企業では現在、各スタッフが可能な範囲でリモートによる業務を行っている。その中で、今回は海外の動画を無料で翻訳できるサービスを探してみた。

【今回のハイライト】
文字起こしだけならZoomでもいいが…
リアルタイム翻訳は難易度が高め
使い勝手は専用サービスの方がいい

3月18日(月):YouTubeなら簡単操作で日本語字幕を表示可能

 今日はある案件で資料を取り寄せたのだが、そのひとつが英語ベースの動画だったので、解読するのに苦労している。これが、YouTubeに上がっている動画なら、字幕を有効にすることで、日本語のテロップを表示できるのだが……。今回は動画がファイルで送られてきたので、困ってしまった。

YouTubeなら動画の字幕を表示したうえで、それを日本語に自動で翻訳できる

 先日は「Google翻訳」や「DeepL翻訳」にアップロードしたPDFファイルを、丸ごと翻訳してもらったが、これらのサービスは動画の翻訳には対応していない。ここは、別のサービスを探す必要がありそうだ。

3月19日(火):動画の音声を字幕化してみたものの……

 動画ファイルを翻訳するとなると、まずは動画の音声をテキストデータに変換した上で、それを日本語に変換する必要がある。このうち、音声を文字に起こした上で、それを字幕として表示することについては、以前に音声データの文字起こしをしたときと同じようにZoomが使えそうだ。

 動画ファイルの映像と音声をZoomで配信するには、「OBS Studio」「NDI Tools」が利用できる。「obs-ndi」というプラグインを利用すると、「OBS Studio」で再生、またはキャプチャしている映像を音声ごと「NDI Webcam Video」に送ることができるので、後は「Zoom」のマイクとカメラに「NDI Webcam Video」を指定すればよい。

「obs-ndi」の公式サイトで、「Assets」からインストーラーをダウンロードして、インストールする
「OBS Studio」を起動したら、「ツール」→「NDI Output settings」と操作
「Main Output」のチェックを有効にする。これで初期設定は完了
動画の音声を字幕表示するには、まず「OBS Studio」の「メディアソース」に動画を追加して、「仮想カメラ開始」をクリック
続いて、「NDI Tools」の「Webcam」を起動。さらに、「Zoom」も起動して、「ビデオ」の設定画面で「カメラ」に「NDI Webcam Video 1」を指定
「オーディオ」の設定でも、「マイク」に「NDI Webcam Video 1」を指定する。これで、「OBS Studio」で再生した動画の映像・音声が、「Zoom」に配信されるようになった
「Zoom」で「字幕の表示」を有効にすると……
再生した動画の音声が字幕として表示されるようになる

 ちなみに、PCで鳴っている音を字幕的にテキスト表示するには、Windows 11のライブキャプション機能も利用できる。こちらは、機能を有効にするだけでOKなので、音声を字幕表示するだけなら、「OBS Studio」などを使うより手軽な方法といえるだろう。

「設定」画面で「アクセシビリティ」→「字幕」と操作して、「ライブ キャプション」を有効にする。この設定は「Win」+「Ctrl」+「L」のショートカットからも操作可能
今回は英語の音声を認識させるので、英語の言語パックをインストールしておく
動画を再生すると、専用ウィンドウに文字起こしされたテキストが表示された。「PCOT」のようなOCR翻訳ツールを使えば、デスクトップの指定範囲にあるテキストを翻訳できる

 あとは、表示された英文テキストを日本語に変換すればよいのだが……。無料版のZoomやWindows 11のライブキャプション機能には、翻訳機能が用意されていない。なので、英文テキストをコピペして翻訳するか、OCR翻訳ツールなどを使うことになるが、そのたびに動画を一時停止して翻訳操作するというのは、ちょっと現実的ではないかもしれない。ここまでいろいろ試してみたが、“無料”にこだわるなら別の方法を考えた方が良さそうだ。

Zoomの翻訳版字幕機能を利用するには、有料ライセンスの契約が必要

3月20日(水):Googleに翻訳させて、それを字幕表示してみた

 「Google翻訳」では動画ファイルを読み込むことはできないが、入力した音声を翻訳することはできる。このとき、PCで鳴っている音を同サービスに読み込ませれば、再生している動画の音声をリアルタイムで翻訳させることが可能だ。

 ただ、「Google翻訳」には5000文字までの字数制限があるため、リミットが近づいたら、そのたびに入力済みの英文を削除する必要がある。さらに、再生中の動画と「Google翻訳」を並べて表示してみたのだが、YouTubeのテロップに比べると距離が離れているせいで、動画と一緒に読むのはちょっと難しい。ここは何らかの方法で、翻訳された日本語テキストを動画に合成した方が良いだろう。

以前に「Googleドキュメント」を使って文字起こしをしたのと同じ方法で、「Google翻訳」にPCで鳴っている音を翻訳させることが可能

 Googleに翻訳させたテキストを動画に合成するには、「ゆかりねっとコネクターNEO」や「音声認識字幕ちゃん」といったフリーソフトが利用できる。これらのツールはライブ配信を目的に開発されており、音声をリアルタイムで翻訳するとともに、翻訳されたテキストを動画と合成することが可能だ。

 ただ、実際に動画の音声を翻訳させてみたところ、「ゆかりねっとコネクターNEO」では話に一区切りがつくまで、認識した英語をなかなか翻訳してくれなかった。そのため、動画内で話者がひっきりなしに話しているようなシーンでは、一度に大量の字幕がまとめて表示されてしまい、次の字幕が表示されるまでに慌てて読むハメに……。もちろん、その間は動画を観ている余裕なんてない。

「ゆかりねっとコネクターNEO」をインストールしたら、「あなたの話す言語・名前」で「英語」を指定
「プラグイン一覧」から「OBS WebSocket 連携」を有効にして、「OBS WebSocket 連携」と書かれたボックスをクリックして設定画面を表示。今回はWebSocket5のv2.7を使用した
「OBS Studio」を起動したら、「ツール」→「WebSocketサーバー設定」と操作し、「サーバー設定」の「接続情報を表示」から、「サーバーIP」「サーバーポート」「サーバーパスワード」を確認。先ほど表示した「OBS WebSocket 連携」の設定画面にパスワードなどを入力し、「OBSに接続」をクリックすると、「接続しました」と表示される
「OBS Studio」でソースに「テキスト」を追加。「OBS WebSocket 連携」の設定画面で、「翻訳」に「テキスト」を指定する
先ほど追加したテキストのプロパティを開き、フォントサイズやテキスト領域の幅・高さ、折り返しの有無などを指定。テキスト領域をドラッグして、表示位置を調整する
今回はPCで鳴っている音を字幕化するので、ソースに映像ファイルを再生するプレイヤーを追加
翻訳にGoogleを使う方法は、公式サイトで紹介されている。まずは「Google Apps Script」のページを開き、「新しいプロジェクト」ボタンをクリック
「プロジェクト名」を「google_translate_api」に変更
「コード.gs」の右のボタンをクリックし、「名前を変更」をクリック。「main」に変更する
公式HPで紹介されているプログラムをコピーして貼り付け。「デプロイ」ボタンをクリックして、「新しいデプロイ」を選択する
「種類の選択」で「ウェブアプリ」を選択し、説明文を指定し、「アクセスできるユーザー」を「全員」にして、「デプロイ」をクリック
表示された「ウェブアプリ」のURLをコピー
「オプション」画面を開き、「Google Apps Script」を有効にしたら、先ほどコピーしたURLを貼り付ける
「翻訳言語と翻訳エンジン」で「日本語」「Google Apps Script 翻訳」を指定したら、初期設定は終了
マイク型のアイコンをクリックし、「音声認識システム」に「ブラウザー」「SpeechRecognitionWeb」を指定。「SpeechRecognitionWeb」のページがブラウザーで表示されたら、「Start」をクリックする
あとはプレイヤーで動画を再生すれば、その様子が表示されるともに、音声をリアルタイムで翻訳して字幕表示してくれる

 一方、「音声認識字幕ちゃん」では「〇ミリ秒だまったら文を区切る」というように、翻訳するタイミングを調整することが可能。これにより、「ゆかりねっとコネクタNEO」よりも翻訳のペースを上げることができるが、その一方でいくつかのセンテンスが翻訳されないなど、翻訳結果に漏れが出てしまった。

「音声認識字幕ちゃん」でも「ゆかりねっとコネクターNEO」と同じように「Google Apps Script」を利用するので、先ほどのデプロイ画面で「デプロイID」をコピーしておく
「音声認識字幕ちゃん」のページにアクセスしたら、「翻訳用 Google API-KEY」欄に先ほどコピーしたIDを貼り付ける
画面を下にスクロールさせて、「URL」欄の末尾にある「gas_key=」以降の文字列も、先ほどコピーしたIDに差し替える。さらに、「音声認識言語」を「英語」に、「翻訳言語」を「日本語」に変更。「認識」のサイズを「0px」にする
「OBS Studio」でソースに「ウィンドウキャプチャ」を追加。「ウィンドウ」に「音声認識字幕ちゃん」を表示しているブラウザーを選択する
「音声認識字幕ちゃん」のページが画面上に表示されたら、4辺を「ALT」キーを押しながらドラッグすることでトリミング。さらに、表示領域をドラッグして、字幕を表示させる場所へと移動させる
「ソース」欄で「ウィンドウキャプチャ」を右クリックして、表示されたメニューから「フィルタ」を選択。「+」ボタンをクリックして、「クロマキー」フィルタを追加する
あとは、「ゆかりねっとコネクターNEO」と同様に、「ソース」に動画を再生するプレイヤーを追加。動画を再生すると、動画と翻訳された字幕が表示された

 ただ、今回のような結果となった理由としては、用意した動画で“話者が引っ切りなしに話していた”のが大きかったかもしれない。その後、もう少し会話のペースが遅い動画で試したところ、どちらのサービスでもセンテンスの漏れもなく、適度なペースで字幕を表示することができた。

 とはいえ、ニュース番組のレポーターぐらいの会話のペースになると、とたんに対応が厳しくなったので、あらゆる動画に対応できるように別の手段も用意しておいた方が良さそうだ。

動画内で発話者がゆっくりとしたペースで話しているような動画では、どちらのサービスでも問題なく翻訳および字幕化できた

3月21日(木):専用サービスなら、翻訳も表示タイミングもスムーズ!

 あれから色々と翻訳サービスを探してみたが、「ゆかりねっとコネクターNEO」のように“ライブ配信でのリアルタイム翻訳”を想定したサービスでなければ、会話のペースが速い動画でも翻訳の精度や表示のタイミングを改善できそうだ。例えば、「Auris AI」というサービスでは、アップロードした動画の音声を認識して、翻訳文を適切なタイミングにテロップとして動画に合成してくれる。

ホームページにアクセスしたら、まずは動画ファイルをアップロードする
自動で翻訳されたテキストが字幕として表示される。フォントやフォントサイズを変更したり、翻訳されたテキストを書き換えることも可能
あとはダウンロード操作を行えば、翻訳字幕付きの動画が手に入る

 ただ、こうしたサービスの多くは有料のサービスとなっており、「Auris AI」についても無料で翻訳テロップを入れられるのは最初の30分まで。それ以降は30分/1.6ドルの追加枠を購入する必要がある。ただ、これまで紹介してきた中でも使い勝手は一番良かったので、試用してみて気に入ったら、枠の購入を検討してもよいかもしれない。

 これまでは必要な資料を見つけても、それが英語版だとつい敬遠しがちだったが、生成AIや翻訳サービスの力を借りれば中身を読み解くことができそうだ。これからも積極的に利用して、情報をリサーチする範囲を広げていきたい。

とある中小企業に勤める会社員、飛田氏による体当たりレポート「急遽テレワークを導入した中小企業の顛末記」。バックナンバーもぜひお楽しみください。

飛田九十九