noteへの遠征から帰ってきました。やっぱり我が家がいちばn(略)。

……で、帰ってくるなりサイトのデザインやらタイトルやら、諸々変更してみました。

どうです?このWordPressとは思えないnote感。「……だったらnoteで良いのでは?」という気がしないでもないですが。まあ、そのあたりは全然気付かなかったことにいたしましょう。はっはっは。

気分転換、大事大事。

お久しぶりです!
さるできエンジニヤリングにようこそ。

このサイトは、『ワクワクする技術を、「なるべくわかりやすく」「なるべく面白く」、実際に使って作って、失敗したり成功したりの一部始終をお届けしています。』という趣旨で運営しているサイトなのですが……結構長いこと、何も作っておりませんでした。

「作りたい」と思いながら、仕事に追われる日々。

遠ざかる開発環境、忘れゆくプログラミング言語、はて、今日の昼ごはん、何食べたっけ?……と、日々進行するジジイ化を一分でも先送りにするべく、これからあらためて、できればライフワーク的に、のんびりコツコツ作っていこうと思います。よろしくお願いしまーす!

今回のお題は「Web会議用 同時通訳機」です。


Web会議、していますか?

今年は本格的にWeb会議が普及した一年になりましたね。沖縄在住のワタシは、以前より意思疎通の方法として、お客様にWeb会議を提案する機会が多かったのですが、その度に「え?Web会議?」と聞き返されてしまうことが結構ありました。それが今やほとんど問題なし。どこでも繋がるし、顔も見られるし、本当に良い時代になりましたね。じゃんじゃんWeb会議やっていこうじゃないですか。

……と、油断していたら、ひょんなことから海外の方とWeb会議をすることになってしまいまして。

さすがに国内のように上手くは行かないだろうと思っていたのですが、インフラ面では何の問題も起こりませんでした。繋がる繋がる。すごいね、Zoom。でも、これだけ快適に繋がってしまうと、かえって気になってしまうのが「通訳の方のタイムラグ」で。仕方がないことなのですが、顔が見えて声が聞こえても、通訳の分、ワンテンポ盛り上がりがズレてしまうです。

これでリアルタイムの通訳ができれば、全世界誰とでも盛り上がれるのになー。

ということで、同時通訳機、作ってみました。はい、ドン!


(画面の左下にある日本語と中国語が、それぞれオリジナル文と翻訳文です)

おおー!同時通訳できてるー!

上の動画では音声を切っていますが、マイクに向かって話をすると、日本語の文字が表示されて、直後に中国語(→英語でも何でも、Googleさんが訳せる言語なら可)が表示される流れ。コレさえあれば、世界中の人とコミュニケーションを取ることが可能になっております。

……さすがに言い過ぎました。世界中の(時々ブレる通訳にも寛容でいてくれる)人とコミュニケーションを取ることが可能になっております。ちょっと次回のWeb会議のときに試してみることにしましょう。みなさま寛容でありますように。

ただ、現在の機能では「こちらが発言した分」しか通訳できません。ですので、次は「相手の発言を拾ってそちらも翻訳する機能」を作ろうと思います。今の予想ですと、スピーカーに出力する前の段階で音声を横取りしないと精度がガッツリ下がりそうですので、その辺りがきっと課題になりそうです。

よーしそれでは、また次回お会いしましょう。


【ざっくりした作り方解説】

まずは、OBSに「websocket」なるプラグインを入れます。コイツはOBSを外部から操作するためのプラグインで、Googleの機能で認識・生成をする「日本語のテキスト」と「翻訳後のテキスト」を、裏側から流し込むのに使います。プラグインが入ったら、テキストフィールドを2個追加しておきましょう。日本語のテキスト用と翻訳後のテキスト用ですね。

obs-websocket:
https://github.com/Palakis/obs-websocket

OBSの用意ができたら「BroadTube」というサイトに向かいましょう。今回はこちらの神ツールを利用させていただきました。

BroadTube Recognition&translation:
https://broadtube.xyz/tool/recognition/index.html

詳しい使い方は、BroadTubeさんのブログでどうぞ。

BroadTube blog:
https://broadtube.xyz/blog/

ブログの中でも紹介されていますが、翻訳後のテキストを取得するために「Google Apps Script」なるGoogleのスクリプト開発環境を使います。ワタシGAS初体験。今回はコピペだけでしたが、とっても手軽そうな印象です。ほほー。

まとめると。Googleの音声入力機能と翻訳機能を使い、日本語のテキストと翻訳後のテキストをそれぞれ生成、それをwebsocketを使ってOBS上のテキストフィールドに反映させる流れですね。

こんなことができてしまうとは……一気に未来にワープした気分。BroadTubeさん、ありがとうございまーす!

0