zoomでリアルタイムに字幕をつける方法

zoomで授業、会議、研修、面接などを行なう際に、情報保証の手段として、リアルタイムに字幕をつける機能がいくつかの方法で存在しています。基本的には話している言葉をリアルタイムでテキストにするキャプショニングを使用しますが、その代表的なツールであるUDトークを字幕作成に方法などは、開発元で紹介されていますので、そちらをご覧いただくとして、ここでは別の方法をご紹介したいと思います。

1.準備

これから紹介する2つの方法は、いずれもOBS(Open Broadcasting Software)と呼ばれるソフトウェアを使用しています。そのため、事前にこれをインストールしておきます。

このソフトウェアは、映像を合成するもので、これによって、この後で説明するように複数の映像(音声)ソースからの入力を合成して、1つの画面の中に構成することができます。ここからYouTubeなどの配信もできるのですが、今回は合成された映像をzoomに送るやり方を説明します。

しかし、OBS単体ではzoomに映像を送ることができません。オプションが必要となりますので、これもインストールしておきます(以下はダウンロードへのリンクです)。

Mac

Windows

インストールの際にカメラをいくつインストールするかを聞かれますが、4つでいいのだと思います。

2.概念図

インストールしたOBSを起動させます。最初に画面を構成するかを尋ねるダイアログが現われますが、無視をして構わないと思います(詳しい使い方は調べてください)。OBSはウィンドウの状態で使用してください。最大化してフルスクリーンにすると、おかしな挙動が見られるようです。

OBSを用いて映像を合成する概念図は以下のようになります。

アセット 2@2x

OBS背景は黒です。特に何もする必要はありません。この上に、必要な映像ソースからの映像を読み込んで合成していくことになります。

3.カメラ映像の読み込み

OBSを起動すると以下のような画面になります。いくつか設定を作成済みのため、新規で立ち上げた画面とまったく一緒ではありませんが、大きなスペース(ここで合成します)の下に、「シーン」「ソース」「音声ミキサー」「シーントランジション」「コントロール」がある構成は同じだと思います。

スクリーンショット 2020-08-02 23.13.01

使うのはこのうち、「ソース」です。

「ソース」のドックの下部にある「+」を押します
メニューが現われるので、ここから「映像キャプチャデバイス」を選びます
名前を付けるかどうかを聞かれるので、付けたければ付けます
(名前は後からでも変えられます)

すると、以下のようなプロパティの設定画面になります。「デバイス」からカメラ映像を選択します。「OK」を押すと、映像が画面いっぱいにかぶさるように表示されます。必要があれば拡大縮小しますが、今回はそのままで良いと思います。

スクリーンショット 2020-08-02 23.19.40

これでカメラ映像の設定はおしまいです。

4−1.Web Speech APIを使う方法

Web Speech APIのためのウェブページ

動画の中で誤ってGoogleのサービスと言っていましたが、そうではなくて、ウェブブラウザに搭載されている機能を使えるようにプログラムを作成された方がいる、ということのようです(どうもすみません)。もしかしたら動画を作り直すかも知れません。Google Chromeを使ってアクセスしてください(内部ではCloud Speech APIが動いているという話もあり、そうするとやはりGoogleのサービスなのかもしれません)。

マイクから入力された音声がウィンドウの中でテキストに変換されていくのが分かると思います。実は、このサイトだけでも合成した映像を作成できますが、字幕の位置や大きさをより柔軟に変えられること、zoomに映像を送れることから、ここではOBSを使った方法をお伝えします。

合成することを考えて、「文字の調整」で望ましい設定を作っておきます(後から変更も可能です)。

ウェブページのOBSへの読み込み

今のGoogle ChromeのウィンドウをOBSに読み込んで、カメラ映像に重ねていきます。

OBSの「ソース」で「+」を押します
「ウィンドウキャプチャ」を選択します
やはり名前を付けるかどうかを聞かれるので、そこは好きにしてください
プロパティの設定画面の「デバイス」でさきほどのChromeの画面を指定します

Macの場合に、ここに今開いているはずのウィンドウが現われてこなければ、ソフトウェアからシステムにアクセスすることが制限されている可能性があります。その場合、こちらをご覧ください。

Chromeの画面が現われれば読み込みは完了です。

切り抜きと大きさと位置の調整

読み込まれたウェブページの映像は、Chromeの画面そのままで、大きさもOBSの画面を覆っていると思います。ここから切り抜きと大きさと位置の調整を行ないます。

切り抜き
optionキー(ウィンドウズの場合ALTキー)を押しながら境界線を動かすと、中の映像は変化がないまま枠が動いて、表示される領域が変更されます。これをクロップと言います。文字だけが映るようにクロップします。
概念的には以下の通りです。
このようになっているため、Chromeのウィンドウ内でスクロールすれば、OBSに表示される内容も変わり、テキストが映らないということも起こりますので注意が必要です。

アセット 3@2x

大きさ
切り抜いた後で、大きさを調整します。今度は何のキーも押さずに境界線を移動させると、大きさが変化します。
大きさを大きくすれば字が大きくなり、小さくすれば逆ですが、表示を変えずに字の大きさだけ変えたい、ということであれば、Chromeに戻って字の大きさを変えます。
元のウィンドウの字の大きさを変えても、クロップされる領域に変化はないため、OBS上の表示には影響ありません。
位置
字幕を表示させるのにちょうどいい場所に移します。

これで字幕の設定の第一段階は終了です。

フィルタの作成

第二段階です。このままでは、黒い画面に白い文字が映っていて、カメラの映像を隠してしまっています。ここで、黒を透明に変えます。以下のように設定してみました。不透明度をいじることで、わずかに文字を透過にしていますが、それは趣味の領域です。

「ソース」のドックの中のウィンドウキャプチャの名前を選択します
右クリックで「フィルタ」を選択します
「エフェクトフィルタ」にある「+」を押して、「カラーキー」を選択します
 「色を選択」で #000000 を入力します
 その他の設定はちょうどいいものを探します(以下は一例です)
 「類似性」424 
 「滑らかさ」126
 「不透明度」91
 「コントラスト」-100
次に「エフェクトフィルタ」の「+」を押して、「色補正」を選択します
 以下の設定は一例で、ちょうどいいものを探してください
 (なくてもいいかもしれません)
 「輝度」-0.36
 「彩度」 -1.00
 「不透明度」90

この設定で、カメラの映像を背景に、字幕が黒文字で合成されていると思います。背景との兼ね合いで白文字のままでよければ、コントラストを0のままにしておきます。

字幕の背景を作る

もしもカメラの映像が、本棚や部屋の中など複雑なものになっていて、明るさや色の種類が多い、上に字幕を乗せても見えにくくなることがあります。この場合、字幕映像の下に、薄い色のついたレイヤーを入れて、字幕を見やすくすることができます。

「ソース」の「+」を押して、「色ソース」を選択します
名前を付けるかどうか聞かれるので、好きにします
プロパティの設定画面になるので「色の選択」から白や黒など好みの色を選びます
「ソース」のドックで色ソースのレイヤーを字幕映像の下に移動させます
(これで色の付いたレイヤーが字幕映像の下に来ます)
そのまま右クリックで「フィルタ」を選択します
「エフェクトフィルタ」の「+」を押して、「色補正」を選択します
「不透明度」をいい感じに下げて背景を透過させます

見やすくなったでしょうか。

これでWeb Speech APIを使った合成はおしまいです。この後に、合成した映像をzoomに流す設定をします。

4−2.iPhoneのアプリを使う方法

字幕映像をパソコン外から取り込むことも可能です。ここではiPhoneのアプリを使ってみます。

アプリのインストール

iPhoneには音声をテキストに代えるアプリがいくつかあります。代表的なものに、texter、speechy、UDトークなどがあります。texter、speechyは無料版もありますが、時間制限があります。好みのものをインストールしてください。

動画の中ではtexterを使っています。背景の透過をしやすいからです。

アプリによって、自動で句読点を打ってくれるもの、自動で改行を入れてくれるもの、「まる」「かいぎょう」ということでそれを行なってくれるもの、など、異なる機能を備えていますので、使いやすいものを選択してください。

iPhone画面の読み込み

Chromeの画面を字幕映像として読み込んだように、iPhoneの画面を字幕映像として読み込みます。

Macの場合
iPhoneとMacをケーブルでつなぎます
OBSの「ソース」で「+」を押します
「映像キャプチャデバイス」を選択します
名前を付けるかどうかを聞かれるので(以下略)
プロパティの設定画面の「デバイス」でiPhoneを指定します
Windowsの場合
iPhoneとキャプチャデバイスをつなぎます(Lightning - Digital AVアダプタなどが必要です)
OBSの「ソース」で「+」を押します
「映像キャプチャデバイス」を選択します
名前を付けるかどうかを聞かれるので(以下略)
プロパティの設定画面の「デバイス」でキャプチャデバイスを指定します

以上で読み込みは完了です。あとは、切り抜き、大きさ、位置を調整し、必要であれば字幕の後ろに薄い色のついたレイヤーをいれます。

同じようなことはAndoroidケータイでもできるかもしれません。古いiPhoneではMacとつなぐ場合でもキャプチャデバイスが必要かもしれません。試してみてください。

4−3.マイクについて

パソコン上のGoogle Chromeを使う場合でも、iPhoneを使う場合でも、マイクを口元にどうやって近づけるかが課題です。

カメラにマイクが付いて音声を拾っている場合は、ChromeにもiPhoneにも行きません
パソコンのマイクで音声を拾っている場合は、Chromeには取り込まれますが、iPhoneには行きません
iPhoneに外付けのマイクを付けることもできますが、パソコンとつなげません(iPhone用のマイクで同時にパソコンにもつなげる製品はほぼありません)

動画では、最初の字幕はiPhoneを使い、画面の外ぎりぎりのところにiPhoneを置いていました。2つ目の字幕はChromeを使い、画面の下にパソコンを置いていました。音声が明瞭に聞こえるかどうかは、認識率にダイレクトに効いてきますので、検討する必要があります。

5.zoomに映像を送りだす

OBSで合成した映像をzoomに送りだすための設定をします。

Mac版
メニューバーの「ツール」から「Start VirtualCam」を選択します
Windows版
メニューバーの「ツール」から「VirtualCam」を選択します
出てきたダイアログの「Target Camera」で「OBS-Camera」を選択します
(デフォルトで選択されていると思います)

以上です。なぜかMac版の方が簡略です。

次にzoomで映像を受け取るための設定をします。

ミーティングに接続した状態で、左下のカメラのアイコンから「OBS Virtual Camera」を選択します

または

「設定」の「ビデオ」にある「カメラ」から「OBS Virtual Camera」を選択します

これで、OBSから送り出された映像をzoomで受け取れるようになりました。

ちなみに音声については、おそらくzoomで設定したマイクから受け取っているものと思われます(つまり、OBSからの出力ではないと思います)。これはまだちょっとよく分かっていないので検証が必要だと思っています。ご存知の方がいらっしゃれば教えてください。

以上で、話していることをリアルタイムに字幕にするための設定は完了です。あとは、話の中身を魅力的なものにするだけの簡単なお仕事が残されています。

この記事が気に入ったらサポートをしてみませんか?