オンラインだからできること何かないかなと思って、英語を日本語に、日本語を英語にリアルタイム翻訳して字幕をつけてZoomとかに参加できるシステムを作ってみた。
動画あり
https://twitter.com/alumican_net/status/1248871338745319425
翻訳字幕映像はウェブカメラとして扱えるので、Zoomじゃなくてもウェブメラ入力のアプリにつなぎ込めるはずです。
以下、必要最低限の説明
- Windows 10
- Unity 2019.3.8f1
- ウェブカメラ
- マイク
Microsoft Cognitive ServicesのUnity用SDKです。Mac非対応。
こちらの中段の以下のリンクからダウンロード可能です。
The Speech SDK for Unity is packaged as a Unity asset package (.unitypackage). Download it from here.
Unityのカメラ映像を他のアプリの入力として扱うために、Spoutという形式で出力します。そのために必要なAssetになります。
こちらからダウンロードします。
リッチな字幕表示用に利用していますが、UnityのデフォルトのTextでも可能です。
フォントは何でもよいのですが、デモで使用している再配布可能なフォント「しねきゃぷしょん」をTextMesh Proで利用可能なアトラス化したものを用意したので、それを利用する場合は以下のファイルをダウンロードしてAssets/Fonts
に展開します。
https://www.dropbox.com/s/m1iic14a1j8h2vy/Fonts.zip?dl=0
UnityからSpout映像をZoomなどのウェブカメラ入力として繋ぐために必要です。
こちらからダウンロードして、インストーラー内のSpoutCamにチェックを入れてインストールします。
上記サイトは重たいので、こちらのSpoutSetup_V2.005.zip
でも大丈夫です。
AzureのポータルでSpeech APIをサブスクリプションし(無料枠のあるF0で契約したほうがいいです)、APIキーを発行する。リージョンは東日本でいいと思います。
管理画面でのAPIキー(Key1)と、エンドポイントのサブドメイン部分のリージョン部分(japaneastなど)をコピーしておきます。
- UnityのMainシーンをプレビューする
- スペースキーを押して設定画面を表示する
- APIキー入力、リージョン入力、デバイス選択、モード選択(日→英 or 英→日)をおこない、Startボタンを押す
- スペースキーを押して設定画面を閉じる
- Zoomなどのカメラで
Spout Cam
を選択するとUnityのカメラ映像がストリーミングされる - 終了時は設定画面を開いてStopボタンを押すか、プレビューを終了する
StartからStopまでの時間でAPIを消化するので、Stopのし忘れにご注意ください。
SnapCameraと組み合わせる場合は、Unityの設定画面のデバイス選択でSnap Camera
を選択してください。
Microsoft Azure の無料アカウントを作ってみた
Sample Repository for the Microsoft Cognitive Services Speech SDK
基本的にノーサポートかつ自己責任でお願いします。 いいアイデアがあれば是非実装して公開しちゃってください。
本プロジェクト固有のソースコードはMITライセンスです。
ただし、フォント、外部Asset、ライブラリに関しては、それぞれに定められたライセンスに従います。