Help us understand the problem. What is going on with this article?

リアルタイム翻訳機能の付いたWeb会議を作ってみた

More than 1 year has passed since last update.

はじめに

この記事はSkyWay Advent Calendar 2018の19日目の記事です。

SkyWay(WebRTC)を使って作成した簡易Web会議システムに、リアルタイム会話翻訳機能(日本語と英語の翻訳と読み上げ機能)を実装できるか試してみました。

できたもの

映像ではわかりづらいですが、右側の端末で喋った日本語の声が、左側の端末では英語の声で読み上げられています。
映像では試していませんが英語から日本語への変換もできます。

翻訳機能の付いたWeb会議として使うことができるかもしれません。

デモサイト

Windows or macOS の Google Chrome でのみ動作します。

https://yorifuji.github.io/webrtc-realtime-translation/

右下の Room Name に任意の部屋の名前を入力して Connect してください。部屋の名前はユニークな名前の方が良いでしょう。
左下の 音声認識・翻訳 を押すと下記のダイアログが表示されます。

スクリーンショット 2018-12-18 11.04.29.png

全てのチェックボックスにチェックを付けて、自分の話す言語を選択してください。なお、相手側も同じ言語を選択している場合は翻訳されません(例えば二人ともJapaneseを選択している場合は翻訳されません)。

なお、1台の端末で複数のタブで開くと音声認識が正常に動かないため、動作を確認する際は2台以上の端末で使ってください。

実現方法


翻訳は

ローカルで音声認識(文字起こし) --> WebRTC(SkyWay)でテキスト送信 --> 受信側で翻訳 --> 音声合成を使って読み上げ

という流れで実現しました。

音声認識(文字起こし)

Web Speech APISpeechRecognition を使いました。現時点ではChromeのみ利用可能のようです。

こちらの記事に使い方がわかりやすく載っています。
https://qiita.com/kolife/items/a0af7702eef05994fbfb

今回、音声認識はローカルの端末で行い、文字起こししたテキストを SkyWay の機能を使って相手の端末に送信しています。

翻訳

翻訳APIを提供しているクラウドサービスを使うことも考えましたが、手軽に実現したかったのでこちらの記事を参考に、 GoogleAppsScript を使ったAPIを用意しました。
https://qiita.com/tanabee/items/c79c5c28ba0537112922

上記のAPIに相手から送られてきたテキストを投げて、翻訳されたテキストを取得しています。

音声合成

Web Speech APISpeechSynthesis を使いました。

こちらの記事が参考になりました。
https://qiita.com/kyota/items/da530ad22733b644518a

今回は利用していませんが、出力する声の種類なども選べるそうです。

翻訳APIを使って翻訳したテキストを、上記のAPIを使って音声合成して読み上げています。

その他

実装して気づいたこと

  • Chromeの音声認識 webkitSpeechRecognition は音声認識の際に利用するマイクデバイスが選べないようです、常に規定の(デフォルトの)マイクの音を認識するようです
  • 1台の端末で複数のタブを開いて音声認識を同時に使うとうまく動きませんでした、私の使い方の問題かもしれません
  • 音声合成した音を音声認識が拾ってしまうことがあるので、音声合成する直前に音声認識を停止するようにしました

まとめ

Web会議システムにリアルタイム会話翻訳機能(日英翻訳)を追加してみました。意外と簡単に作ることができました。

Chromeの音声認識と音声合成は日英以外の言語にも対応しているので、翻訳する言語を増やすこともできそうです。

また、今回は日英翻訳に GoogleAppsScript を使いまいしたが、クラウドサービス(AWS,Azure,Watsonなど)が提供しているAPIを使うことでより自然な翻訳が実現できるかもしれません。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした