外国語のライブ配信をリアルタイム翻訳する方法

2023年9月13日

※急ぎの投稿なので体裁等は後で整えます
※Windowsユーザが対象

概要

韓国のvtuberを見る機会が多いのですが、私自身韓国語が全く理解できないのでリアルタイム翻訳する方法を考えてみました。
あまりプログラミングには明るくないのですが、自分で簡単なツールも作ったのでこちらも公開します。

日本語、韓国語、英語、中国語、インドネシア語、台湾語、ベトナム語、フランス語の翻訳ができます(日韓英以外テストしていませんが…)。

方法

  1. 音声認識翻訳ツールを使う
  2. Google翻訳を使う
  3. 「音声認識字幕ちゃん」を使う
  4. 「Web Speech API」+「Chrome翻訳拡張機能」+「Papago NMT API」を使ってシステムを構築する

難易度の低さ

1(papago翻訳なし) = 2 > 3 > 1(papago翻訳あり) >>>>> 4

翻訳精度の高さ

4 ≧ 1 > 3 >>>>> 2

ひとまず動作確認程度なら「2. Google翻訳を使う」を使ってみるといいと思います。
「1. 私が私的に構築した音声認識翻訳ツールを使う」も同様に手軽なのですが、なにせ個人サーバなので何人の同時接続に耐えられるか未知数でして…

1~4共通の事前準備

Windowsの仮想オーディオデバイスを設定します。
この設定を行うことで配信の音声を仮想マイクに流すことができるようになります。

ついでに確認も合わせて「2. Google翻訳を使う」も行います。

① VB-Audio VoiceMeeter Bananaのインストール

下記URLからインストールします。

https://vb-audio.com/Voicemeeter/banana.htm

② VB-CABLEのインストール

下記URLからインストールします。

https://vb-audio.com/Cable/

③ Voice Meeter Bananaの設定

下記サイト様に丁寧な説明があるのでそちらを参考にしてください(丸投げ)。
※otter.aiの準備は不要です。

https://qiita.com/uraxurax/items/85ed8e8c38c28757db44

④ 仮想マイクが設定できたか確認

google翻訳を使って音声認識できているか確認します。

配信中の言語に合わせて翻訳元の言語を選択してマイクボタンを推します。

「マイクを使用する」を許可します

音声に合わせて文字が出力されれば設定完了です!

音声認識翻訳ツールを使う

※2023/09/12現在、choromeバージョン: 116.0.5845.188で使用できなくなってます。現在調査中です。
※2023/09/13 Edgeだと問題なく動くようです

【Chrome向けの暫定版】

日本語
https://trans.ianthis.net/zantei.php?lang=ja

韓国語
https://trans.ianthis.net/zantei.php?lang=ko

英語
https://trans.ianthis.net/zantei.php?lang=en

URLはこちらになります。
3言語ありますが機能は全て同じです。自分が読める言語(日本人なら日本語、韓国人なら韓国語)を使ってください。
残念ながらGoogle ChromeEdgeでしか使えません🥺

日本語
https://trans.ianthis.net/?lang=ja

韓国語
https://trans.ianthis.net/?lang=ko

英語
https://trans.ianthis.net/?lang=en

使い方

papago翻訳を使わない場合、このツールは簡単に使えます。

まずは左下のプルダウンで[翻訳元の言語]と[翻訳先の言語]をそれぞれ選択します。

[翻訳元の言語]
日本語、韓国語、英語、中国語、インドネシア語、台湾語、ベトナム語、フランス語

[翻訳先の言語]
日本語、韓国語、英語

プルダウン選択後、右クリックして「XXX語に翻訳」を押すだけです。

配信を横において、リアルタイム翻訳が実現できました🥰

ちなみに多少はレスポンシブに対応していますから狭いディスプレイでもなんとかなります

音声認識翻訳ツール(papago翻訳)の使い方

通常はブラウザ翻訳で事足りると思いますが、長文を翻訳する場合などブラウザ翻訳では力不足なことが多いです。
対策として、「Papago NMT API」を用いたpapago翻訳機能を用意しました。
NaverのAPIキーを取得できるガッツがある人は是非試してみてください。

取得手順は下記ドキュメントに記載されています(韓国語)。

https://developers.naver.com/docs/nmt/reference/

登録が完了したらdeveloperページから下記のように[Client ID][Client Secret]が取得できます。

[Client ID][Client Secret]をそれぞれ音声認識翻訳ツールの[Naver Client Id][Naver Client Secret]にセットして[P-ON]を押します。

[P-ON]を押したらpapago欄が表示されて精度の高い翻訳が見られるようになります。

papagoAPIは一日10000語までなのでお気に入りの配信のみに利用するか課金してください。

「音声認識字幕ちゃん」を使う

音声認識翻訳ツールは個人サーバに配置しているので負荷等の問題で使い物にならない可能性があります。
その場合は下記サイトの「音声認識字幕ちゃん」を試してみてください。

http://www.sayonari.com/trans_asr/index_asr.html

おそらくリアルタイム字幕を用意している配信者のほとんどがこちらを使っていると思います。
翻訳APIを作るのが結構手間ですが丁寧な説明が記載されていますのでなんとかなるはずです。

「Web Speech API」+「Chrome翻訳拡張機能」+「Papago NMT API」を使ってシステムを構築する

こちらは別記事で解説します。
プログラミングに詳しい方は文言だけでピンとくるはずです。

一応「音声認識翻訳ツール」のソースコードを置いておくので自分で環境構築できる方はよろしくお願いします。PHPです。

https://github.com/souichi-zako/speechTrans

最後に

「音声認識翻訳ツール」の名前が決まってないので誰か助けてください🥺

正直なところ「Web Speech API」の精度もそんなに良くないので将来的には「Azureの音声テキスト変換」を使ってみたいなと考えています。
有料ですが自分で単語辞書が作れるのが強みです。
例えばVtuber特有のファンネームとか「tskr」とか「シャワーキャス」とか「뿔 부러졌다」とかを音声認識できるようになるわけですね。

このページが参考になった方はヤンティスさんのチャンネル登録をおねがいします。
日本語がとても上手でとても楽しい配信者です。

https://www.youtube.com/@Ianthis_VGG

https://www.twitch.tv/ianthis_vgg

参考

Papago Text Translation の概要
https://api.ncloud-docs.com/docs/ja/ai-naver-papagonmt-translation

音声認識字幕ちゃん
http://www.sayonari.com/trans_asr/index_asr.html

Windowsの仮想オーディオデバイスを使って音声認識でオンラインミーティングの自動文字起こし作成
https://qiita.com/uraxurax/items/85ed8e8c38c28757db44

papago APIを使ってSlack翻訳アプリを作成してみました!
https://dev.classmethod.jp/articles/slack-app-using-papago-api/

Web Speech APIで途切れない音声認識
https://monomonotech.jp/kurage/iot/webspeechapi_voice_recognition.html