ビデオ会議上の発言を音声認識で自動的にテキスト化してみよう
こんにちは。さくらインターネットの大井@在宅勤務中です。
ここ最近の世界情勢の中、インターネットを介して遠隔で会議を行う「ビデオ会議」が急速に普及しつつあります。これまではどうしても現地に参加者が集まることができない場合など限定的なシチュエーションでの利用が中心となっていましたが、すでに原則として在宅勤務となった弊社ではミーティングのほぼ100%がビデオ会議で開催されるまでになりました。また、弊社での利用例のようなクローズドな業務用以外にも、広く世の中で授業や講演といった不特定多数が参加する場面でも当たり前に利用されるまでになっています。
ビデオ会議システムでは、オフラインでの会合には無い便利な機能が利用できるのも大きな特徴です。例えば多くのビデオ会議システムに搭載されている録画機能。ミーティング中の動画や音声を記録し、終了後もいつでも参照することが可能になったことで、後でゆっくり議事録や授業のまとめを作成するなどの効率化も図れるようになりました。これにより、どうしても後で手直しの工程が必要になるその場での速記よりも満足のいく記録を作れるようになりましたが、これはこれで録画された動画の中から要所要所を押さえていく必要があり、なかなか大変な作業です…
ということでふとこの作業を行いながら、無料で利用できるオンラインの音声認識ツールを活用したビデオ会議中のリアルタイム文字起こしシステムを考えてみました。これなら会議中でも終了後でもいつでもざっと目を通したり検索したりして肝心な部分を素早く把握することができますし、講師側であっても参加者に第一報として軽量なテキストファイルですぐに内容を共有することもできます。また、ビデオ会議システムの画面共有機能も活用すれば、生成されるテキストを参加者が確認しながら会議を進めることも可能です。
今回考えたシステムを一言で表せば「ビデオ会議の音声をそのまま無償利用が可能なウェブアプリケーション型の音声認識ツールに流して文字起こしをする」というもの。ここではそのシステムの作り方について説明していきたいと思います。
システム構成
今回は文字起こし用のPCとして、多数のビデオ会議ソフトへの対応が可能なWindowsマシンを用意します。これを一般の参加者と同様にビデオ会議に参加させ、流れてくる音声を拾ってテキスト化するシステム構成としました。
PCは実際のものが用意できなくとも、さくらのクラウドのWindowsプランやさくらのVPS for Windows Serverをお使いいただければ、リモートデスクトップ接続を使用してあたかも手元にあるかのように操作ができるWindowsマシンをすぐに利用することができます。
作成手順
今回は以下の手順で作成しました。
1. 文字起こし用Windowsの用意
Windowsマシンの用意の手順については割愛しますが、ビデオ会議システムを利用する通常のWindowsと同様、インターネットに接続され、任意のビデオ会議システムが導入された状態にします。
2. 仮想オーディオデバイスのインストール
文字起こし用Windowsに、任意の入力デバイスと、それを出力するデバイスを持つ仮想オーディオデバイスをインストールします。そしてここからの設定がキモとなる部分ですが、
★通常はスピーカーやヘッドセットとなるビデオ会議ソフトの音声出力先を仮想オーディオデバイスの入力デバイスを指定し、
★通常はマイクとなる音声認識ツールの入力元として仮想オーディオデバイスの出力デバイスを指定
します。これによりWindows内部でビデオ会議システムからの音声を直接音声認識ツールに伝搬させることが可能となります。
今回はWindowsで無料で使用できるVB-CABLEを使用しました(フリーウェアではなくドネーションウェアとのことなので、気に入ったら寄付しましょう)。InputとOutputがそれぞれ1箇所あり、上記の構成を簡単に組むことができます。インストール後マシンを再起動すれば、コントロールパネルや各種アプリケーションの音声出力先/マイク設定から「CABLE Input」と「CABLE Output」が見えるようになります。
※リモートデスクトップ接続経由で設定する場合の注意
クラウド上のWindowsをリモートデスクトップで接続してオーディオデバイスの設定をする場合、リモートデスクトップ接続設定で音声再生先を手元のPCではなくリモートPC上に設定します。手元のPCのデバイスから出力する設定になっている場合、仮想オーディオデバイスが表示されない場合がありますのでご注意ください。
3. ビデオ会議システムの音声出力先を仮想オーディオデバイスに設定
利用するビデオ会議システムの音声出力先設定で、インストールしたVB-CABLEの「CABLE Input」を指定します。
※ビデオ会議システムとしてDiscordを使う場合の例: 設定画面の「音声・ビデオ」内より指定
これで、通常はPCのスピーカーから出てくる音が仮想オーディオデバイスに渡され、PC内部の別のアプリケーションからその音を拾う事ができるようになります。
また、macOS環境をお使いの場合、仮想オーディオデバイスとしてBlackHoleなどがあります。これを使用することでVB-CABLE同様の動作が実現できます。
4. ブラウザで音声認識アプリを起動
今回はブラウザ経由でマイクからの入力を音声認識してテキスト化してくれるSpeechnotesを使用しました。これを開いて右上のマイクのアイコンをクリックすればすぐに音声認識を試すことができます。もちろん日本語に対応しており、右上のポップアップメニューで「日本語」を選択すれば利用が可能です。
通常、音声入力ソースは物理ハードウェアのマイクとなる場合が多いでしょう。しかし今回はVB-CABLEの「CABLE Output」に設定します。コントロールパネルなどで既定のデバイスとなっていないなど、手動で選択する場合はブラウザの設定から行います。Chromeの場合はカメラやマイクなどのデバイスが有効状態になるとアドレスバー右側にビデオカメラのアイコンが表示されるので、ここをクリックするとデバイスを指定することが可能です。
これであとは参加中のビデオ会議システム上で誰かが発言すれば、ブラウザ画面上に音声認識された文字列がどんどん表示されていくはずです。
試しに知り合い同士のDiscord飲み会で使ってみた時の様子です。Discordはもともとゲーマーのコミュニケーション用として開発されてきたため、ゲーム画面の実況用としてPC内の任意のアプリケーションのウインドウを配信する機能もあります。これでテキスト起こし用ブラウザ画面を表示させることで、参加者がリアルタイムに音声が認識されていく様子を確認することができて便利でした。
参考: 1台のPCでスピーカーに出力しながら同時に文字起こしをする方法
ここまでは文字起こし用に専用のPCを使用する手順を解説しましたが、例えば手元のPCで遠隔授業を受けながら同時に文字起こししたい場合もあるかと思います。その場合はより高度な音声ルーティングを設定可能な仮想ミキサーを使用することで、音声認識ツールが動作するブラウザと自身のPCのスピーカーに同時出力することも可能です。
代表的な仮想ミキサーとして、VB-CABLEと同じ開発元が提供するVoicemeeter Bananaがあります。
まとめ
今回使用した音声認識ツールですが、セミナーや遠隔授業など、BGMも無く発言者が基本的に1人の場合は割とうまく動作しましたが、多人数で、さらにそれぞれの環境(マイクの品質、雑音となる周囲の環境音)も異なって同時に発声する場合も多いと認識されない状況に陥りがちでした。ミーティングなどでは複数人で同時に話さない、ヘッドセット型のマイクなど会話がクリアに拾える機器などがあるとよいと感じました。
思わぬ事態によってここ数ヶ月の間に急速に普及したテレビ会議。文字起こしなどの機能を含め、さらに快適な利用ができるように進化すると嬉しいですね。