セミナー・勉強会 ベトナム 調べてみた

MacのLoopbackでオンライン会議をリアルタイム翻訳する

菅野

こんにちは、開発部長の菅野です。最近英語でのEラーニングや会議などが増えてきたので、なんとかリアルタイム翻訳できないかと色々試してみたところ、私の場合Loopbackを使うのが最も良さそうでしたので紹介します。

本記事で紹介するアプリはAppStoreで配布されたものではありません。トラブルには一切責任負えませんので自己責任でお願い致します。

まず、どういう選択肢があるのか?

Zoomなどでの会議をリアルタイム翻訳したい場合、ポイントは2点です。相手側の音声をどうやって拾うのか、という点と、翻訳ソフトを何にするのか、という点です。まず、リアルタイム翻訳を実現するには、音声を翻訳ソフトに入力する必要があります。しかし、会議中の相手の音声はマイク入力ではなくスピーカーから出力されるため、通常の録音方法では相手の声が拾えないという点が前提となります。翻訳を何で行うのか、については後述します。

リアルタイム翻訳のやり方は大きく4つあります。WindowsとMacで事情が異なるので今回はMacに限定して話させて頂きます。

会議サービスの機能を使う

GoogleMeet、Zoom、Webexなど主要なサービスはどれもリアルタイム翻訳機能をもっています。当たり前ですが、これが利用可能なのであればこれを使うのが一番良いです。しかし、これは主催者側のプラン(契約内容)と設定に依存するのでWebinarやEラーニングなどでは使えないことが多いので今回は却下です。

Chromeの翻訳機能を使う

GoogleChromeには標準でリアルタイム翻訳機能があります。Chromeの設定からユーザー補助機能を選択すると設定することができます。設置すると黒色のウィンドウが表示されて、リアルタイム翻訳されます。

これが最も簡単にできる方法ですが、いくつかデメリットがあり、私はこの方法を見送ることにしました。

セリフの切れ目じゃないと翻訳が表示されない

これが一番致命的です。翻訳はセンテンスごとに行われます。つまり、長いセリフの場合、終わるまで翻訳結果が一切表示されません。翻訳ウィンドウの画面いっぱいになるくらいの文字数の場合、一瞬だけ表示されて、すぐに消えてしまいます。これでは意味がありません。また音声が入ってきてるのに、その翻訳が一切表示されないのは、個人的には結構苦痛でした。日本語字幕で映画を見ているときに、まとまった単位じゃないと字幕が表示されない、と思って下さい。これは結構キツイです。

翻訳結果(日本語)しか表示されない

これは私の好みの問題だと思います。私は全く英語ができないわけではなく、簡単な文章なら翻訳できますので、原文(英語)と日本語訳の両方表示してもらえると英語の文章を読みながら日本語訳を見て自分の翻訳結果があってるか確認する、といった使い方ができるのですが、Chromeの翻訳は翻訳結果の日本語しか表示することができません。

ブラウザの音声しか翻訳できない

当たり前ですが、Chromeの機能なのでブラウザで動作させる必要があります。主要なオンライン会議サービスは全てWeb版があるのであまり困らないかもしれませんが、ZoomもWebexも基本的にはアプリを推奨しているため、今後どうなるかは分かりません。

他デバイスを活用する

次に簡単なのはPCから出てる音をスマートフォンで録音することです。または会議室用スピーカーなど外部スピーカーから会話を出力して、PC本体のマイクで録音する方法です。最も簡単に実現できますが、デメリットはヘッドセットが使えず音声の品質があまり良くないことです。音声品質が良くないと文字起こしの精度にも影響が出ますし、周囲の雑音も拾ってしまうのも難点です。それでも問題ない方はこの方法が最もお勧めですが、私はヘッドセットを使いたかったのでこの方法は選択しませんでした。

サウンドルーティングソフトを使う

最後の方法は、サウンドルーティングソフトを使う方法です。よくゲーム配信などでも使われる方法で、PC本体から出力される音(つまりスピーカーから出る音)とマイクの音をミックスして仮想マイクに入力する方法です。こうすることでPC本体から出力されるゲームサウンドとマイクから入力される実況の声の両方が録音できる、という仕組みです。これを使うことで、本体から出力される相手方の声と自分の声を仮想マイク経由でGoogle翻訳など翻訳ソフトの音声入力に渡す、という方法です。今回はこの方法を使って実現します。

インストールと設定

おそらくBlackHoleとLoopbackの2択ではないか?と思います。以前はsoundflowerというのもあったようですが、更新されておらずシリコンMacでは動作しないようです。

ではBlackHoleとLoopbackのどちらが良いか?ということなんですが、どちらも試してみた結果、私はLoopbackを使うことにしました。判断ポイントは、設定が複雑でシーンによって都度設定を変更しないといけないけど無料で使えるBlackHoleか、設定は簡単だけど有料のLoopbackか、ということになります。Loopbackは$109買い切りです。無料でも連続20分だけ使うことができますので、お試しで使ってみることができます。両方試してみて、自分に合った方を使うのが良いと思います。

Loopbackのインストールと設定

公式サイトのFreeDownloadからLoopback.zipをダウンロードする。解凍したLoopbackをアプリケーションに入れたらOK。

これは無視して開きます。AppStoreからのダウンロードじゃないので仕方ないです。

起動するとこんな画面が出ます。EnableでARKを許可するとContinueが押せるようになります。ARKはAudioRoutingKitでLoopbackを動かすには必須となります。別に怪しいものではありません。

こういったメッセージが出ますが、これは正常です。

デフォルトだとこういう画面になります。

ではまずはZoomの場合をやってみましょう。

最初にPass-Thruを削除します。選択して画面下部のDeleteボタンで削除できます。削除したらSourcesのプラスボタンを押すとアプリケーションが選択できます。ここでZoomを設定します。Zoomが無い場合はSelect Applicationから探して選択します。

VirtualDevice名は何でも良いです。私はデフォルトのLoopback Audioのままにしています。これでZoomのサウンド(相手の音声)が仮想デバイスに音声入力されます。

Google翻訳の設定

次に翻訳ツールの設定です。翻訳にはWeb版のGoogle翻訳を使います。無料で使えます。DeepLが使えると良かったのですが、DeepLの音声リアルタイム翻訳はDeepLVoiceという有料サービスが必要で、最低50ライセンスからの契約なので諦めました。

ブラウザのマイク設定を変更します。設定→プライバシーとセキュリティ→マイクで設定変更できます。ここで先程作成したLoopback Audioに変更します。

あとは音声入力ボタン(マイクアイコン)を押すだけです。

これで相手の音声が全てリアルタイムで翻訳されますが、しかし、音声入力翻訳を開始した瞬間から、Zoomの音声が一切聞こえなくなってしまいます。これはLoopbackAudioで設定した音声入力が全てGoogle翻訳に持っていかれているからです。英語が全く理解できず、むしろ音声が無い方が良い、という人ならこのままでも良いですが、私の場合、実際の音声が無い状態で、リアルタイム翻訳された内容からのみ判断するのはかなり苦痛でした。その場合はMonitorsにスピーカーを設定します。これでZoomの音声を聞きつつリアルタイム翻訳ができます。なお、OpenComm2は私が愛用している骨伝導ヘッドセットです。

これで、Webinarとか一方的に聞くだけの会議や、会議室からの参加ではなく自分自身がヘッドセットで参加する場合は困らないと思います。しかし会議室のWeb会議用マイクなどで参加していて、会議室内の音声入力も翻訳したい場合は、この設定では自分のマイク入力がリアルタイム翻訳されません。その場合マイクをSourcesに追加します。

これで、Zoomの会議音声と自身のマイク音声をミックスして仮想デバイスに出力できます。これでZoomの会議音声と自分マイク音声の両方がリアルタイム翻訳されます。

ただし、このやり方は1つだけ難点があります。それは自分の声が自分のスピーカー、この場合ヘッドセットに入ってしまうことです。もし自分の発言を翻訳する必要が無いのであれば、Sourcesからマイクを削除するか、マイクをOffにしましょう。各コンポーネントの右上にOnOffスライダーがあります。文字起こしを議事録に使いたい、とかではない限り、自分の音声を翻訳したい、というニーズは無いと思うので特に困らないはずです。

もしZoom以外を使う場合はSourcesをZoom以外にすれば良いです。

LoopbackはVirtualDeviceを複数登録できますが、私はあまりおすすめしません。理由はGoogleのマイク設定を切り替えるのが面倒だからです。VirtualDeviceを複数登録するのではなく、必要なSourcesを全部1つの仮想デバイスに登録した方が便利だと思います。普段使わないSourceをOffにしておけば問題ないと思います。

まだ試行錯誤の段階ですが、現状の私の設定はこんな感じになっています。

この設定は英語のYoutubeを見るときにそのまま使えるのが良いです。日本語字幕を設定してくれてるとは限らないので結構役立ってます。

この方法の唯一の欠点は、途中で翻訳をやり直さないといけないことです。理由は一度に音声翻訳できる文字数が5000文字までだからです。ですから5000文字になる前に音声入力を止めて、再度音声録音し直す必要があります。そもそも文字数が多すぎるのと最新のテキストが画面下部に埋まってしまって見難いので、会話の切れ目でこまめにリセットした方が良いです。

Nottaでリアルタイム翻訳&議事録作成

弊社では議事録作成にNottaというサービスを使っています。Nottaは大きく分けて2つの方法があります(細かく分けると4つ)。直接録音するかWeb会議にNottaのBotを招待するか、です。通常はWeb会議に招待する方法を使いますが、セミナーのようにNottaを招待できない場合は直接録音するしかありません。この場合、録音するしかありませんが、この時、ループバックの方法をとることで、Nottaの文字起こしを利用することができます。やり方は簡単で、録音する時、マイクをLoopback Audioに設定するだけです。

録音は禁止されている場合があります。一切責任負えませんので自己責任でお願い致します。

まとめ

如何でしたでしょうか?

自分の耳で聞けるようになるのがベストですが、なかなかそういうわけにはいかないので、機械翻訳を有効活用して言語の壁を乗り越えて頂ければ幸いです。

おまけ(BlackHole)

最後におまけとしてBlackHoleのインストールと設定も紹介します。

インストール

BlackHoleのサイトからダウンロードするかHomebrewでインストールします。2ch、16ch、65chの3種類あります。オンライン会議を翻訳するだけなら2chで十分だと思います。サイトからダウンロードする場合はメールアドレスの登録が必要なので私はHomebrewでインストールしました。

$ brew install blackhole-2ch

設定

インストールしたら「アプリケーション」→「ユーティリティ」→「Audio MIDI設定」を開きます

+ボタンで複数出力装置を作成します。ここで自分のマイクデバイスを追加します。私の場合はOpenComm2というヘッドセットになります。

次にサウンド設定で出力をBlackHole 2chに変更します。

あとはLoopbackと同じで、Chromeのマイク設定を変えればリアルタイム翻訳できます。

Loopbackと違い、GUIの設定画面が全くありませんので、動作しなかった時、何が原因なのか全く分かりません。また、今はループバックさせたくない、といった時に設定を変更するのが面倒です。単に私が使いこなせなかっただけかもしれませんので、とにかく無料でやりたい、という方は一度お試し下さい。

-セミナー・勉強会, ベトナム, 調べてみた